[Mlir-commits] [mlir] [mlir][affine] fix the issue of celidiv mul ceildiv expression not satisfying commutative (PR #109382)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Fri Oct 4 00:22:46 PDT 2024


================
@@ -349,6 +350,82 @@ unsigned AffineDimExpr::getPosition() const {
   return static_cast<ImplType *>(expr)->position;
 }
 
+/// A manually managed stack used to convert recursive function calls into
----------------
lipracer wrote:

Sorry,I didn't express clearly. The implementation of this `isDivisibleBySymbol` requires a pre-order traversal.
eg:
```
case add: visit(lhs) and vist(rhs)
case mul: visit(lhs) or vist(rhs)
```
base on the current expr type, using a control traversal approach, perhaps returning the interrupting and boolean types in the visitor can meet this requirement, but it also needs to be reimplemented.

https://github.com/llvm/llvm-project/pull/109382


More information about the Mlir-commits mailing list