From b2ca3303500effdd5770511ce71b96b62e2f3d4f Mon Sep 17 00:00:00 2001 From: Farel Lukas Date: Fri, 12 Sep 2025 16:51:45 -0400 Subject: [PATCH] added parseAndGenerate --- mlir/lib/Dialect/Rock/IR/RockDialect.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mlir/lib/Dialect/Rock/IR/RockDialect.cpp b/mlir/lib/Dialect/Rock/IR/RockDialect.cpp index 6cccdaed683f..56203be64100 100644 --- a/mlir/lib/Dialect/Rock/IR/RockDialect.cpp +++ b/mlir/lib/Dialect/Rock/IR/RockDialect.cpp @@ -182,6 +182,21 @@ ArrayAttr noTransformsArray(Builder &b, size_t n) { //===--------------------------------------------------------- // TransformAttr //===--------------------------------------------------------- +template +static ParseResult +parseAndGather(mlir::AsmParser &parser, AsmParser::Delimiter delim, + SmallVectorImpl &ret, + llvm::function_ref getElement) { + return parser.parseCommaSeparatedList(delim, [&]() -> ParseResult { + T out; + ParseResult res = getElement(out); + if (res.succeeded()) { + ret.push_back(out); + } + return res; + }); +} + mlir::Attribute TransformAttr::parse(mlir::AsmParser &parser, mlir::Type type) { llvm::SMLoc startLoc = parser.getCurrentLocation(); if (parser.parseLess()) {