#ifdef GEN_PASS_DECL
#define GEN_PASS_DECL_DISCOPEFORLLVMFUNCOPPASS
#define GEN_PASS_DECL_LLVMADDCOMDATS
#define GEN_PASS_DECL_LLVMLEGALIZEFOREXPORT
#define GEN_PASS_DECL_LLVMREQUESTCWRAPPERS
#define GEN_PASS_DECL_NVVMOPTIMIZEFORTARGET
#undef GEN_PASS_DECL
#endif
#ifdef GEN_PASS_DECL_DISCOPEFORLLVMFUNCOPPASS
struct DIScopeForLLVMFuncOpPassOptions {
mlir::LLVM::DIEmissionKind emissionKind = mlir::LLVM::DIEmissionKind::LineTablesOnly;
};
std::unique_ptr<::mlir::Pass> createDIScopeForLLVMFuncOpPass();
std::unique_ptr<::mlir::Pass> createDIScopeForLLVMFuncOpPass(DIScopeForLLVMFuncOpPassOptions options);
#undef GEN_PASS_DECL_DISCOPEFORLLVMFUNCOPPASS
#endif
#ifdef GEN_PASS_DEF_DISCOPEFORLLVMFUNCOPPASS
namespace impl {
std::unique_ptr<::mlir::Pass> createDIScopeForLLVMFuncOpPass();
}
namespace impl {
std::unique_ptr<::mlir::Pass> createDIScopeForLLVMFuncOpPass(DIScopeForLLVMFuncOpPassOptions options);
}
namespace impl {
template <typename DerivedT>
class DIScopeForLLVMFuncOpPassBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
public:
using Base = DIScopeForLLVMFuncOpPassBase;
DIScopeForLLVMFuncOpPassBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
DIScopeForLLVMFuncOpPassBase(const DIScopeForLLVMFuncOpPassBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
DIScopeForLLVMFuncOpPassBase& operator=(const DIScopeForLLVMFuncOpPassBase &) = delete;
DIScopeForLLVMFuncOpPassBase(DIScopeForLLVMFuncOpPassBase &&) = delete;
DIScopeForLLVMFuncOpPassBase& operator=(DIScopeForLLVMFuncOpPassBase &&) = delete;
~DIScopeForLLVMFuncOpPassBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("ensure-debug-info-scope-on-llvm-func");
}
::llvm::StringRef getArgument() const override { return "ensure-debug-info-scope-on-llvm-func"; }
::llvm::StringRef getDescription() const override { return "Materialize LLVM debug info subprogram attribute on every LLVMFuncOp"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("DIScopeForLLVMFuncOpPass");
}
::llvm::StringRef getName() const override { return "DIScopeForLLVMFuncOpPass"; }
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(DIScopeForLLVMFuncOpPassBase<DerivedT>)
DIScopeForLLVMFuncOpPassBase(DIScopeForLLVMFuncOpPassOptions options) : DIScopeForLLVMFuncOpPassBase() {
emissionKind = std::move(options.emissionKind);
}
protected:
::mlir::Pass::Option<mlir::LLVM::DIEmissionKind> emissionKind{*this, "emission-kind", ::llvm::cl::desc("Emission kind to generate debug info."), ::llvm::cl::init(mlir::LLVM::DIEmissionKind::LineTablesOnly), ::llvm::cl::values(
clEnumValN(::mlir::LLVM::DIEmissionKind::None, "None", "None"),
clEnumValN(::mlir::LLVM::DIEmissionKind::Full, "Full", "Full"),
clEnumValN(::mlir::LLVM::DIEmissionKind::LineTablesOnly, "LineTablesOnly", "LineTablesOnly (default)"),
clEnumValN(::mlir::LLVM::DIEmissionKind::DebugDirectivesOnly, "DebugDirectivesOnly", "DebugDirectivesOnly")
)};
private:
friend std::unique_ptr<::mlir::Pass> createDIScopeForLLVMFuncOpPass() {
return std::make_unique<DerivedT>();
}
friend std::unique_ptr<::mlir::Pass> createDIScopeForLLVMFuncOpPass(DIScopeForLLVMFuncOpPassOptions options) {
return std::make_unique<DerivedT>(std::move(options));
}
};
}
std::unique_ptr<::mlir::Pass> createDIScopeForLLVMFuncOpPass() {
return impl::createDIScopeForLLVMFuncOpPass();
}
std::unique_ptr<::mlir::Pass> createDIScopeForLLVMFuncOpPass(DIScopeForLLVMFuncOpPassOptions options) {
return impl::createDIScopeForLLVMFuncOpPass(std::move(options));
}
#undef GEN_PASS_DEF_DISCOPEFORLLVMFUNCOPPASS
#endif
#ifdef GEN_PASS_DECL_LLVMADDCOMDATS
std::unique_ptr<::mlir::Pass> createLLVMAddComdats();
#undef GEN_PASS_DECL_LLVMADDCOMDATS
#endif
#ifdef GEN_PASS_DEF_LLVMADDCOMDATS
namespace impl {
std::unique_ptr<::mlir::Pass> createLLVMAddComdats();
}
namespace impl {
template <typename DerivedT>
class LLVMAddComdatsBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
public:
using Base = LLVMAddComdatsBase;
LLVMAddComdatsBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
LLVMAddComdatsBase(const LLVMAddComdatsBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
LLVMAddComdatsBase& operator=(const LLVMAddComdatsBase &) = delete;
LLVMAddComdatsBase(LLVMAddComdatsBase &&) = delete;
LLVMAddComdatsBase& operator=(LLVMAddComdatsBase &&) = delete;
~LLVMAddComdatsBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("llvm-add-comdats");
}
::llvm::StringRef getArgument() const override { return "llvm-add-comdats"; }
::llvm::StringRef getDescription() const override { return "Add comdats to linkonce and linkonce_odr functions"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("LLVMAddComdats");
}
::llvm::StringRef getName() const override { return "LLVMAddComdats"; }
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(LLVMAddComdatsBase<DerivedT>)
protected:
private:
friend std::unique_ptr<::mlir::Pass> createLLVMAddComdats() {
return std::make_unique<DerivedT>();
}
};
}
std::unique_ptr<::mlir::Pass> createLLVMAddComdats() {
return impl::createLLVMAddComdats();
}
#undef GEN_PASS_DEF_LLVMADDCOMDATS
#endif
#ifdef GEN_PASS_DECL_LLVMLEGALIZEFOREXPORT
#undef GEN_PASS_DECL_LLVMLEGALIZEFOREXPORT
#endif
#ifdef GEN_PASS_DEF_LLVMLEGALIZEFOREXPORT
namespace impl {
template <typename DerivedT>
class LLVMLegalizeForExportBase : public ::mlir::OperationPass<> {
public:
using Base = LLVMLegalizeForExportBase;
LLVMLegalizeForExportBase() : ::mlir::OperationPass<>(::mlir::TypeID::get<DerivedT>()) {}
LLVMLegalizeForExportBase(const LLVMLegalizeForExportBase &other) : ::mlir::OperationPass<>(other) {}
LLVMLegalizeForExportBase& operator=(const LLVMLegalizeForExportBase &) = delete;
LLVMLegalizeForExportBase(LLVMLegalizeForExportBase &&) = delete;
LLVMLegalizeForExportBase& operator=(LLVMLegalizeForExportBase &&) = delete;
~LLVMLegalizeForExportBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("llvm-legalize-for-export");
}
::llvm::StringRef getArgument() const override { return "llvm-legalize-for-export"; }
::llvm::StringRef getDescription() const override { return "Legalize LLVM dialect to be convertible to LLVM IR"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("LLVMLegalizeForExport");
}
::llvm::StringRef getName() const override { return "LLVMLegalizeForExport"; }
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<LLVM::LLVMDialect>();
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(LLVMLegalizeForExportBase<DerivedT>)
protected:
private:
};
}
#undef GEN_PASS_DEF_LLVMLEGALIZEFOREXPORT
#endif
#ifdef GEN_PASS_DECL_LLVMREQUESTCWRAPPERS
#undef GEN_PASS_DECL_LLVMREQUESTCWRAPPERS
#endif
#ifdef GEN_PASS_DEF_LLVMREQUESTCWRAPPERS
namespace impl {
template <typename DerivedT>
class LLVMRequestCWrappersBase : public ::mlir::OperationPass<::mlir::func::FuncOp> {
public:
using Base = LLVMRequestCWrappersBase;
LLVMRequestCWrappersBase() : ::mlir::OperationPass<::mlir::func::FuncOp>(::mlir::TypeID::get<DerivedT>()) {}
LLVMRequestCWrappersBase(const LLVMRequestCWrappersBase &other) : ::mlir::OperationPass<::mlir::func::FuncOp>(other) {}
LLVMRequestCWrappersBase& operator=(const LLVMRequestCWrappersBase &) = delete;
LLVMRequestCWrappersBase(LLVMRequestCWrappersBase &&) = delete;
LLVMRequestCWrappersBase& operator=(LLVMRequestCWrappersBase &&) = delete;
~LLVMRequestCWrappersBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("llvm-request-c-wrappers");
}
::llvm::StringRef getArgument() const override { return "llvm-request-c-wrappers"; }
::llvm::StringRef getDescription() const override { return "Request C wrapper emission for all functions"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("LLVMRequestCWrappers");
}
::llvm::StringRef getName() const override { return "LLVMRequestCWrappers"; }
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(LLVMRequestCWrappersBase<DerivedT>)
protected:
private:
};
}
#undef GEN_PASS_DEF_LLVMREQUESTCWRAPPERS
#endif
#ifdef GEN_PASS_DECL_NVVMOPTIMIZEFORTARGET
#undef GEN_PASS_DECL_NVVMOPTIMIZEFORTARGET
#endif
#ifdef GEN_PASS_DEF_NVVMOPTIMIZEFORTARGET
namespace impl {
template <typename DerivedT>
class NVVMOptimizeForTargetBase : public ::mlir::OperationPass<> {
public:
using Base = NVVMOptimizeForTargetBase;
NVVMOptimizeForTargetBase() : ::mlir::OperationPass<>(::mlir::TypeID::get<DerivedT>()) {}
NVVMOptimizeForTargetBase(const NVVMOptimizeForTargetBase &other) : ::mlir::OperationPass<>(other) {}
NVVMOptimizeForTargetBase& operator=(const NVVMOptimizeForTargetBase &) = delete;
NVVMOptimizeForTargetBase(NVVMOptimizeForTargetBase &&) = delete;
NVVMOptimizeForTargetBase& operator=(NVVMOptimizeForTargetBase &&) = delete;
~NVVMOptimizeForTargetBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("llvm-optimize-for-nvvm-target");
}
::llvm::StringRef getArgument() const override { return "llvm-optimize-for-nvvm-target"; }
::llvm::StringRef getDescription() const override { return "Optimize NVVM IR"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("NVVMOptimizeForTarget");
}
::llvm::StringRef getName() const override { return "NVVMOptimizeForTarget"; }
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(NVVMOptimizeForTargetBase<DerivedT>)
protected:
private:
};
}
#undef GEN_PASS_DEF_NVVMOPTIMIZEFORTARGET
#endif
#ifdef GEN_PASS_REGISTRATION
inline void registerDIScopeForLLVMFuncOpPass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return createDIScopeForLLVMFuncOpPass();
});
}
inline void registerDIScopeForLLVMFuncOpPassPass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return createDIScopeForLLVMFuncOpPass();
});
}
inline void registerLLVMAddComdats() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return createLLVMAddComdats();
});
}
inline void registerLLVMAddComdatsPass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return createLLVMAddComdats();
});
}
inline void registerLLVMLegalizeForExport() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return ::mlir::LLVM::createLegalizeForExportPass();
});
}
inline void registerLLVMLegalizeForExportPass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return ::mlir::LLVM::createLegalizeForExportPass();
});
}
inline void registerLLVMRequestCWrappers() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return ::mlir::LLVM::createRequestCWrappersPass();
});
}
inline void registerLLVMRequestCWrappersPass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return ::mlir::LLVM::createRequestCWrappersPass();
});
}
inline void registerNVVMOptimizeForTarget() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return ::mlir::NVVM::createOptimizeForTargetPass();
});
}
inline void registerNVVMOptimizeForTargetPass() {
::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
return ::mlir::NVVM::createOptimizeForTargetPass();
});
}
inline void registerLLVMPasses() {
registerDIScopeForLLVMFuncOpPass();
registerLLVMAddComdats();
registerLLVMLegalizeForExport();
registerLLVMRequestCWrappers();
registerNVVMOptimizeForTarget();
}
#undef GEN_PASS_REGISTRATION
#endif
#ifdef GEN_PASS_CLASSES
template <typename DerivedT>
class DIScopeForLLVMFuncOpPassBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
public:
using Base = DIScopeForLLVMFuncOpPassBase;
DIScopeForLLVMFuncOpPassBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
DIScopeForLLVMFuncOpPassBase(const DIScopeForLLVMFuncOpPassBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
DIScopeForLLVMFuncOpPassBase& operator=(const DIScopeForLLVMFuncOpPassBase &) = delete;
DIScopeForLLVMFuncOpPassBase(DIScopeForLLVMFuncOpPassBase &&) = delete;
DIScopeForLLVMFuncOpPassBase& operator=(DIScopeForLLVMFuncOpPassBase &&) = delete;
~DIScopeForLLVMFuncOpPassBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("ensure-debug-info-scope-on-llvm-func");
}
::llvm::StringRef getArgument() const override { return "ensure-debug-info-scope-on-llvm-func"; }
::llvm::StringRef getDescription() const override { return "Materialize LLVM debug info subprogram attribute on every LLVMFuncOp"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("DIScopeForLLVMFuncOpPass");
}
::llvm::StringRef getName() const override { return "DIScopeForLLVMFuncOpPass"; }
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(DIScopeForLLVMFuncOpPassBase<DerivedT>)
protected:
::mlir::Pass::Option<mlir::LLVM::DIEmissionKind> emissionKind{*this, "emission-kind", ::llvm::cl::desc("Emission kind to generate debug info."), ::llvm::cl::init(mlir::LLVM::DIEmissionKind::LineTablesOnly), ::llvm::cl::values(
clEnumValN(::mlir::LLVM::DIEmissionKind::None, "None", "None"),
clEnumValN(::mlir::LLVM::DIEmissionKind::Full, "Full", "Full"),
clEnumValN(::mlir::LLVM::DIEmissionKind::LineTablesOnly, "LineTablesOnly", "LineTablesOnly (default)"),
clEnumValN(::mlir::LLVM::DIEmissionKind::DebugDirectivesOnly, "DebugDirectivesOnly", "DebugDirectivesOnly")
)};
};
template <typename DerivedT>
class LLVMAddComdatsBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
public:
using Base = LLVMAddComdatsBase;
LLVMAddComdatsBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
LLVMAddComdatsBase(const LLVMAddComdatsBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
LLVMAddComdatsBase& operator=(const LLVMAddComdatsBase &) = delete;
LLVMAddComdatsBase(LLVMAddComdatsBase &&) = delete;
LLVMAddComdatsBase& operator=(LLVMAddComdatsBase &&) = delete;
~LLVMAddComdatsBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("llvm-add-comdats");
}
::llvm::StringRef getArgument() const override { return "llvm-add-comdats"; }
::llvm::StringRef getDescription() const override { return "Add comdats to linkonce and linkonce_odr functions"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("LLVMAddComdats");
}
::llvm::StringRef getName() const override { return "LLVMAddComdats"; }
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(LLVMAddComdatsBase<DerivedT>)
protected:
};
template <typename DerivedT>
class LLVMLegalizeForExportBase : public ::mlir::OperationPass<> {
public:
using Base = LLVMLegalizeForExportBase;
LLVMLegalizeForExportBase() : ::mlir::OperationPass<>(::mlir::TypeID::get<DerivedT>()) {}
LLVMLegalizeForExportBase(const LLVMLegalizeForExportBase &other) : ::mlir::OperationPass<>(other) {}
LLVMLegalizeForExportBase& operator=(const LLVMLegalizeForExportBase &) = delete;
LLVMLegalizeForExportBase(LLVMLegalizeForExportBase &&) = delete;
LLVMLegalizeForExportBase& operator=(LLVMLegalizeForExportBase &&) = delete;
~LLVMLegalizeForExportBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("llvm-legalize-for-export");
}
::llvm::StringRef getArgument() const override { return "llvm-legalize-for-export"; }
::llvm::StringRef getDescription() const override { return "Legalize LLVM dialect to be convertible to LLVM IR"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("LLVMLegalizeForExport");
}
::llvm::StringRef getName() const override { return "LLVMLegalizeForExport"; }
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<LLVM::LLVMDialect>();
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(LLVMLegalizeForExportBase<DerivedT>)
protected:
};
template <typename DerivedT>
class LLVMRequestCWrappersBase : public ::mlir::OperationPass<::mlir::func::FuncOp> {
public:
using Base = LLVMRequestCWrappersBase;
LLVMRequestCWrappersBase() : ::mlir::OperationPass<::mlir::func::FuncOp>(::mlir::TypeID::get<DerivedT>()) {}
LLVMRequestCWrappersBase(const LLVMRequestCWrappersBase &other) : ::mlir::OperationPass<::mlir::func::FuncOp>(other) {}
LLVMRequestCWrappersBase& operator=(const LLVMRequestCWrappersBase &) = delete;
LLVMRequestCWrappersBase(LLVMRequestCWrappersBase &&) = delete;
LLVMRequestCWrappersBase& operator=(LLVMRequestCWrappersBase &&) = delete;
~LLVMRequestCWrappersBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("llvm-request-c-wrappers");
}
::llvm::StringRef getArgument() const override { return "llvm-request-c-wrappers"; }
::llvm::StringRef getDescription() const override { return "Request C wrapper emission for all functions"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("LLVMRequestCWrappers");
}
::llvm::StringRef getName() const override { return "LLVMRequestCWrappers"; }
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(LLVMRequestCWrappersBase<DerivedT>)
protected:
};
template <typename DerivedT>
class NVVMOptimizeForTargetBase : public ::mlir::OperationPass<> {
public:
using Base = NVVMOptimizeForTargetBase;
NVVMOptimizeForTargetBase() : ::mlir::OperationPass<>(::mlir::TypeID::get<DerivedT>()) {}
NVVMOptimizeForTargetBase(const NVVMOptimizeForTargetBase &other) : ::mlir::OperationPass<>(other) {}
NVVMOptimizeForTargetBase& operator=(const NVVMOptimizeForTargetBase &) = delete;
NVVMOptimizeForTargetBase(NVVMOptimizeForTargetBase &&) = delete;
NVVMOptimizeForTargetBase& operator=(NVVMOptimizeForTargetBase &&) = delete;
~NVVMOptimizeForTargetBase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("llvm-optimize-for-nvvm-target");
}
::llvm::StringRef getArgument() const override { return "llvm-optimize-for-nvvm-target"; }
::llvm::StringRef getDescription() const override { return "Optimize NVVM IR"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("NVVMOptimizeForTarget");
}
::llvm::StringRef getName() const override { return "NVVMOptimizeForTarget"; }
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(NVVMOptimizeForTargetBase<DerivedT>)
protected:
};
#undef GEN_PASS_CLASSES
#endif