Skip to content

buffer.assume.noalias

buffer dialect

Refine an existing buffer root with an explicit noalias contract. The result preserves the same storage identity, extent, memory-space, alignment, and nullability facts, and marks the root identity as comparable for disjointness proofs. External buffer arguments do not gain this proof by default.

Operation contract

Property Value
Semantic phase executable
Traits Pure, FactIdentity

Signature

Kind Name Type Cardinality Description
Operand buffers buffer variadic Buffer roots to refine.
Result results buffer variadic Same buffer roots with noalias scopes.

Verification constraints

  • VariadicValuesMatch(buffers, results)

Examples

%unique = buffer.assume.noalias %buffer : buffer
%lhs_unique, %rhs_unique = buffer.assume.noalias %lhs, %rhs : buffer, buffer