[mlir] Affine symbols: do not expect AffineScope to always exist
In the affine symbol and dimension check, the code currently assumes `getAffineScope` and its users `isValidDim` and `isValidSymbol` are only called on values defined in regions that have a parent Op with `AffineScope` trait. This is not necessarily the case, and these functions may be called on valid IR that does not satisfy this assumption. Return `nullptr` from `getAffineScope` if there is no parent op with `AffineScope` trait. Treat this case conservatively in `isValidSymbol` by only accepting as symbols the values that are guaranteed to be symbols (constants, and certain operations). No modifications are necessary to `isValidDim` that delegates most of the work to `isValidDim`. Differential Revision: https://reviews.llvm.org/D81753
Loading
Please register or sign in to comment