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"
45void 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.