11#include "mlir/IR/DialectImplementation.h"
13#include "mlir/Dialect/Affine/IR/AffineOps.h"
14#include "mlir/Dialect/MemRef/IR/MemRef.h"
15#include "mlir/IR/Builders.h"
16#include "mlir/Transforms/InliningUtils.h"
17#include "llvm/ADT/TypeSwitch.h"
19#include "Dialect/EnzymeEnums.cpp.inc"
20#include "Dialect/EnzymeOpsDialect.cpp.inc"
23#include "Dialect/EnzymeOps.cpp.inc"
24#define GET_TYPEDEF_CLASSES
25#include "Dialect/EnzymeOpsTypes.cpp.inc"
36struct EnzymeDialectInlinerInterface :
public DialectInlinerInterface {
37 using DialectInlinerInterface::DialectInlinerInterface;
39 bool isLegalToInline(Operation * , Operation * ,
44 bool isLegalToInline(Region * , Region * ,
46 IRMapping & )
const final {
50 bool isLegalToInline(Operation * , Region * ,
52 IRMapping & )
const final {
58void EnzymeDialect::initialize() {
59 addInterfaces<EnzymeDialectInlinerInterface>();
62#include "Dialect/EnzymeOps.cpp.inc"
65#define GET_ATTRDEF_LIST
66#include "Dialect/EnzymeAttributes.cpp.inc"
69#define GET_TYPEDEF_LIST
70#include "Dialect/EnzymeOpsTypes.cpp.inc"
74#define GET_ATTRDEF_CLASSES
75#include "Dialect/EnzymeAttributes.cpp.inc"