docs: Bring TableGen syntax a bit closer to reality.
authorSean Silva <silvas@purdue.edu>
Wed, 9 Jan 2013 02:11:55 +0000 (02:11 +0000)
committerSean Silva <silvas@purdue.edu>
Wed, 9 Jan 2013 02:11:55 +0000 (02:11 +0000)
It's not just def's but actually a limited subset of Object's that are
allowed inside a multiclass.

Spotted by Joel Jones.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171935 91177308-0d34-0410-b5e6-96231b3b80d8

docs/TableGen/LangRef.rst
lib/TableGen/TGParser.cpp

index 34098a0eb6bb273500f877dfe7c4fd9f10c6c352..8fdf467ea7271709393d57d6f662d8c39679f7c2 100644 (file)
@@ -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`
index 17f0abc974771c9bdd45de85ad4d7fd5db1f0664..89299d72ea5b184285595f1d93a713064830393e 100644 (file)
@@ -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");