Author: Uday Bondhugula Date: 2020-12-03T02:34:15+05:30 New Revision: b276bf5a572b64a02bd4b067125d4f2c9cf6fb6b
URL: https://github.com/llvm/llvm-project/commit/b276bf5a572b64a02bd4b067125d4f2c9cf6fb6b DIFF: https://github.com/llvm/llvm-project/commit/b276bf5a572b64a02bd4b067125d4f2c9cf6fb6b.diff LOG: [MLIR][NFC] Fix mix up between dialect attribute values and names Clear up documentation on dialect attribute values. Fix/improve ModuleOp verifier error message on dialect prefixed attribute names. Additional discussion is here: https://llvm.discourse.group/t/moduleop-attributes/2325 Differential Revision: https://reviews.llvm.org/D92502 Added: Modified: mlir/docs/LangRef.md mlir/lib/IR/BuiltinDialect.cpp mlir/test/IR/invalid-module-op.mlir Removed: ################################################################################ diff --git a/mlir/docs/LangRef.md b/mlir/docs/LangRef.md index 82272d1b729f..fd78d51afd6d 100644 --- a/mlir/docs/LangRef.md +++ b/mlir/docs/LangRef.md @@ -1369,39 +1369,39 @@ Example: Similarly to operations, dialects may define custom attribute values. The syntactic structure of these values is identical to custom dialect type values, -except that dialect attributes values are distinguished with a leading '#', -while dialect types are distinguished with a leading '!'. +except that dialect attribute values are distinguished with a leading '#', while +dialect types are distinguished with a leading '!'. ``` -dialect-attribute ::= '#' opaque-dialect-item -dialect-attribute ::= '#' pretty-dialect-item +dialect-attribute-value ::= '#' opaque-dialect-item +dialect-attribute-value ::= '#' pretty-dialect-item ``` -Dialect attributes can be specified in a verbose form, e.g. like this: +Dialect attribute values can be specified in a verbose form, e.g. like this: ```mlir -// Complex attribute +// Complex attribute value. #foo<"something<abcd>"> -// Even more complex attribute +// Even more complex attribute value. #foo<"something<a%%123^^^>>>"> ``` -Dialect attributes that are simple enough can use the pretty format, which is a -lighter weight syntax that is equivalent to the above forms: +Dialect attribute values that are simple enough can use the pretty format, which +is a lighter weight syntax that is equivalent to the above forms: ```mlir // Complex attribute #foo.something<abcd> ``` -Sufficiently complex dialect attributes are required to use the verbose form for -generality. For example, the more complex type shown above wouldn't be valid in -the lighter syntax: `#foo.something<a%%123^^^>>>` because it contains characters -that are not allowed in the lighter syntax, as well as unbalanced `<>` -characters. +Sufficiently complex dialect attribute values are required to use the verbose +form for generality. For example, the more complex type shown above would not be +valid in the lighter syntax: `#foo.something<a%%123^^^>>>` because it contains +characters that are not allowed in the lighter syntax, as well as unbalanced +`<>` characters. -See [here](Tutorials/DefiningAttributesAndTypes.md) to learn how to define dialect +See [here](Tutorials/DefiningAttributesAndTypes.md) on how to define dialect attribute values. ### Standard Attribute Values diff --git a/mlir/lib/IR/BuiltinDialect.cpp b/mlir/lib/IR/BuiltinDialect.cpp index 5c0a0380f9af..8f872ac7c9ab 100644 --- a/mlir/lib/IR/BuiltinDialect.cpp +++ b/mlir/lib/IR/BuiltinDialect.cpp @@ -228,9 +228,9 @@ static LogicalResult verify(ModuleOp op) { ArrayRef<StringRef>{mlir::SymbolTable::getSymbolAttrName(), mlir::SymbolTable::getVisibilityAttrName()}, attr.first.strref())) - return op.emitOpError() - << "can only contain dialect-specific attributes, found: '" - << attr.first << "'"; + return op.emitOpError() << "can only contain attributes with " + "dialect-prefixed names, found: '" + << attr.first << "'"; } return success(); diff --git a/mlir/test/IR/invalid-module-op.mlir b/mlir/test/IR/invalid-module-op.mlir index 73fe188209d1..520821a7b0b4 100644 --- a/mlir/test/IR/invalid-module-op.mlir +++ b/mlir/test/IR/invalid-module-op.mlir @@ -44,7 +44,7 @@ func @module_op() { // ----- -// expected-error@+1 {{can only contain dialect-specific attributes}} +// expected-error@+1 {{can only contain attributes with dialect-prefixed names}} module attributes {attr} { } _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits