[mlir][affine] Fix crash in AffineApplyOp canonicalization
authorMatthias Springer <springerm@google.com>
Mon, 12 Dec 2022 08:06:41 +0000 (09:06 +0100)
committerMatthias Springer <springerm@google.com>
Mon, 12 Dec 2022 08:11:17 +0000 (09:11 +0100)
commita73455ac8e9bd02f843916c12c261cfd9ccb06a9
treeca392f87ce71bedc6c8fe0e8d239691d82583afb
parentc2a0baad1fbb21fe111fef83ec93c2d7923b9b0c
[mlir][affine] Fix crash in AffineApplyOp canonicalization

This test case used to crash with a failed assertion:
```
AffineExpr.cpp:659 in AffineExpr simplifyMul(AffineExpr, AffineExpr): lhs.isSymbolicOrConstant() || rhs.isSymbolicOrConstant()
```

This was caused by combining two affine maps, which created a multiplication of two non-symbols.
mlir/lib/Dialect/Affine/IR/AffineOps.cpp
mlir/test/Dialect/Affine/canonicalize.mlir