Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mlir/include/mlir/IR/OpImplementation.h30
-rw-r--r--mlir/lib/AsmParser/AsmParserImpl.h4
2 files changed, 25 insertions, 9 deletions
diff --git a/mlir/include/mlir/IR/OpImplementation.h b/mlir/include/mlir/IR/OpImplementation.h
index 524c72d239cf..0c74af3508ae 100644
--- a/mlir/include/mlir/IR/OpImplementation.h
+++ b/mlir/include/mlir/IR/OpImplementation.h
@@ -1010,20 +1010,38 @@ public:
//===--------------------------------------------------------------------===//
/// Parse an @-identifier and store it (without the '@' symbol) in a string
+ /// attribute.
+ ParseResult parseSymbolName(StringAttr &result) {
+ if (failed(parseOptionalSymbolName(result)))
+ return emitError(getCurrentLocation())
+ << "expected valid '@'-identifier for symbol name";
+ return success();
+ }
+
+ /// Parse an @-identifier and store it (without the '@' symbol) in a string
/// attribute named 'attrName'.
ParseResult parseSymbolName(StringAttr &result, StringRef attrName,
NamedAttrList &attrs) {
- if (failed(parseOptionalSymbolName(result, attrName, attrs)))
- return emitError(getCurrentLocation())
- << "expected valid '@'-identifier for symbol name";
+ if (parseSymbolName(result))
+ return failure();
+ attrs.append(attrName, result);
return success();
}
/// Parse an optional @-identifier and store it (without the '@' symbol) in a
+ /// string attribute.
+ virtual ParseResult parseOptionalSymbolName(StringAttr &result) = 0;
+
+ /// Parse an optional @-identifier and store it (without the '@' symbol) in a
/// string attribute named 'attrName'.
- virtual ParseResult parseOptionalSymbolName(StringAttr &result,
- StringRef attrName,
- NamedAttrList &attrs) = 0;
+ ParseResult parseOptionalSymbolName(StringAttr &result, StringRef attrName,
+ NamedAttrList &attrs) {
+ if (succeeded(parseOptionalSymbolName(result))) {
+ attrs.append(attrName, result);
+ return success();
+ }
+ return failure();
+ }
//===--------------------------------------------------------------------===//
// Resource Parsing
diff --git a/mlir/lib/AsmParser/AsmParserImpl.h b/mlir/lib/AsmParser/AsmParserImpl.h
index bb0fe5c56df0..d7e8a55089d3 100644
--- a/mlir/lib/AsmParser/AsmParserImpl.h
+++ b/mlir/lib/AsmParser/AsmParserImpl.h
@@ -439,14 +439,12 @@ public:
/// Parse an optional @-identifier and store it (without the '@' symbol) in a
/// string attribute named 'attrName'.
- ParseResult parseOptionalSymbolName(StringAttr &result, StringRef attrName,
- NamedAttrList &attrs) override {
+ ParseResult parseOptionalSymbolName(StringAttr &result) override {
Token atToken = parser.getToken();
if (atToken.isNot(Token::at_identifier))
return failure();
result = getBuilder().getStringAttr(atToken.getSymbolReference());
- attrs.push_back(getBuilder().getNamedAttr(attrName, result));
parser.consumeToken();
// If we are populating the assembly parser state, record this as a symbol