30 if (failed(getParentRes)) {
34 if (!getParentRes->hasParamNamed(this->getConstNameAttr())) {
35 return this->emitOpError()
37 .attachNote(getParentRes->getLoc())
38 .append(
"must reference a parameter of this struct");
53 if (map.getNumResults() != 1) {
54 return emitOpError(
"must produce exactly one value");
58 unsigned mapDims = map.getNumDims();
59 if (getNumOperands() != mapDims + map.getNumSymbols()) {
60 return emitOpError(
"operand count must equal affine map dimension+symbol count");
62 return emitOpError(
"dimension operand count must equal affine map dimension count");
74 return emitOpError() <<
"input type " <<
getInput().getType() <<
" and output type "
75 <<
getResult().getType() <<
" are not unifiable";
::mlir::LogicalResult verify()
::mlir::AffineMap getMap()
::mlir::IntegerAttr getNumDimsAttr()
::mlir::FlatSymbolRefAttr getConstNameAttr()
::mlir::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
::mlir::LogicalResult verify()
::mlir::Value getResult()
FailureOr< StructDefOp > verifyInStruct(Operation *op)
LogicalResult verifyTypeResolution(SymbolTableCollection &tables, Operation *origin, Type ty)
bool typesUnify(Type lhs, Type rhs, ArrayRef< StringRef > rhsReversePrefix, UnificationMap *unifications)