diff options
author | Michele Scuttari <michele.scuttari@outlook.com> | 2022-09-27 20:41:08 +0300 |
---|---|---|
committer | Michele Scuttari <michele.scuttari@outlook.com> | 2022-09-27 23:08:00 +0300 |
commit | b1ce63bb5fdcd8c83d20f2ca1397fcad54d701a0 (patch) | |
tree | 6e95e9c81ef1b2f2c17663ab7250204760bfe1f9 | |
parent | c29d911fd398a825f97d1368933b858aa7144dba (diff) |
[MLIR] Migrate Arithmetic -> LLVM conversion pass to the auto-generated constructor
See #57475
Differential Revision: https://reviews.llvm.org/D134752
-rw-r--r-- | mlir/include/mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h | 4 | ||||
-rw-r--r-- | mlir/include/mlir/Conversion/Passes.td | 3 | ||||
-rw-r--r-- | mlir/lib/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.cpp | 13 | ||||
-rw-r--r-- | mlir/test/CAPI/execution_engine.c | 4 | ||||
-rw-r--r-- | mlir/unittests/ExecutionEngine/Invoke.cpp | 3 |
5 files changed, 10 insertions, 17 deletions
diff --git a/mlir/include/mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h b/mlir/include/mlir/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.h index 6e41e9b91ed5..09c72b8bce4a 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 a5a655bfa035..7aa8fc064573 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 cdfe8589c4ff..287ef8b304fb 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 60171db018fa..fc93ca64ce2d 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 676293a002ee..fda0558b18e3 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); |