Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichele Scuttari <michele.scuttari@outlook.com>2022-09-27 20:41:08 +0300
committerMichele Scuttari <michele.scuttari@outlook.com>2022-09-27 23:08:00 +0300
commitb1ce63bb5fdcd8c83d20f2ca1397fcad54d701a0 (patch)
tree6e95e9c81ef1b2f2c17663ab7250204760bfe1f9
parentc29d911fd398a825f97d1368933b858aa7144dba (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.h4
-rw-r--r--mlir/include/mlir/Conversion/Passes.td3
-rw-r--r--mlir/lib/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.cpp13
-rw-r--r--mlir/test/CAPI/execution_engine.c4
-rw-r--r--mlir/unittests/ExecutionEngine/Invoke.cpp3
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);