summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorSean Silva <silvas@purdue.edu>2013-01-09 02:11:55 +0000
committerSean Silva <silvas@purdue.edu>2013-01-09 02:11:55 +0000
commitc95fe2804d75249f8073d88c759cc18a802dd127 (patch)
treebc56702a4706bd43afb6d4dc29c9dd00c5d3b96c /llvm
parent89f255e426a790abb95a815a591bf54ca7162bed (diff)
downloadbcm5719-llvm-c95fe2804d75249f8073d88c759cc18a802dd127.tar.gz
bcm5719-llvm-c95fe2804d75249f8073d88c759cc18a802dd127.zip
docs: Bring TableGen syntax a bit closer to reality.
It's not just def's but actually a limited subset of Object's that are allowed inside a multiclass. Spotted by Joel Jones. llvm-svn: 171935
Diffstat (limited to 'llvm')
-rw-r--r--llvm/docs/TableGen/LangRef.rst3
-rw-r--r--llvm/lib/TableGen/TGParser.cpp7
2 files changed, 8 insertions, 2 deletions
diff --git a/llvm/docs/TableGen/LangRef.rst b/llvm/docs/TableGen/LangRef.rst
index 34098a0eb6b..8fdf467ea72 100644
--- a/llvm/docs/TableGen/LangRef.rst
+++ b/llvm/docs/TableGen/LangRef.rst
@@ -370,6 +370,7 @@ applied at the end of parsing the base classes of a record.
.. productionlist::
MultiClass: "multiclass" `TokIdentifier` [`TemplateArgList`]
- : [":" `BaseMultiClassList`] "{" `MultiClassDef`+ "}"
+ : [":" `BaseMultiClassList`] "{" `MultiClassObject`+ "}"
BaseMultiClassList: `MultiClassID` ("," `MultiClassID`)*
MultiClassID: `TokIdentifier`
+ MultiClassObject: `Def` | `Defm` | `Let` | `Foreach`
diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp
index 17f0abc9747..89299d72ea5 100644
--- a/llvm/lib/TableGen/TGParser.cpp
+++ b/llvm/lib/TableGen/TGParser.cpp
@@ -2160,7 +2160,12 @@ bool TGParser::ParseTopLevelLet(MultiClass *CurMultiClass) {
/// ParseMultiClass - Parse a multiclass definition.
///
/// MultiClassInst ::= MULTICLASS ID TemplateArgList?
-/// ':' BaseMultiClassList '{' MultiClassDef+ '}'
+/// ':' BaseMultiClassList '{' MultiClassObject+ '}'
+/// MultiClassObject ::= DefInst
+/// MultiClassObject ::= MultiClassInst
+/// MultiClassObject ::= DefMInst
+/// MultiClassObject ::= LETCommand '{' ObjectList '}'
+/// MultiClassObject ::= LETCommand Object
///
bool TGParser::ParseMultiClass() {
assert(Lex.getCode() == tgtok::MultiClass && "Unexpected token");
OpenPOWER on IntegriCloud