[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