#ifdef GEN_PASS_DECL
#define GEN_PASS_DECL_MATHLEGALIZETOF32
#define GEN_PASS_DECL_MATHUPLIFTTOFMA
#undef GEN_PASS_DECL
#endif
#ifdef GEN_PASS_DECL_MATHLEGALIZETOF32
std::unique_ptr<::mlir::Pass> createMathLegalizeToF32();
#undef GEN_PASS_DECL_MATHLEGALIZETOF32
#endif
#ifdef GEN_PASS_DEF_MATHLEGALIZETOF32
namespace impl {
std::unique_ptr<::mlir::Pass> createMathLegalizeToF32();
}
namespace impl {
template <typename DerivedT>
class MathLegalizeToF32Base : public ::mlir::OperationPass<> {
public:
using Base = MathLegalizeToF32Base;
MathLegalizeToF32Base() : ::mlir::OperationPass<>(::mlir::TypeID::get<DerivedT>()) {}
MathLegalizeToF32Base(const MathLegalizeToF32Base &other) : ::mlir::OperationPass<>(other) {}
MathLegalizeToF32Base& operator=(const MathLegalizeToF32Base &) = delete;
MathLegalizeToF32Base(MathLegalizeToF32Base &&) = delete;
MathLegalizeToF32Base& operator=(MathLegalizeToF32Base &&) = delete;
~MathLegalizeToF32Base() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("math-legalize-to-f32");
}
::llvm::StringRef getArgument() const override { return "math-legalize-to-f32"; }
::llvm::StringRef getDescription() const override { return "Legalize floating-point math ops on low-precision floats"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("MathLegalizeToF32");
}
::llvm::StringRef getName() const override { return "MathLegalizeToF32"; }
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<math::MathDialect>();
registry.insert<arith::ArithDialect>();
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(MathLegalizeToF32Base<DerivedT>)
protected:
private:
friend std::unique_ptr<::mlir::Pass> createMathLegalizeToF32() {
return std::make_unique<DerivedT>();
}
};
}
std::unique_ptr<::mlir::Pass> createMathLegalizeToF32() {
return impl::createMathLegalizeToF32();
}
#undef GEN_PASS_DEF_MATHLEGALIZETOF32
#endif
#ifdef GEN_PASS_DECL_MATHUPLIFTTOFMA
std::unique_ptr<::mlir::Pass> createMathUpliftToFMA();
#undef GEN_PASS_DECL_MATHUPLIFTTOFMA
#endif
#ifdef GEN_PASS_DEF_MATHUPLIFTTOFMA
namespace impl {
std::unique_ptr<::mlir::Pass> createMathUpliftToFMA();
}
namespace impl {
template <typename DerivedT>
class MathUpliftToFMABase : public ::mlir::OperationPass<> {
public:
using Base = MathUpliftToFMABase;
MathUpliftToFMABase() : ::mlir::OperationPass<>(::mlir::TypeID::get<DerivedT>()) {}
MathUpliftToFMABase(const MathUpliftToFMABase &other) : ::mlir::OperationPass<>(other) {}
MathUpliftToFMABase& operator=(const MathUpliftToFMABase &) = delete;
MathUpliftToFMABase(MathUpliftToFMABase &&) = delete;
MathUpliftToFMABase& operator=(MathUpliftToFMABase &&) = delete;
~MathUpliftToFMABase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("math-uplift-to-fma");
}
::llvm::StringRef getArgument() const override { return "math-uplift-to-fma"; }
::llvm::StringRef getDescription() const override { return "Uplift arith ops to math.fma."; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("MathUpliftToFMA");
}
::llvm::StringRef getName() const override { return "MathUpliftToFMA"; }
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<math::MathDialect>();
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(MathUpliftToFMABase<DerivedT>)
protected:
private:
friend std::unique_ptr<::mlir::Pass> createMathUpliftToFMA() {
return std::make_unique<DerivedT>();
}
};
}
std::unique_ptr<::mlir::Pass> createMathUpliftToFMA() {
return impl::createMathUpliftToFMA();
}
#undef GEN_PASS_DEF_MATHUPLIFTTOFMA
#endif
#ifdef GEN_PASS_REGISTRATION
inline void registerMathLegalizeToF32() { … }
inline void registerMathLegalizeToF32Pass() { … }
inline void registerMathUpliftToFMA() { … }
inline void registerMathUpliftToFMAPass() { … }
inline void registerMathPasses() { … }
#undef GEN_PASS_REGISTRATION
#endif
#ifdef GEN_PASS_CLASSES
template <typename DerivedT>
class MathLegalizeToF32Base : public ::mlir::OperationPass<> {
public:
using Base = MathLegalizeToF32Base;
MathLegalizeToF32Base() : ::mlir::OperationPass<>(::mlir::TypeID::get<DerivedT>()) {}
MathLegalizeToF32Base(const MathLegalizeToF32Base &other) : ::mlir::OperationPass<>(other) {}
MathLegalizeToF32Base& operator=(const MathLegalizeToF32Base &) = delete;
MathLegalizeToF32Base(MathLegalizeToF32Base &&) = delete;
MathLegalizeToF32Base& operator=(MathLegalizeToF32Base &&) = delete;
~MathLegalizeToF32Base() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("math-legalize-to-f32");
}
::llvm::StringRef getArgument() const override { return "math-legalize-to-f32"; }
::llvm::StringRef getDescription() const override { return "Legalize floating-point math ops on low-precision floats"; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("MathLegalizeToF32");
}
::llvm::StringRef getName() const override { return "MathLegalizeToF32"; }
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<math::MathDialect>();
registry.insert<arith::ArithDialect>();
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(MathLegalizeToF32Base<DerivedT>)
protected:
};
template <typename DerivedT>
class MathUpliftToFMABase : public ::mlir::OperationPass<> {
public:
using Base = MathUpliftToFMABase;
MathUpliftToFMABase() : ::mlir::OperationPass<>(::mlir::TypeID::get<DerivedT>()) {}
MathUpliftToFMABase(const MathUpliftToFMABase &other) : ::mlir::OperationPass<>(other) {}
MathUpliftToFMABase& operator=(const MathUpliftToFMABase &) = delete;
MathUpliftToFMABase(MathUpliftToFMABase &&) = delete;
MathUpliftToFMABase& operator=(MathUpliftToFMABase &&) = delete;
~MathUpliftToFMABase() = default;
static constexpr ::llvm::StringLiteral getArgumentName() {
return ::llvm::StringLiteral("math-uplift-to-fma");
}
::llvm::StringRef getArgument() const override { return "math-uplift-to-fma"; }
::llvm::StringRef getDescription() const override { return "Uplift arith ops to math.fma."; }
static constexpr ::llvm::StringLiteral getPassName() {
return ::llvm::StringLiteral("MathUpliftToFMA");
}
::llvm::StringRef getName() const override { return "MathUpliftToFMA"; }
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<math::MathDialect>();
}
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(MathUpliftToFMABase<DerivedT>)
protected:
};
#undef GEN_PASS_CLASSES
#endif