forked from OSchip/llvm-project
[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:
parent
b4cc363e86
commit
939c5cf6a7
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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>();
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
Loading…
Reference in New Issue