Lines Matching defs:parser
152 DialectAsmParser &parser);
155 DialectAsmParser &parser);
159 DialectAsmParser &parser);
162 DialectAsmParser &parser) {
164 SMLoc typeLoc = parser.getCurrentLocation();
165 if (parser.parseType(type))
175 parser.emitError(typeLoc, "cannot use 'bf16' to compose SPIR-V types");
180 parser.emitError(typeLoc,
187 parser.emitError(typeLoc, "only 1-D vector allowed but found ") << t;
191 parser.emitError(
197 parser.emitError(typeLoc, "cannot use ")
206 DialectAsmParser &parser) {
208 SMLoc typeLoc = parser.getCurrentLocation();
209 if (parser.parseType(type))
214 parser.emitError(typeLoc, "only 1-D vector allowed but found ") << t;
218 parser.emitError(typeLoc,
226 parser.emitError(typeLoc, "matrix columns' elements must be of "
232 parser.emitError(typeLoc, "matrix must be composed using vector "
242 DialectAsmParser &parser) {
244 SMLoc typeLoc = parser.getCurrentLocation();
245 if (parser.parseType(type))
249 parser.emitError(typeLoc,
262 DialectAsmParser &parser,
264 if (failed(parser.parseOptionalComma())) {
269 if (parser.parseKeyword("stride") || parser.parseEqual())
272 SMLoc strideLoc = parser.getCurrentLocation();
273 std::optional<unsigned> optStride = parseAndVerify<unsigned>(dialect, parser);
278 parser.emitError(strideLoc, "ArrayStride must be greater than zero");
292 DialectAsmParser &parser) {
293 if (parser.parseLess())
297 SMLoc countLoc = parser.getCurrentLocation();
298 if (parser.parseDimensionList(countDims, /*allowDynamic=*/false))
301 parser.emitError(countLoc,
310 parser.emitError(countLoc, "expected array length greater than 0");
314 Type elementType = parseAndVerifyType(dialect, parser);
319 if (failed(parseOptionalArrayStride(dialect, parser, stride)))
322 if (parser.parseGreater())
331 DialectAsmParser &parser) {
332 if (parser.parseLess())
336 SMLoc countLoc = parser.getCurrentLocation();
337 if (parser.parseDimensionList(dims, /*allowDynamic=*/false))
341 parser.emitError(countLoc, "expected row and column count");
345 auto elementTy = parseAndVerifyType(dialect, parser);
350 if (parser.parseComma() ||
351 spirv::parseEnumKeywordAttr(scope, parser, "scope <id>"))
355 if (parser.parseComma() ||
356 spirv::parseEnumKeywordAttr(use, parser, "use <id>"))
359 if (parser.parseGreater())
375 DialectAsmParser &parser) {
376 if (parser.parseLess())
379 auto pointeeType = parseAndVerifyType(dialect, parser);
384 SMLoc storageClassLoc = parser.getCurrentLocation();
385 if (parser.parseComma() || parser.parseKeyword(&storageClassSpec))
390 parser.emitError(storageClassLoc, "unknown storage class: ")
394 if (parser.parseGreater())
402 DialectAsmParser &parser) {
403 if (parser.parseLess())
406 Type elementType = parseAndVerifyType(dialect, parser);
411 if (failed(parseOptionalArrayStride(dialect, parser, stride)))
414 if (parser.parseGreater())
421 DialectAsmParser &parser) {
422 if (parser.parseLess())
426 SMLoc countLoc = parser.getCurrentLocation();
427 if (parser.parseDimensionList(countDims, /*allowDynamic=*/false))
430 parser.emitError(countLoc, "expected single unsigned "
438 parser.emitError(countLoc, "matrix is expected to have 2, 3, or 4 "
443 Type columnType = parseAndVerifyMatrixType(dialect, parser);
447 if (parser.parseGreater())
457 DialectAsmParser &parser) {
459 SMLoc enumLoc = parser.getCurrentLocation();
460 if (parser.parseKeyword(&enumSpec)) {
466 parser.emitError(enumLoc, "unknown attribute: '") << enumSpec << "'";
472 DialectAsmParser &parser) {
474 auto ty = parseAndVerifyType(dialect, parser);
482 DialectAsmParser &parser) {
484 if (parser.parseInteger(offsetVal))
491 DialectAsmParser &parser) {
492 return parseAndVerifyInteger<unsigned>(dialect, parser);
503 operator()(SPIRVDialect const &dialect, DialectAsmParser &parser) const {
504 auto parseVal = parseAndVerify<ParseType>(dialect, parser);
509 if (numArgs != 0 && failed(parser.parseComma()))
511 auto remainingValues = ParseCommaSeparatedList<Args...>{}(dialect, parser);
524 operator()(SPIRVDialect const &dialect, DialectAsmParser &parser) const {
525 if (auto value = parseAndVerify<ParseType>(dialect, parser))
548 DialectAsmParser &parser) {
549 if (parser.parseLess())
555 ImageFormat>{}(dialect, parser);
559 if (parser.parseGreater())
566 DialectAsmParser &parser) {
567 if (parser.parseLess())
570 Type parsedType = parseAndVerifySampledImageType(dialect, parser);
574 if (parser.parseGreater())
581 SPIRVDialect const &dialect, DialectAsmParser &parser,
587 SMLoc offsetLoc = parser.getCurrentLocation();
589 OptionalParseResult offsetParseResult = parser.parseOptionalInteger(offset);
595 return parser.emitError(offsetLoc,
603 if (succeeded(parser.parseOptionalRSquare()))
607 if (offsetParseResult.has_value() && parser.parseComma())
612 auto memberDecoration = parseAndVerify<spirv::Decoration>(dialect, parser);
617 if (succeeded(parser.parseOptionalEqual())) {
619 parseAndVerifyInteger<uint32_t>(dialect, parser);
634 if (failed(parser.parseCommaSeparatedList(parseDecorations)) ||
635 failed(parser.parseRSquare()))
648 DialectAsmParser &parser) {
651 if (parser.parseLess())
658 if (succeeded(parser.parseOptionalKeyword(&identifier))) {
662 cyclicParse = parser.tryStartCyclicParse(structType);
663 if (succeeded(parser.parseOptionalGreater())) {
665 parser.emitError(
666 parser.getNameLoc(),
675 if (failed(parser.parseComma()))
679 parser.emitError(parser.getNameLoc(),
685 if (failed(parser.parseLParen()))
688 if (succeeded(parser.parseOptionalRParen()) &&
689 succeeded(parser.parseOptionalGreater())) {
704 if (parser.parseType(memberType))
708 if (succeeded(parser.parseOptionalLSquare()))
709 if (parseStructMemberDecorations(dialect, parser, memberTypes, offsetInfo,
712 } while (succeeded(parser.parseOptionalComma()));
715 parser.emitError(parser.getNameLoc(),
720 if (failed(parser.parseRParen()) || failed(parser.parseGreater()))
740 Type SPIRVDialect::parseType(DialectAsmParser &parser) const {
742 if (parser.parseKeyword(&keyword))
746 return parseArrayType(*this, parser);
748 return parseCooperativeMatrixType(*this, parser);
750 return parseImageType(*this, parser);
752 return parsePointerType(*this, parser);
754 return parseRuntimeArrayType(*this, parser);
756 return parseSampledImageType(*this, parser);
758 return parseStructType(*this, parser);
760 return parseMatrixType(*this, parser);
761 parser.emitError(parser.getNameLoc(), "unknown SPIR-V type: ") << keyword;