Skip to content

buffer dialect

← Dialect reference

Opaque storage roots and typed view construction.

Property Value
Bytecode dialect ID 0x0c
Registered by default yes
Operations 23

Operations

Operation Summary
buffer.alloca Create a fixed-frame scratch buffer root in an allocatable memory space.
buffer.alloca.init Create fresh fixed-frame storage initialized with the exact payload bytes.
buffer.assume.alignment Refine existing buffer roots with an explicit minimum byte alignment contract.
buffer.assume.memory_space Refine an existing buffer root with a concrete target-independent memory-space fact while preserving the same storage identity, extent, alignment, and nullability facts.
buffer.assume.noalias Refine an existing buffer root with an explicit noalias contract.
buffer.assume.same_root Refine an existing buffer root to share another buffer's storage root.
buffer.compare Lexicographically compare equal-length ranges as unsigned bytes and return canonical i32 -1, 0, or +1.
buffer.compare.address Compare two byte positions without exposing their addresses.
buffer.compare.null Test whether a buffer is null.
buffer.constant Borrow anonymous immutable executable storage containing the exact payload bytes.
buffer.copy Copy an exact non-overlapping byte range between buffer roots.
buffer.distance Return lhs_offset minus rhs_offset as a signed byte distance.
buffer.duplicate Create another local owner of a buffer root.
buffer.fence Order the executing thread's memory accesses across storage roots using an explicit atomic ordering and synchronization scope.
buffer.fill Repeat the raw little-endian bytes of an 8-, 16-, 32-, or 64-bit integer or floating-point scalar across an exact writable byte range.
buffer.length Query the physical byte length of a buffer root without accessing its payload.
buffer.load.i8.u Load one unsigned byte from a buffer root and zero-extend it to the canonical i32 carrier.
buffer.null Produce the null buffer, which identifies no storage.
buffer.pack Lay out simultaneously live physical byte ranges in one dense slab.
buffer.restrict.begin Begin a source-language restrict access scope over buffer roots and typed views.
buffer.restrict.end End source-language restrict access scopes carried by buffer roots or typed views.
buffer.store.i8 Store the low eight bits of an i32 carrier to one byte in a buffer root.
buffer.view Form a typed non-owning view from an opaque buffer root and base byte offset.