17#include "mlir/CAPI/Registration.h"
22 xilinx::aievec::AIEVecDialect)
30 return llvm::isa<xilinx::AIE::AIEObjectFifoType>(unwrap(type));
34 return wrap(xilinx::AIE::AIEObjectFifoType::get(
35 llvm::cast<mlir::MemRefType>(unwrap(type))));
43 return llvm::isa<xilinx::AIEX::BlockFloatType>(unwrap(type));
47 return wrap(xilinx::AIEX::BlockFloatType::get(unwrap(ctx), blockType));
55 mlir::Type t = unwrap(type);
58 if (!llvm::isa<mlir::IntegerType, mlir::FloatType, mlir::IndexType,
59 mlir::DataLayoutTypeInterface>(t))
61 return mlir::DataLayout().getTypeSizeInBits(t);
69 return llvm::isa<xilinx::AIE::TileLike>(unwrap(op));
73 auto tileLike = llvm::dyn_cast<xilinx::AIE::TileLike>(unwrap(op));
74 return tileLike && tileLike.isCoreTile();
78 auto tileLike = llvm::dyn_cast<xilinx::AIE::TileLike>(unwrap(op));
79 return tileLike && tileLike.isMemTile();
83 auto tileLike = llvm::dyn_cast<xilinx::AIE::TileLike>(unwrap(op));
84 return tileLike && tileLike.isShimNOCTile();
88 auto tileLike = llvm::dyn_cast<xilinx::AIE::TileLike>(unwrap(op));
89 return tileLike && tileLike.isShimPLTile();
93 auto tileLike = llvm::dyn_cast<xilinx::AIE::TileLike>(unwrap(op));
94 return tileLike && tileLike.isShimNOCorPLTile();
102 return llvm::isa<xilinx::AIE::TraceBufferAttr>(unwrap(attr));
106 return llvm::cast<xilinx::AIE::TraceBufferAttr>(unwrap(attr)).getArgIndex();
110 return llvm::cast<xilinx::AIE::TraceBufferAttr>(unwrap(attr)).getOffset();
114 return llvm::cast<xilinx::AIE::TraceBufferAttr>(unwrap(attr)).getSize();
118 return llvm::cast<xilinx::AIE::TraceBufferAttr>(unwrap(attr)).getDedicated();
122 return llvm::isa<xilinx::AIE::TraceSliceAttr>(unwrap(attr));
127 llvm::cast<xilinx::AIE::TraceSliceAttr>(unwrap(attr)).getDevice());
132 llvm::cast<xilinx::AIE::TraceSliceAttr>(unwrap(attr)).getSequence());
136 return llvm::cast<xilinx::AIE::TraceSliceAttr>(unwrap(attr)).getOffset();
140 return llvm::cast<xilinx::AIE::TraceSliceAttr>(unwrap(attr)).getSize();
bool aieTileLikeIsShimNOCorPLTile(MlirOperation op)
MlirStringRef aieTraceSliceGetDevice(MlirAttribute attr)
bool aieTileLikeIsShimPLTile(MlirOperation op)
uint32_t aieTraceBufferGetOffset(MlirAttribute attr)
bool aieAttrIsTraceBuffer(MlirAttribute attr)
bool aieTraceBufferGetDedicated(MlirAttribute attr)
MlirType aieBlockFloatTypeGet(MlirContext ctx, const std::string &blockType)
uint64_t aieTypeGetSizeInBits(MlirType type)
Size of type in bits under the default data layout, or 0 for a type that does not describe one.
bool aieOpImplementsTileLike(MlirOperation op)
bool aieTileLikeIsMemTile(MlirOperation op)
MlirStringRef aieTraceSliceGetSequence(MlirAttribute attr)
bool aieTileLikeIsShimNOCTile(MlirOperation op)
uint32_t aieTraceSliceGetSize(MlirAttribute attr)
uint32_t aieTraceSliceGetOffset(MlirAttribute attr)
uint32_t aieTraceBufferGetSize(MlirAttribute attr)
bool aieTileLikeIsCoreTile(MlirOperation op)
uint32_t aieTraceBufferGetArgIndex(MlirAttribute attr)
bool aieAttrIsTraceSlice(MlirAttribute attr)
bool aieTypeIsBlockFloatType(MlirType type)
MlirType aieObjectFifoTypeGet(MlirType type)
MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(AIEVec, aievec, xilinx::aievec::AIEVecDialect) bool aieTypeIsObjectFifoType(MlirType type)
MLIR_CAPI_EXPORTED bool aieTypeIsObjectFifoType(MlirType type)