12 #include "llvm/ADT/TypeSwitch.h"
21 #include "mlir/Dialect/MLProgram/IR/MLProgramOpsDialect.cpp.inc"
22 #define GET_ATTRDEF_CLASSES
23 #include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc"
24 #define GET_TYPEDEF_CLASSES
25 #include "mlir/Dialect/MLProgram/IR/MLProgramTypes.cpp.inc"
45 void ml_program::MLProgramDialect::initialize() {
46 #define GET_ATTRDEF_LIST
48 #include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc"
51 #define GET_TYPEDEF_LIST
53 #include "mlir/Dialect/MLProgram/IR/MLProgramTypes.cpp.inc"
58 #include "mlir/Dialect/MLProgram/IR/MLProgramOps.cpp.inc"
61 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 the interface that must be implemented by the dialects of operations to be inlined.
DialectInlinerInterface(Dialect *dialect)
This is a utility class for mapping one set of IR entities to another.
OpAsmDialectInterface(Dialect *dialect)
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.