[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:37:51 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:
But these are sibling branches of the recursion. The flag is an argument, so it'll be false in ceildiv and below because there's no mul in the call chain.
https://github.com/llvm/llvm-project/pull/111254
    
    
More information about the Mlir-commits
mailing list