Skip to content

kernel.barrier.arrive

← kernel dialect

Arrive at a split execution barrier and begin its memory-ordering lifetime. Release ordering is applied at arrival; acquire ordering is completed by the unique kernel.barrier.wait consuming the returned phase. Every participant in the execution scope must execute matching dynamic arrive and wait instances. The interval may contain ordinary per-invocation work and pure calls. Other convergent operations, barriers, and impure calls must remain outside the interval.

Operation contract

Property Value
Semantic phase —
Traits MemoryFence, Convergent
Target contracts kernel.synchronization

Signature

Kind Name Type Cardinality Description
Result phase any required Opaque identity consumed by the matching barrier wait.
Attribute memory_space enum MemorySpace required Memory space ordered by the split barrier.
Attribute ordering enum AtomicOrdering required Whole-pair memory ordering split across arrival and wait.
Attribute scope enum KernelScope required Execution scope participating in the split barrier.

Examples

%phase = kernel.barrier.arrive<workgroup> scope(workgroup) ordering(acq_rel) -> kernel.barrier.phase