#ifdef GEN_PASS_DECL
#define GEN_PASS_DECL_DUPLICATEFUNCTIONELIMINATIONPASS
#define GEN_PASS_DECL_FUNCBUFFERIZE
#undef GEN_PASS_DECL
#endif
#ifdef GEN_PASS_DECL_DUPLICATEFUNCTIONELIMINATIONPASS
#undef GEN_PASS_DECL_DUPLICATEFUNCTIONELIMINATIONPASS
#endif
#ifdef GEN_PASS_DEF_DUPLICATEFUNCTIONELIMINATIONPASS
namespace impl {
template <typename DerivedT>
class DuplicateFunctionEliminationPassBase : public ::mlir::OperationPass<ModuleOp> {
public:
using Base = DuplicateFunctionEliminationPassBase;
DuplicateFunctionEliminationPassBase() : ::mlir::OperationPass<ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
DuplicateFunctionEliminationPassBase(const DuplicateFunctionEliminationPassBase &other) : ::mlir::OperationPass<ModuleOp>(other) {}
DuplicateFunctionEliminationPassBase& operator=(const DuplicateFunctionEliminationPassBase &) = delete;
DuplicateFunctionEliminationPassBase(DuplicateFunctionEliminationPassBase &&) = delete;
DuplicateFunctionEliminationPassBase& operator=(DuplicateFunctionEliminationPassBase &&) = delete;
~DuplicateFunctionEliminationPassBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("duplicate-function-elimination");
}
::llvm::StringRef getArgument() const override { return "duplicate-function-elimination"; }
::llvm::StringRef getDescription() const override { return "Deduplicate functions"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("DuplicateFunctionEliminationPass");
}
::llvm::StringRef getName() const override { return "DuplicateFunctionEliminationPass"; }
static bool classof(const ::mlir::Pass *pass) {
return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
}
std::unique_ptr<::mlir::Pass> clonePass() const override {
return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
}
void getDependentDialects(::mlir::DialectRegistry ®istry) const override {
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(DuplicateFunctionEliminationPassBase<DerivedT>)
protected:
private:
};
}
#undef GEN_PASS_DEF_DUPLICATEFUNCTIONELIMINATIONPASS
#endif
#ifdef GEN_PASS_DECL_FUNCBUFFERIZE
#undef GEN_PASS_DECL_FUNCBUFFERIZE
#endif
#ifdef GEN_PASS_DEF_FUNCBUFFERIZE
namespace impl {
template <typename DerivedT>
class FuncBufferizeBase : public ::mlir::OperationPass<ModuleOp> {
public:
using Base = FuncBufferizeBase;
FuncBufferizeBase() : ::mlir::OperationPass<ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
FuncBufferizeBase(const FuncBufferizeBase &other) : ::mlir::OperationPass<ModuleOp>(other) {}
FuncBufferizeBase& operator=(const FuncBufferizeBase &) = delete;
FuncBufferizeBase(FuncBufferizeBase &&) = delete;
FuncBufferizeBase& operator=(FuncBufferizeBase &&) = delete;
~FuncBufferizeBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("func-bufferize");
}
::llvm::StringRef getArgument() const override { return "func-bufferize"; }
::llvm::StringRef getDescription() const override { return "Bufferize func/call/return ops"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("FuncBufferize");
}
::llvm::StringRef getName() const override { return "FuncBufferize"; }
static bool classof(const ::mlir::Pass *pass) {
return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
}
std::unique_ptr<::mlir::Pass> clonePass() const override {
return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
}
void getDependentDialects(::mlir::DialectRegistry ®istry) const override {
registry.insert<bufferization::BufferizationDialect>();
registry.insert<memref::MemRefDialect>();
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(FuncBufferizeBase<DerivedT>)
protected:
private:
};
}
#undef GEN_PASS_DEF_FUNCBUFFERIZE
#endif
#ifdef GEN_PASS_REGISTRATION
inline void registerDuplicateFunctionEliminationPass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return mlir::func::createDuplicateFunctionEliminationPass();
});
}
inline void registerDuplicateFunctionEliminationPassPass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return mlir::func::createDuplicateFunctionEliminationPass();
});
}
inline void registerFuncBufferize() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return mlir::func::createFuncBufferizePass();
});
}
inline void registerFuncBufferizePass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return mlir::func::createFuncBufferizePass();
});
}
inline void registerFuncPasses() {
registerDuplicateFunctionEliminationPass();
registerFuncBufferize();
}
#undef GEN_PASS_REGISTRATION
#endif
#ifdef GEN_PASS_CLASSES
template <typename DerivedT>
class DuplicateFunctionEliminationPassBase : public ::mlir::OperationPass<ModuleOp> {
public:
using Base = DuplicateFunctionEliminationPassBase;
DuplicateFunctionEliminationPassBase() : ::mlir::OperationPass<ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
DuplicateFunctionEliminationPassBase(const DuplicateFunctionEliminationPassBase &other) : ::mlir::OperationPass<ModuleOp>(other) {}
DuplicateFunctionEliminationPassBase& operator=(const DuplicateFunctionEliminationPassBase &) = delete;
DuplicateFunctionEliminationPassBase(DuplicateFunctionEliminationPassBase &&) = delete;
DuplicateFunctionEliminationPassBase& operator=(DuplicateFunctionEliminationPassBase &&) = delete;
~DuplicateFunctionEliminationPassBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("duplicate-function-elimination");
}
::llvm::StringRef getArgument() const override { return "duplicate-function-elimination"; }
::llvm::StringRef getDescription() const override { return "Deduplicate functions"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("DuplicateFunctionEliminationPass");
}
::llvm::StringRef getName() const override { return "DuplicateFunctionEliminationPass"; }
static bool classof(const ::mlir::Pass *pass) {
return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
}
std::unique_ptr<::mlir::Pass> clonePass() const override {
return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
}
void getDependentDialects(::mlir::DialectRegistry ®istry) const override {
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(DuplicateFunctionEliminationPassBase<DerivedT>)
protected:
};
template <typename DerivedT>
class FuncBufferizeBase : public ::mlir::OperationPass<ModuleOp> {
public:
using Base = FuncBufferizeBase;
FuncBufferizeBase() : ::mlir::OperationPass<ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
FuncBufferizeBase(const FuncBufferizeBase &other) : ::mlir::OperationPass<ModuleOp>(other) {}
FuncBufferizeBase& operator=(const FuncBufferizeBase &) = delete;
FuncBufferizeBase(FuncBufferizeBase &&) = delete;
FuncBufferizeBase& operator=(FuncBufferizeBase &&) = delete;
~FuncBufferizeBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("func-bufferize");
}
::llvm::StringRef getArgument() const override { return "func-bufferize"; }
::llvm::StringRef getDescription() const override { return "Bufferize func/call/return ops"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("FuncBufferize");
}
::llvm::StringRef getName() const override { return "FuncBufferize"; }
static bool classof(const ::mlir::Pass *pass) {
return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
}
std::unique_ptr<::mlir::Pass> clonePass() const override {
return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
}
void getDependentDialects(::mlir::DialectRegistry ®istry) const override {
registry.insert<bufferization::BufferizationDialect>();
registry.insert<memref::MemRefDialect>();
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(FuncBufferizeBase<DerivedT>)
protected:
};
#undef GEN_PASS_CLASSES
#endif