[flang-commits] [flang] [mlir] [mlir][nfc] Remove `TrivialPatternRewriter`s (PR #155248)
Ivan Butygin via flang-commits
flang-commits at lists.llvm.org
Mon Aug 25 08:28:11 PDT 2025
https://github.com/Hardcode84 updated https://github.com/llvm/llvm-project/pull/155248
>From 52c72d33d8aeb139a47460ce2ae62d6d1e5070ed Mon Sep 17 00:00:00 2001
From: Ivan Butygin <ivan.butygin at gmail.com>
Date: Mon, 25 Aug 2025 16:23:22 +0200
Subject: [PATCH 1/2] Instantiate PatternRewriter directly
---
.../lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp | 7 +------
.../lib/Dialect/Transform/PDLExtension/PDLExtensionOps.cpp | 7 +------
mlir/unittests/Rewrite/PatternBenefit.cpp | 7 +------
3 files changed, 3 insertions(+), 18 deletions(-)
diff --git a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
index 639e0feabc9bd..f0c1f4485b054 100644
--- a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+++ b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
@@ -70,12 +70,7 @@ static FailureOr<LinalgOp> tryApply(Operation *operation, Args &&...args) {
PatternTy pattern(operation->getContext(), std::forward<Args>(args)...);
// We want to discourage direct use of PatternRewriter in APIs but In this
// very specific case, an IRRewriter is not enough.
- struct TrivialPatternRewriter : public PatternRewriter {
- public:
- explicit TrivialPatternRewriter(MLIRContext *context)
- : PatternRewriter(context) {}
- };
- TrivialPatternRewriter rewriter(operation->getContext());
+ PatternRewriter rewriter(operation->getContext());
rewriter.setInsertionPoint(operation);
auto result = pattern.returningMatchAndRewrite(op, rewriter);
if (failed(result))
diff --git a/mlir/lib/Dialect/Transform/PDLExtension/PDLExtensionOps.cpp b/mlir/lib/Dialect/Transform/PDLExtension/PDLExtensionOps.cpp
index 41955c8a278f2..3ced1a6582ce3 100644
--- a/mlir/lib/Dialect/Transform/PDLExtension/PDLExtensionOps.cpp
+++ b/mlir/lib/Dialect/Transform/PDLExtension/PDLExtensionOps.cpp
@@ -100,12 +100,7 @@ LogicalResult PatternApplicatorExtension::findAllMatches(
PatternApplicator applicator(it->second);
// We want to discourage direct use of PatternRewriter in APIs but In this
// very specific case, an IRRewriter is not enough.
- struct TrivialPatternRewriter : public PatternRewriter {
- public:
- explicit TrivialPatternRewriter(MLIRContext *context)
- : PatternRewriter(context) {}
- };
- TrivialPatternRewriter rewriter(root->getContext());
+ PatternRewriter rewriter(root->getContext());
applicator.applyDefaultCostModel();
root->walk([&](Operation *op) {
if (succeeded(applicator.matchAndRewrite(op, rewriter)))
diff --git a/mlir/unittests/Rewrite/PatternBenefit.cpp b/mlir/unittests/Rewrite/PatternBenefit.cpp
index 65ea4ee6683db..e4363f9f4b8bb 100644
--- a/mlir/unittests/Rewrite/PatternBenefit.cpp
+++ b/mlir/unittests/Rewrite/PatternBenefit.cpp
@@ -66,12 +66,7 @@ TEST(PatternBenefitTest, BenefitOrder) {
PatternApplicator pa(frozenPatterns);
pa.applyDefaultCostModel();
- class MyPatternRewriter : public PatternRewriter {
- public:
- MyPatternRewriter(MLIRContext *ctx) : PatternRewriter(ctx) {}
- };
-
- MyPatternRewriter rewriter(&context);
+ PatternRewriter rewriter(&context);
(void)pa.matchAndRewrite(*module, rewriter);
EXPECT_TRUE(called1);
>From 3318f19b46f47318399ce1b9ed9a9c9de34d7483 Mon Sep 17 00:00:00 2001
From: Ivan Butygin <ivan.butygin at gmail.com>
Date: Mon, 25 Aug 2025 17:27:50 +0200
Subject: [PATCH 2/2] update flang
---
flang/lib/Optimizer/Transforms/SimplifyRegionLite.cpp | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/flang/lib/Optimizer/Transforms/SimplifyRegionLite.cpp b/flang/lib/Optimizer/Transforms/SimplifyRegionLite.cpp
index 7d1f86f8cee94..0cd2858ab5e75 100644
--- a/flang/lib/Optimizer/Transforms/SimplifyRegionLite.cpp
+++ b/flang/lib/Optimizer/Transforms/SimplifyRegionLite.cpp
@@ -26,22 +26,16 @@ class SimplifyRegionLitePass
public:
void runOnOperation() override;
};
-
-class DummyRewriter : public mlir::PatternRewriter {
-public:
- DummyRewriter(mlir::MLIRContext *ctx) : mlir::PatternRewriter(ctx) {}
-};
-
} // namespace
void SimplifyRegionLitePass::runOnOperation() {
auto op = getOperation();
auto regions = op->getRegions();
mlir::RewritePatternSet patterns(op.getContext());
- DummyRewriter rewriter(op.getContext());
if (regions.empty())
return;
+ mlir::PatternRewriter rewriter(op.getContext());
(void)mlir::eraseUnreachableBlocks(rewriter, regions);
(void)mlir::runRegionDCE(rewriter, regions);
}
More information about the flang-commits
mailing list