[Mlir-commits] [mlir] 4a88083 - [mlir][NFC] `remove-dead-values`: Get canonicalization patterns from ops (#176712)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Jan 19 01:30:23 PST 2026


Author: Matthias Springer
Date: 2026-01-19T10:30:19+01:00
New Revision: 4a880833b7a441a3e9222f7bd0128f1dc74b1a96

URL: https://github.com/llvm/llvm-project/commit/4a880833b7a441a3e9222f7bd0128f1dc74b1a96
DIFF: https://github.com/llvm/llvm-project/commit/4a880833b7a441a3e9222f7bd0128f1dc74b1a96.diff

LOG: [mlir][NFC] `remove-dead-values`: Get canonicalization patterns from ops (#176712)

Collect canonicalization patterns from the region branch ops (instead of
populating all canonicalization patterns).

Addresses a
[comment](https://github.com/llvm/llvm-project/pull/173505#discussion_r2675222999)
on a merged PR.

Added: 
    

Modified: 
    mlir/lib/Transforms/RemoveDeadValues.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Transforms/RemoveDeadValues.cpp b/mlir/lib/Transforms/RemoveDeadValues.cpp
index 44b1bcf8e4300..66f369e8a5f65 100644
--- a/mlir/lib/Transforms/RemoveDeadValues.cpp
+++ b/mlir/lib/Transforms/RemoveDeadValues.cpp
@@ -779,13 +779,13 @@ void RemoveDeadValues::runOnOperation() {
   module->walk([&](RegionBranchOpInterface regionBranchOp) {
     opsToCanonicalize.push_back(regionBranchOp.getOperation());
   });
-  // TODO: Apply only region branch op canonicalization patterns or find a
-  // better API to collect all canonicalization patterns.
+  // Collect all canonicalization patterns for region branch ops.
   RewritePatternSet owningPatterns(context);
-  for (auto *dialect : context->getLoadedDialects())
-    dialect->getCanonicalizationPatterns(owningPatterns);
-  for (RegisteredOperationName op : context->getRegisteredOperations())
-    op.getCanonicalizationPatterns(owningPatterns, context);
+  DenseSet<RegisteredOperationName> populatedPatterns;
+  for (Operation *op : opsToCanonicalize)
+    if (std::optional<RegisteredOperationName> info = op->getRegisteredInfo())
+      if (populatedPatterns.insert(*info).second)
+        info->getCanonicalizationPatterns(owningPatterns, context);
   if (failed(applyOpPatternsGreedily(opsToCanonicalize,
                                      std::move(owningPatterns)))) {
     module->emitError("greedy pattern rewrite failed to converge");


        


More information about the Mlir-commits mailing list