sanitizer.assert.accesses
← sanitizer dialect
Assert that a static sequence of regularly-strided logical indexed view accesses is valid. Each sub-access has the same static extent tuple, and each successive sub-access origin is advanced by the static stride tuple. This keeps structured fragment and vector footprints as one executable assertion site instead of exploding one source memory operation into many independent assertions.
Operation contract
| Property |
Value |
| Semantic phase |
— |
| Traits |
UnknownEffects |
Signature
| Kind |
Name |
Type |
Cardinality |
Description |
| Operand |
view |
view |
required |
Typed view being accessed. |
| Operand |
indices |
index |
variadic |
Dynamic logical element indices for the first sub-access origin. |
| Attribute |
kind |
enum SanitizerAccessesKind |
required |
Logical access kind being asserted. |
| Attribute |
static_indices |
i64_array |
required |
Static logical element indices for the first sub-access origin with INT64_MIN sentinels for dynamics. |
| Attribute |
static_extents |
i64_array |
required |
Full-rank static logical footprint extents for each sub-access. |
| Attribute |
static_strides |
i64_array |
required |
Full-rank static logical origin stride between consecutive sub-accesses. |
| Attribute |
static_count |
i64 |
required |
Number of sub-accesses in the static sequence. |
Examples
sanitizer.assert.accesses<write> %view[%row, %col] {static_extents = [1, 16], static_strides = [1, 0], static_count = 16} : view<128x128xf32>