[Mlir-commits] [mlir] b1ce63b - [MLIR] Migrate Arithmetic -> LLVM conversion pass to the auto-generated constructor

Michele Scuttari llvmlistbot at llvm.org
Tue Sep 27 13:08:26 PDT 2022


Author: Michele Scuttari
Date: 2022-09-27T22:08:00+02:00
New Revision: b1ce63bb5fdcd8c83d20f2ca1397fcad54d701a0

URL: https://github.com/llvm/llvm-project/commit/b1ce63bb5fdcd8c83d20f2ca1397fcad54d701a0
DIFF: https://github.com/llvm/llvm-project/commit/b1ce63bb5fdcd8c83d20f2ca1397fcad54d701a0.diff

LOG: [MLIR] Migrate Arithmetic -> LLVM conversion pass to the auto-generated constructor

See #57475

Differential Revision: https://reviews.llvm.org/D134752

Added: 
    

Modified: 
    mlir/include/mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h
    mlir/include/mlir/Conversion/Passes.td
    mlir/lib/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.cpp
    mlir/test/CAPI/execution_engine.c
    mlir/unittests/ExecutionEngine/Invoke.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/include/mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h b/mlir/include/mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h
index 6e41e9b91ed54..09c72b8bce4ac 100644
--- a/mlir/include/mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h
+++ b/mlir/include/mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h
@@ -17,14 +17,12 @@ class LLVMTypeConverter;
 class RewritePatternSet;
 class Pass;
 
-#define GEN_PASS_DECL_CONVERTARITHMETICTOLLVM
+#define GEN_PASS_DECL_ARITHMETICTOLLVMCONVERSIONPASS
 #include "mlir/Conversion/Passes.h.inc"
 
 namespace arith {
 void populateArithmeticToLLVMConversionPatterns(LLVMTypeConverter &converter,
                                                 RewritePatternSet &patterns);
-
-std::unique_ptr<Pass> createConvertArithmeticToLLVMPass();
 } // namespace arith
 } // namespace mlir
 

diff  --git a/mlir/include/mlir/Conversion/Passes.td b/mlir/include/mlir/Conversion/Passes.td
index a5a655bfa0350..7aa8fc0645736 100644
--- a/mlir/include/mlir/Conversion/Passes.td
+++ b/mlir/include/mlir/Conversion/Passes.td
@@ -96,12 +96,11 @@ def ConvertAMDGPUToROCDL : Pass<"convert-amdgpu-to-rocdl"> {
 // ArithmeticToLLVM
 //===----------------------------------------------------------------------===//
 
-def ConvertArithmeticToLLVM : Pass<"convert-arith-to-llvm"> {
+def ArithmeticToLLVMConversionPass : Pass<"convert-arith-to-llvm"> {
   let summary = "Convert Arithmetic dialect to LLVM dialect";
   let description = [{
     This pass converts supported Arithmetic ops to LLVM dialect instructions.
   }];
-  let constructor = "mlir::arith::createConvertArithmeticToLLVMPass()";
   let dependentDialects = ["LLVM::LLVMDialect"];
   let options = [
     Option<"indexBitwidth", "index-bitwidth", "unsigned",

diff  --git a/mlir/lib/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.cpp b/mlir/lib/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.cpp
index cdfe8589c4ffd..287ef8b304fbf 100644
--- a/mlir/lib/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.cpp
+++ b/mlir/lib/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.cpp
@@ -16,7 +16,7 @@
 #include "mlir/Pass/Pass.h"
 
 namespace mlir {
-#define GEN_PASS_DEF_CONVERTARITHMETICTOLLVM
+#define GEN_PASS_DEF_ARITHMETICTOLLVMCONVERSIONPASS
 #include "mlir/Conversion/Passes.h.inc"
 } // namespace mlir
 
@@ -320,9 +320,10 @@ CmpFOpLowering::matchAndRewrite(arith::CmpFOp op, OpAdaptor adaptor,
 //===----------------------------------------------------------------------===//
 
 namespace {
-struct ConvertArithmeticToLLVMPass
-    : public impl::ConvertArithmeticToLLVMBase<ConvertArithmeticToLLVMPass> {
-  ConvertArithmeticToLLVMPass() = default;
+struct ArithmeticToLLVMConversionPass
+    : public impl::ArithmeticToLLVMConversionPassBase<
+          ArithmeticToLLVMConversionPass> {
+  using Base::Base;
 
   void runOnOperation() override {
     LLVMConversionTarget target(getContext());
@@ -395,7 +396,3 @@ void mlir::arith::populateArithmeticToLLVMConversionPatterns(
   >(converter);
   // clang-format on
 }
-
-std::unique_ptr<Pass> mlir::arith::createConvertArithmeticToLLVMPass() {
-  return std::make_unique<ConvertArithmeticToLLVMPass>();
-}

diff  --git a/mlir/test/CAPI/execution_engine.c b/mlir/test/CAPI/execution_engine.c
index 60171db018fac..fc93ca64ce2df 100644
--- a/mlir/test/CAPI/execution_engine.c
+++ b/mlir/test/CAPI/execution_engine.c
@@ -35,8 +35,8 @@ void lowerModuleToLLVM(MlirContext ctx, MlirModule module) {
   MlirOpPassManager opm = mlirPassManagerGetNestedUnder(
       pm, mlirStringRefCreateFromCString("func.func"));
   mlirPassManagerAddOwnedPass(pm, mlirCreateConversionConvertFuncToLLVM());
-  mlirOpPassManagerAddOwnedPass(opm,
-                                mlirCreateConversionConvertArithmeticToLLVM());
+  mlirOpPassManagerAddOwnedPass(
+      opm, mlirCreateConversionArithmeticToLLVMConversionPass());
   MlirLogicalResult status = mlirPassManagerRun(pm, module);
   if (mlirLogicalResultIsFailure(status)) {
     fprintf(stderr, "Unexpected failure running pass pipeline\n");

diff  --git a/mlir/unittests/ExecutionEngine/Invoke.cpp b/mlir/unittests/ExecutionEngine/Invoke.cpp
index 676293a002eea..fda0558b18e32 100644
--- a/mlir/unittests/ExecutionEngine/Invoke.cpp
+++ b/mlir/unittests/ExecutionEngine/Invoke.cpp
@@ -54,8 +54,7 @@ static struct LLVMInitializer {
 static LogicalResult lowerToLLVMDialect(ModuleOp module) {
   PassManager pm(module.getContext());
   pm.addPass(mlir::createMemRefToLLVMConversionPass());
-  pm.addNestedPass<func::FuncOp>(
-      mlir::arith::createConvertArithmeticToLLVMPass());
+  pm.addNestedPass<func::FuncOp>(mlir::createArithmeticToLLVMConversionPass());
   pm.addPass(mlir::createConvertFuncToLLVMPass());
   pm.addPass(mlir::createReconcileUnrealizedCastsPass());
   return pm.run(module);


        


More information about the Mlir-commits mailing list