pipeline.memory
← pipeline dialect
Select a borrowed memory pool at worker coordinates in the enclosing kernel pipeline invocation. Coordinates use the strand worker domain; the invocation supplies the execution instance, not the target symbol. Repeated selections of the same memory identify the same pool. The query neither allocates storage nor synchronizes access: buffer.alloca creates fresh allocation roots and channel operations govern record ownership. Each accessing worker must have a legal mapping to the selected backing. The pool remains valid for the invocation and may be passed to generic construction helpers. Selection belongs to construction outside strand bodies, within an explicit kernel scope.
Operation contract
| Property |
Value |
| Semantic phase |
— |
| Traits |
Pure, HasAncestor(pipeline.def), NoAncestor(pipeline.strand) |
Signature
| Kind |
Name |
Type |
Cardinality |
Description |
| Operand |
coordinates |
index |
variadic |
— |
| Result |
result |
pool |
required |
Borrowed invocation-local memory pool. |
| Attribute |
memory_space |
enum MemorySpace |
required |
— |
| Attribute |
static_coordinates |
i64_array |
required |
Worker coordinates; INT64_MIN entries refer to dynamic coordinates. |
Examples
%memory = pipeline.memory<workgroup>[%column, 3] : pool