[MLIR] Migrate MemRef -> LLVM conversion pass to the auto-generated constructor

See #57475

Differential Revision: https://reviews.llvm.org/D134607
This commit is contained in:
Michele Scuttari 2022-09-25 21:52:18 +02:00
parent b4cc363e86
commit 939c5cf6a7
No known key found for this signature in database
GPG Key ID: E79E7BDFEE4B62D4
6 changed files with 9 additions and 16 deletions

View File

@ -16,15 +16,13 @@ class Pass;
class LLVMTypeConverter;
class RewritePatternSet;
#define GEN_PASS_DECL_CONVERTMEMREFTOLLVM
#define GEN_PASS_DECL_MEMREFTOLLVMCONVERSIONPASS
#include "mlir/Conversion/Passes.h.inc"
/// Collect a set of patterns to convert memory-related operations from the
/// MemRef dialect to the LLVM dialect.
void populateMemRefToLLVMConversionPatterns(LLVMTypeConverter &converter,
RewritePatternSet &patterns);
std::unique_ptr<Pass> createMemRefToLLVMPass();
} // namespace mlir
#endif // MLIR_CONVERSION_MEMREFTOLLVM_MEMREFTOLLVM_H

View File

@ -541,10 +541,9 @@ def ConvertMathToFuncs : Pass<"convert-math-to-funcs", "ModuleOp"> {
// MemRefToLLVM
//===----------------------------------------------------------------------===//
def ConvertMemRefToLLVM : Pass<"convert-memref-to-llvm", "ModuleOp"> {
def MemRefToLLVMConversionPass : Pass<"convert-memref-to-llvm", "ModuleOp"> {
let summary = "Convert operations from the MemRef dialect to the LLVM "
"dialect";
let constructor = "mlir::createMemRefToLLVMPass()";
let dependentDialects = ["LLVM::LLVMDialect"];
let options = [
Option<"useAlignedAlloc", "use-aligned-alloc", "bool", /*default=*/"false",

View File

@ -24,7 +24,7 @@
#include "llvm/ADT/SmallBitVector.h"
namespace mlir {
#define GEN_PASS_DEF_CONVERTMEMREFTOLLVM
#define GEN_PASS_DEF_MEMREFTOLLVMCONVERSIONPASS
#include "mlir/Conversion/Passes.h.inc"
} // namespace mlir
@ -2108,9 +2108,9 @@ void mlir::populateMemRefToLLVMConversionPatterns(LLVMTypeConverter &converter,
}
namespace {
struct MemRefToLLVMPass
: public impl::ConvertMemRefToLLVMBase<MemRefToLLVMPass> {
MemRefToLLVMPass() = default;
struct MemRefToLLVMConversionPass
: public impl::MemRefToLLVMConversionPassBase<MemRefToLLVMConversionPass> {
using MemRefToLLVMConversionPassBase::MemRefToLLVMConversionPassBase;
void runOnOperation() override {
Operation *op = getOperation();
@ -2137,7 +2137,3 @@ struct MemRefToLLVMPass
}
};
} // namespace
std::unique_ptr<Pass> mlir::createMemRefToLLVMPass() {
return std::make_unique<MemRefToLLVMPass>();
}

View File

@ -76,7 +76,7 @@ void mlir::sparse_tensor::buildSparseCompiler(
pm.addNestedPass<func::FuncOp>(createConvertSCFToCFPass());
pm.addPass(createLowerAffinePass());
pm.addPass(createConvertVectorToLLVMPass(options.lowerVectorToLLVMOptions()));
pm.addPass(createMemRefToLLVMPass());
pm.addPass(createMemRefToLLVMConversionPass());
pm.addNestedPass<func::FuncOp>(createConvertComplexToStandardPass());
pm.addNestedPass<mlir::func::FuncOp>(
mlir::arith::createArithmeticExpandOpsPass());

View File

@ -55,7 +55,7 @@ static LogicalResult runMLIRPasses(ModuleOp module) {
passManager.addPass(createConvertGpuLaunchFuncToVulkanLaunchFuncPass());
LowerToLLVMOptions llvmOptions(module.getContext(), DataLayout(module));
passManager.addPass(createMemRefToLLVMPass());
passManager.addPass(createMemRefToLLVMConversionPass());
passManager.nest<func::FuncOp>().addPass(LLVM::createRequestCWrappersPass());
passManager.addPass(createConvertFuncToLLVMPass(llvmOptions));
passManager.addPass(createReconcileUnrealizedCastsPass());

View File

@ -53,7 +53,7 @@ static struct LLVMInitializer {
/// dialects lowering to LLVM Dialect.
static LogicalResult lowerToLLVMDialect(ModuleOp module) {
PassManager pm(module.getContext());
pm.addPass(mlir::createMemRefToLLVMPass());
pm.addPass(mlir::createMemRefToLLVMConversionPass());
pm.addNestedPass<func::FuncOp>(
mlir::arith::createConvertArithmeticToLLVMPass());
pm.addPass(mlir::createConvertFuncToLLVMPass());