[Mlir-commits] [mlir] [MLIR][NFC] Retire let constructor for Reducer (PR #134786)

lorenzo chelini llvmlistbot at llvm.org
Mon Apr 7 21:54:35 PDT 2025


https://github.com/chelini created https://github.com/llvm/llvm-project/pull/134786

let constructor is legacy (do not use in tree!) since the tableGen
backend emits most of the glue logic to build a pass.

>From 814f310860321b161b51eb130ac53364a90edea5 Mon Sep 17 00:00:00 2001
From: lorenzo chelini <lchelini at nvidia.com>
Date: Wed, 5 Mar 2025 07:32:38 +0100
Subject: [PATCH] [MLIR][NFC] Retire let constructor for Reducer

---
 mlir/include/mlir/Reducer/Passes.h     |  4 ----
 mlir/include/mlir/Reducer/Passes.td    |  8 ++------
 mlir/lib/Reducer/OptReductionPass.cpp  | 12 +++++-------
 mlir/lib/Reducer/ReductionTreePass.cpp | 12 ++++--------
 4 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/mlir/include/mlir/Reducer/Passes.h b/mlir/include/mlir/Reducer/Passes.h
index 474d87a37fc3c..d961737aaffae 100644
--- a/mlir/include/mlir/Reducer/Passes.h
+++ b/mlir/include/mlir/Reducer/Passes.h
@@ -15,10 +15,6 @@ namespace mlir {
 #define GEN_PASS_DECL
 #include "mlir/Reducer/Passes.h.inc"
 
-std::unique_ptr<Pass> createReductionTreePass();
-
-std::unique_ptr<Pass> createOptReductionPass();
-
 /// Generate the code for registering reducer passes.
 #define GEN_PASS_REGISTRATION
 #include "mlir/Reducer/Passes.h.inc"
diff --git a/mlir/include/mlir/Reducer/Passes.td b/mlir/include/mlir/Reducer/Passes.td
index cf89176106050..624e2e1edc329 100644
--- a/mlir/include/mlir/Reducer/Passes.td
+++ b/mlir/include/mlir/Reducer/Passes.td
@@ -24,11 +24,9 @@ def CommonReductionPassOptions {
   ];
 }
 
-def ReductionTree : Pass<"reduction-tree"> {
+def ReductionTreePass : Pass<"reduction-tree"> {
   let summary = "Reduce the input with reduction-tree algorithm";
 
-  let constructor = "mlir::createReductionTreePass()";
-
   let options = [
     Option<"traversalModeId", "traversal-mode", "unsigned",
            /* default */"0",
@@ -36,11 +34,9 @@ def ReductionTree : Pass<"reduction-tree"> {
   ] # CommonReductionPassOptions.options;
 }
 
-def OptReduction : Pass<"opt-reduction-pass", "ModuleOp"> {
+def OptReductionPass : Pass<"opt-reduction-pass", "ModuleOp"> {
   let summary = "A wrapper pass that reduces the file with optimization passes";
 
-  let constructor = "mlir::createOptReductionPass()";
-
   let options = [
     Option<"optPass", "opt-pass", "std::string", /* default */"",
            "The optimization passes used for reduction, e.g., symbol-dce">,
diff --git a/mlir/lib/Reducer/OptReductionPass.cpp b/mlir/lib/Reducer/OptReductionPass.cpp
index 8618de5eeee7b..358753b1168d2 100644
--- a/mlir/lib/Reducer/OptReductionPass.cpp
+++ b/mlir/lib/Reducer/OptReductionPass.cpp
@@ -19,7 +19,7 @@
 #include "llvm/Support/Debug.h"
 
 namespace mlir {
-#define GEN_PASS_DEF_OPTREDUCTION
+#define GEN_PASS_DEF_OPTREDUCTIONPASS
 #include "mlir/Reducer/Passes.h.inc"
 } // namespace mlir
 
@@ -29,8 +29,10 @@ using namespace mlir;
 
 namespace {
 
-class OptReductionPass : public impl::OptReductionBase<OptReductionPass> {
+class OptReductionPass : public impl::OptReductionPassBase<OptReductionPass> {
 public:
+  using Base::Base;
+
   /// Runs the pass instance in the pass pipeline.
   void runOnOperation() override;
 };
@@ -85,8 +87,4 @@ void OptReductionPass::runOnOperation() {
   moduleVariant->destroy();
 
   LLVM_DEBUG(llvm::dbgs() << "Pass Complete\n\n");
-}
-
-std::unique_ptr<Pass> mlir::createOptReductionPass() {
-  return std::make_unique<OptReductionPass>();
-}
+}
\ No newline at end of file
diff --git a/mlir/lib/Reducer/ReductionTreePass.cpp b/mlir/lib/Reducer/ReductionTreePass.cpp
index ef32adbab5577..7292752c712ae 100644
--- a/mlir/lib/Reducer/ReductionTreePass.cpp
+++ b/mlir/lib/Reducer/ReductionTreePass.cpp
@@ -29,7 +29,7 @@
 #include "llvm/Support/ManagedStatic.h"
 
 namespace mlir {
-#define GEN_PASS_DEF_REDUCTIONTREE
+#define GEN_PASS_DEF_REDUCTIONTREEPASS
 #include "mlir/Reducer/Passes.h.inc"
 } // namespace mlir
 
@@ -191,10 +191,10 @@ class ReductionPatternInterfaceCollection
 /// This class defines the Reduction Tree Pass. It provides a framework to
 /// to implement a reduction pass using a tree structure to keep track of the
 /// generated reduced variants.
-class ReductionTreePass : public impl::ReductionTreeBase<ReductionTreePass> {
+class ReductionTreePass
+    : public impl::ReductionTreePassBase<ReductionTreePass> {
 public:
-  ReductionTreePass() = default;
-  ReductionTreePass(const ReductionTreePass &pass) = default;
+  using Base::Base;
 
   LogicalResult initialize(MLIRContext *context) override;
 
@@ -256,7 +256,3 @@ LogicalResult ReductionTreePass::reduceOp(ModuleOp module, Region &region) {
     return module.emitError() << "unsupported traversal mode detected";
   }
 }
-
-std::unique_ptr<Pass> mlir::createReductionTreePass() {
-  return std::make_unique<ReductionTreePass>();
-}



More information about the Mlir-commits mailing list