[Mlir-commits] [mlir] [mlir][affine] fix the issue of ceildiv-mul-ceildiv form expression n… (PR #111254)
Johannes Reifferscheid
llvmlistbot at llvm.org
Sun Oct 6 23:21:54 PDT 2024
================
@@ -406,12 +419,25 @@ static bool isDivisibleBySymbol(AffineExpr expr, unsigned symbolPos,
AffineBinaryOpExpr binaryExpr = cast<AffineBinaryOpExpr>(expr);
if (opKind != expr.getKind())
return false;
- return isDivisibleBySymbol(binaryExpr.getLHS(), symbolPos, expr.getKind());
+ if (llvm::any_of(visitedExprs, [](auto expr) {
+ return expr.getKind() == AffineExprKind::Mul;
+ }))
+ return false;
+ return isDivisibleBySymbolImpl(binaryExpr.getLHS(), symbolPos,
+ expr.getKind(), visitedExprs, depth + 1);
----------------
jreiffers wrote:
Maybe I'm missing something. Doesn't your call tree looks like this:
```
flag
+ false
* false
s0 true
2 true
ceildiv false
s0 false
2 false
```
https://github.com/llvm/llvm-project/pull/111254
More information about the Mlir-commits
mailing list