26#include "mlir/Dialect/AMDGPU/IR/AMDGPUDialect.cpp.inc"
29struct AMDGPUInlinerInterface final : DialectInlinerInterface {
30 using DialectInlinerInterface::DialectInlinerInterface;
31 bool isLegalToInline(Operation *, Region *,
bool, IRMapping &)
const final {
37void AMDGPUDialect::initialize() {
40#include "mlir/Dialect/AMDGPU/IR/AMDGPU.cpp.inc"
44 addInterfaces<AMDGPUInlinerInterface>();
45 declarePromisedInterfaces<
46 memref::IndexedAccessOpInterface, TransposeLoadOp, GlobalTransposeLoadOp,
47 MakeDmaDescriptorOp, MakeGatherDmaDescriptorOp, DsBarrierInitOp,
48 DsBarrierPollStateOp, DsAsyncBarrierArriveOp, DsBarrierArriveOp>();
49 declarePromisedInterfaces<memref::IndexedMemCopyOpInterface, GatherToLDSOp,
50 GlobalLoadAsyncToLDSOp, MakeDmaBaseOp,
51 MakeGatherDmaBaseOp>();
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.
Include the generated interface declarations.