14 #ifndef MLIR_DIALECT_STANDARDOPS_OPS_H 15 #define MLIR_DIALECT_STANDARDOPS_OPS_H 24 #include "mlir/Dialect/StandardOps/OpsEnums.h.inc" 74 #define GET_OP_CLASSES 75 #include "mlir/Dialect/StandardOps/Ops.h.inc" 84 using ConstantOp::ConstantOp;
102 using ConstantOp::ConstantOp;
112 int64_t
getValue() {
return getAttrOfType<IntegerAttr>(
"value").getInt(); }
124 using ConstantOp::ConstantOp;
129 int64_t
getValue() {
return getAttrOfType<IntegerAttr>(
"value").getInt(); }
172 :
public Op<DmaStartOp, OpTrait::VariadicOperands, OpTrait::ZeroResult> {
180 Value elementsPerStride =
nullptr);
186 return getSrcMemRef()->getType().cast<
MemRefType>().getRank();
190 return {getOperation()->operand_begin() + 1,
191 getOperation()->operand_begin() + 1 + getSrcMemRefRank()};
198 return getDstMemRef()->getType().cast<
MemRefType>().getRank();
201 return getSrcMemRef()->getType().cast<
MemRefType>().getMemorySpace();
204 return getDstMemRef()->getType().cast<
MemRefType>().getMemorySpace();
209 return {getOperation()->operand_begin() + 1 + getSrcMemRefRank() + 1,
210 getOperation()->operand_begin() + 1 + getSrcMemRefRank() + 1 +
216 return getOperand(1 + getSrcMemRefRank() + 1 + getDstMemRefRank());
221 return getOperand(1 + getSrcMemRefRank() + 1 + getDstMemRefRank() + 1);
225 return getTagMemRef()->getType().cast<
MemRefType>().getRank();
230 unsigned tagIndexStartPos =
231 1 + getSrcMemRefRank() + 1 + getDstMemRefRank() + 1 + 1;
232 return {getOperation()->operand_begin() + tagIndexStartPos,
233 getOperation()->operand_begin() + tagIndexStartPos +
239 return (getSrcMemorySpace() < getDstMemorySpace());
245 return (getDstMemorySpace() < getSrcMemorySpace());
252 assert(isSrcMemorySpaceFaster() || isDestMemorySpaceFaster());
253 return isSrcMemorySpaceFaster() ? 0 : getSrcMemRefRank() + 1;
265 return getNumOperands() != 1 + getSrcMemRefRank() + 1 + getDstMemRefRank() +
266 1 + 1 + getTagMemRefRank();
272 return getOperand(getNumOperands() - 1 - 1);
278 return getOperand(getNumOperands() - 1);
296 :
public Op<DmaWaitOp, OpTrait::VariadicOperands, OpTrait::ZeroResult> {
310 return {getOperation()->operand_begin() + 1,
311 getOperation()->operand_begin() + 1 + getTagMemRefRank()};
316 return getTagMemRef()->getType().cast<
MemRefType>().getRank();
342 #endif // MLIR_DIALECT_STANDARDOPS_OPS_H operand_range::iterator operand_iterator
Definition: Operation.h:214
Definition: InferTypeOpInterface.cpp:20
unsigned getSrcMemRefRank()
Definition: Ops.h:185
unsigned getFasterMemPos()
Definition: Ops.h:251
Definition: Operation.h:27
ParseResult parseDimAndSymbolList(OpAsmParser &parser, SmallVectorImpl< Value > &operands, unsigned &numDims)
Parses dimension and symbol list and returns true if parsing failed.
Definition: Ops.cpp:177
Definition: Attributes.h:129
operand_range getDstIndices()
Definition: Ops.h:208
static StringRef getDialectNamespace()
Definition: Ops.h:35
LogicalResult verify(Operation *op)
Definition: Verifier.cpp:264
operand_range getTagIndices()
Definition: Ops.h:309
Definition: StandardTypes.h:113
Value getDstMemRef()
Definition: Ops.h:195
void printDimAndSymbolList(Operation::operand_iterator begin, Operation::operand_iterator end, unsigned numDims, OpAsmPrinter &p)
Prints dimension and symbol list.
Definition: Ops.cpp:165
Definition: OpImplementation.h:214
StandardOpsDialect(MLIRContext *context)
Definition: Ops.cpp:148
Definition: Location.h:52
Definition: LogicalResult.h:18
CmpFPredicate
Definition: Ops.h:46
bool isStrided(MemRefType t)
Return true if the layout for t is compatible with strided semantics.
Definition: StandardTypes.cpp:734
unsigned getSrcMemorySpace()
Definition: Ops.h:200
int64_t getValue()
Definition: Ops.h:112
unsigned getDstMemorySpace()
Definition: Ops.h:203
int64_t getValue()
Definition: Ops.h:129
Value getNumElements()
Definition: Ops.h:215
Value getStride()
Definition: Ops.h:269
Definition: Attributes.h:53
Value getTagMemRef()
Definition: Ops.h:306
Definition: StandardTypes.h:390
Definition: OpImplementation.h:32
Definition: OperationSupport.h:261
operand_range getTagIndices()
Definition: Ops.h:229
bool isDestMemorySpaceFaster()
Returns true if this is a DMA from a faster memory space to a slower one.
Definition: Ops.h:238
Op()
This is a public constructor. Any op can be initialized to null.
Definition: OpDefinition.h:1029
Value getTagMemRef()
Definition: Ops.h:220
operand_range getSrcIndices()
Definition: Ops.h:189
unsigned getDstMemRefRank()
Definition: Ops.h:197
bool isSrcMemorySpaceFaster()
Returns true if this is a DMA from a slower memory space to a faster one.
Definition: Ops.h:243
Definition: Builders.h:47
static StringRef getOperationName()
Definition: Ops.h:303
Value getNumElementsPerStride()
Definition: Ops.h:275
APFloat getValue()
Definition: Ops.h:90
Definition: MLIRContext.h:34
void print(OpAsmPrinter &p, AffineIfOp op)
Definition: AffineOps.cpp:1671
This class implements the operand iterators for the Operation class.
Definition: OperationSupport.h:559
Definition: OpDefinition.h:949
static StringRef getOperationName()
Definition: Ops.h:256
unsigned getTagMemRefRank()
Definition: Ops.h:315
unsigned getTagMemRefRank()
Definition: Ops.h:224
mlir::edsc::intrinsics::ValueBuilder< RangeOp > range
Definition: Intrinsics.h:23
raw_ostream & operator<<(raw_ostream &os, SubViewOp::Range &range)
Definition: Ops.cpp:2759
Operation * materializeConstant(OpBuilder &builder, Attribute value, Type type, Location loc) override
Definition: Ops.cpp:159
Definition: OpDefinition.h:36
bool isStrided()
Definition: Ops.h:264
Definition: LinalgTypes.h:20
Definition: Builders.h:158
Definition: OperationSupport.h:640
Value getSrcMemRef()
Definition: Ops.h:183
Value getNumElements()
Definition: Ops.h:320