Skip to content

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