[Mlir-commits] [mlir] [mlir][Transforms][NFC] Turn op/block arg replacements into `IRRewrite`s (PR #81757)

Slava Zakharin llvmlistbot at llvm.org
Sun Feb 25 15:07:21 PST 2024


================
@@ -1462,7 +1490,12 @@ void ConversionPatternRewriterImpl::notifyOperationInserted(
 void ConversionPatternRewriterImpl::notifyOpReplaced(Operation *op,
                                                      ValueRange newValues) {
   assert(newValues.size() == op->getNumResults());
-  assert(!replacements.count(op) && "operation was already replaced");
+#ifndef NDEBUG
----------------
vzakhari wrote:

Was this check present before this PR?  I have multiple Flang end-to-end tests spending very long time in compilation.  I tried to find the guilty PR, but I was using debug compiler builds.  This PR increases this test compilation from 26 seconds to 137 seconds:
```
  Character(1),Parameter :: c717(2,3,4,5,6,7,8) = Reshape([('a',i=1,Size(c717))], Shape(c717))
End
```

I will have to confirm if this check is causing it, but you may know it right away.  If it is indeed an expensive check, should it be only enabled under `LLVM_ENABLE_EXPENSIVE_CHECKS`?

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


More information about the Mlir-commits mailing list