@@ -61,17 +61,22 @@ Example:
6161
6262The affine dialect imposes certain restrictions on dimension and symbolic
6363identifiers to enable powerful analysis and transformation. An SSA value's use
64- can be bound to a symbolic identifier if that SSA value is either 1. a region
65- argument for an op with trait ` AffineScope ` (eg. ` FuncOp ` ), 2. a value defined
66- at the top level of an ` AffineScope ` op (i.e., immediately enclosed by the
67- latter), 3. a value that dominates the ` AffineScope ` op enclosing the value's
68- use, 4. the result of a
69- constant operation, 5. the result of an
64+ can be bound to a symbolic identifier if that SSA value is either:
65+
66+ 1 . a region argument for an op with trait ` AffineScope ` (eg. ` FuncOp ` ),
67+ 2 . a value defined at the top level of an ` AffineScope ` op (i.e.,
68+ immediately enclosed by the latter),
69+ 3 . a value that dominates the ` AffineScope ` op enclosing the value's
70+ use,
71+ 4 . the result of a constant operation,
72+ 5 . the result of an
7073[ ` affine.apply ` operation] ( #affineapply-mliraffineapplyop ) that recursively takes as
71- arguments any valid symbolic identifiers, or 6. the result of a
74+ arguments any valid symbolic identifiers, or
75+ 6 . the result of a
7276[ ` dim ` operation] ( MemRef.md/#memrefdim-mlirmemrefdimop ) on either a memref that
7377is an argument to a ` AffineScope ` op or a memref where the corresponding
7478dimension is either static or a dynamic one in turn bound to a valid symbol.
79+
7580* Note:* if the use of an SSA value is not contained in any op with the
7681` AffineScope ` trait, only the rules 4-6 can be applied.
7782
0 commit comments