[Mlir-commits] [mlir] [mlir][NFC] `remove-dead-values`: Get canonicalization patterns from ops (PR #176712)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Jan 19 01:08:11 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Matthias Springer (matthias-springer)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/176712.diff
1 Files Affected:
- (modified) mlir/lib/Transforms/RemoveDeadValues.cpp (+6-6)
``````````diff
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");
``````````
</details>
https://github.com/llvm/llvm-project/pull/176712
More information about the Mlir-commits
mailing list