[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