[llvm] [mlir] [mlir][core] Add an MLIR "pattern catalog" generator (PR #146228)
Mehdi Amini via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 30 02:49:30 PDT 2025
================
@@ -206,14 +206,24 @@ LogicalResult PatternApplicator::matchAndRewrite(
} else {
LLVM_DEBUG(llvm::dbgs() << "Trying to match \""
<< bestPattern->getDebugName() << "\"\n");
-
const auto *pattern =
static_cast<const RewritePattern *>(bestPattern);
- result = pattern->matchAndRewrite(op, rewriter);
+#ifndef NDEBUG
+ OpBuilder::Listener *oldListener = rewriter.getListener();
+ RewriterBase::CatalogingListener *catalogingListener =
+ new RewriterBase::CatalogingListener(oldListener,
+ pattern->getDebugName());
+ rewriter.setListener(catalogingListener);
+#endif
+ result = pattern->matchAndRewrite(op, rewriter);
LLVM_DEBUG(llvm::dbgs()
<< "\"" << bestPattern->getDebugName() << "\" result "
<< succeeded(result) << "\n");
+#ifndef NDEBUG
+ rewriter.setListener(oldListener);
+ delete catalogingListener;
+#endif
----------------
joker-eph wrote:
```suggestion
```
https://github.com/llvm/llvm-project/pull/146228
More information about the llvm-commits
mailing list