From d9a35ad72259c14e70927cce5a4132f14bf92002 Mon Sep 17 00:00:00 2001 From: Matthias Springer Date: Mon, 19 Jan 2026 09:05:08 +0000 Subject: [PATCH] [mlir][Transforms][NFC] `remove-dead-values`: Get canonicalization patterns from ops --- mlir/lib/Transforms/RemoveDeadValues.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 populatedPatterns; + for (Operation *op : opsToCanonicalize) + if (std::optional 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");