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