19#include "mlir/Dialect/MLProgram/IR/MLProgramOpsDialect.cpp.inc"
20#define GET_ATTRDEF_CLASSES
21#include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc"
22#define GET_TYPEDEF_CLASSES
23#include "mlir/Dialect/MLProgram/IR/MLProgramTypes.cpp.inc"
27struct MLProgramInlinerInterface :
public DialectInlinerInterface {
28 using DialectInlinerInterface::DialectInlinerInterface;
38struct MLProgramOpAsmDialectInterface :
public OpAsmDialectInterface {
39 using OpAsmDialectInterface::OpAsmDialectInterface;
43void ml_program::MLProgramDialect::initialize() {
44#define GET_ATTRDEF_LIST
46#include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc"
49#define GET_TYPEDEF_LIST
51#include "mlir/Dialect/MLProgram/IR/MLProgramTypes.cpp.inc"
56#include "mlir/Dialect/MLProgram/IR/MLProgramOps.cpp.inc"
59 addInterfaces<MLProgramInlinerInterface, MLProgramOpAsmDialectInterface>();
static bool isLegalToInline(InlinerInterface &interface, Region *src, Region *insertRegion, bool shouldCloneInlinedRegion, IRMapping &valueMapping)
Utility to check that all of the operations within 'src' can be inlined.
This is a utility class for mapping one set of IR entities to another.
Operation is the basic unit of execution within MLIR.
This class contains a list of basic blocks and a link to the parent operation it is attached to.
Include the generated interface declarations.