21 #define GEN_PASS_DEF_CONVERTMATHTOEMITC
22 #include "mlir/Conversion/Passes.h.inc"
29 struct ConvertMathToEmitC
30 :
public impl::ConvertMathToEmitCBase<ConvertMathToEmitC> {
31 using ConvertMathToEmitCBase::ConvertMathToEmitCBase;
34 void runOnOperation()
final;
39 void ConvertMathToEmitC::runOnOperation() {
41 target.addLegalOp<emitc::CallOpaqueOp>();
43 target.addIllegalOp<math::FloorOp, math::ExpOp, math::RoundOp, math::CosOp,
44 math::SinOp, math::Atan2Op, math::CeilOp, math::AcosOp,
45 math::AsinOp, math::AbsFOp, math::PowFOp>();
static MLIRContext * getContext(OpFoldResult val)
This class describes a specific conversion target.
Include the generated interface declarations.
void populateConvertMathToEmitCPatterns(RewritePatternSet &patterns, emitc::LanguageTarget languageTarget)
const FrozenRewritePatternSet & patterns
LogicalResult applyPartialConversion(ArrayRef< Operation * > ops, const ConversionTarget &target, const FrozenRewritePatternSet &patterns, ConversionConfig config=ConversionConfig())
Below we define several entry points for operation conversion.