[Mlir-commits] [llvm] [mlir] [mlir][core] Add an MLIR "pattern catalog" generator (PR #146228)
Jeremy Kun
llvmlistbot at llvm.org
Thu Jul 17 09:04:07 PDT 2025
================
@@ -0,0 +1,50 @@
+#include "mlir/IR/PatternMatch.h"
+#include "llvm/Support/Debug.h"
+
+#define DEBUG_TYPE "pattern-logging-listener"
+#define DBGS() (llvm::dbgs() << "[" << DEBUG_TYPE << "] ")
+#define LDBG(X) LLVM_DEBUG(DBGS() << X << "\n")
+
+using namespace mlir;
+
+void RewriterBase::PatternLoggingListener::notifyOperationInserted(
+ Operation *op, InsertPoint previous) {
+ LDBG(patternName << " | notifyOperationInserted"
+ << " | " << op->getName());
+ ForwardingListener::notifyOperationInserted(op, previous);
+}
+
+void RewriterBase::PatternLoggingListener::notifyOperationModified(
+ Operation *op) {
+ LDBG(patternName << " | notifyOperationModified"
+ << " | " << op->getName());
+ ForwardingListener::notifyOperationModified(op);
+}
+
+void RewriterBase::PatternLoggingListener::notifyOperationReplaced(
+ Operation *op, Operation *newOp) {
+ LDBG(patternName << " | notifyOperationReplaced (with op)"
+ << " | " << op->getName() << " | " << newOp->getName());
+ ForwardingListener::notifyOperationReplaced(op, newOp);
+}
+
+void RewriterBase::PatternLoggingListener::notifyOperationReplaced(
+ Operation *op, ValueRange replacement) {
+ LDBG(patternName << " | notifyOperationReplaced (with values)"
+ << " | " << op->getName());
+ ForwardingListener::notifyOperationReplaced(op, replacement);
----------------
j2kun wrote:
Yes, the postprocessing includes `sort | uniq`, and I don't have any immediate plans to support a more structured sort of query.
https://github.com/llvm/llvm-project/pull/146228
More information about the Mlir-commits
mailing list