#include "mlir/Dialect/MemRef/IR/ValueBoundsOpInterfaceImpl.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Interfaces/ValueBoundsOpInterface.h"
usingnamespacemlir;
namespace mlir {
namespace memref {
namespace {
template <typename OpTy>
struct AllocOpInterface
: public ValueBoundsOpInterface::ExternalModel<AllocOpInterface<OpTy>,
OpTy> { … };
struct CastOpInterface
: public ValueBoundsOpInterface::ExternalModel<CastOpInterface, CastOp> { … };
struct DimOpInterface
: public ValueBoundsOpInterface::ExternalModel<DimOpInterface, DimOp> { … };
struct GetGlobalOpInterface
: public ValueBoundsOpInterface::ExternalModel<GetGlobalOpInterface,
GetGlobalOp> { … };
struct RankOpInterface
: public ValueBoundsOpInterface::ExternalModel<RankOpInterface, RankOp> { … };
struct SubViewOpInterface
: public ValueBoundsOpInterface::ExternalModel<SubViewOpInterface,
SubViewOp> { … };
}
}
}
void mlir::memref::registerValueBoundsOpInterfaceExternalModels(
DialectRegistry ®istry) { … }