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