11#include "mlir/IR/DialectImplementation.h"
13#include "mlir/IR/Builders.h"
14#include "mlir/Transforms/InliningUtils.h"
15#include "llvm/ADT/TypeSwitch.h"
17#include "Dialect/EnzymeEnums.cpp.inc"
18#include "Dialect/EnzymeOpsDialect.cpp.inc"
21#include "Dialect/EnzymeOps.cpp.inc"
22#define GET_TYPEDEF_CLASSES
23#include "Dialect/EnzymeOpsTypes.cpp.inc"
34struct EnzymeDialectInlinerInterface :
public DialectInlinerInterface {
35 using DialectInlinerInterface::DialectInlinerInterface;
37 bool isLegalToInline(Operation * , Operation * ,
42 bool isLegalToInline(Region * , Region * ,
44 IRMapping & )
const final {
48 bool isLegalToInline(Operation * , Region * ,
50 IRMapping & )
const final {
56void EnzymeDialect::initialize() {
57 addInterfaces<EnzymeDialectInlinerInterface>();
60#include "Dialect/EnzymeOps.cpp.inc"
63#define GET_ATTRDEF_LIST
64#include "Dialect/EnzymeAttributes.cpp.inc"
67#define GET_TYPEDEF_LIST
68#include "Dialect/EnzymeOpsTypes.cpp.inc"
72#define GET_ATTRDEF_CLASSES
73#include "Dialect/EnzymeAttributes.cpp.inc"