summaryrefslogtreecommitdiff
path: root/lib/TableGen
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2014-01-02 19:35:33 +0000
committerHal Finkel <hfinkel@anl.gov>2014-01-02 19:35:33 +0000
commit2370e55a535331c849371ed52a3f62b8c5f315a3 (patch)
tree2abb28819fd5330245ed51b2daa7a0841e09d435 /lib/TableGen
parentfcbe3d950148f01ed8ed47afda78a13f81a8010b (diff)
downloadllvm-2370e55a535331c849371ed52a3f62b8c5f315a3.tar.gz
llvm-2370e55a535331c849371ed52a3f62b8c5f315a3.tar.bz2
llvm-2370e55a535331c849371ed52a3f62b8c5f315a3.tar.xz
[TableGen] Use the same anonymous name as the prefix on all multiclass defs
TableGen had been generating a different name for an anonymous multiclass's NAME for every def in the multiclass. This had an unfortunate side effect: it was impossible to reference one def within the multiclass from another (in the parameter list, for example). By making sure we only generate an anonymous name once per multiclass (which, as it turns out, requires only changing the name parameter to reference type), we can now concatenate NAME within the multiclass with a def name in order to generate a reference to that def. This does not matter so much, in and of itself, but is necessary for a follow-up commit that will fix variable capturing in implicit anonymous multiclass defs (and that is important). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198340 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/TableGen')
-rw-r--r--lib/TableGen/TGParser.cpp2
-rw-r--r--lib/TableGen/TGParser.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/TableGen/TGParser.cpp b/lib/TableGen/TGParser.cpp
index 38ab71184a..be5a524251 100644
--- a/lib/TableGen/TGParser.cpp
+++ b/lib/TableGen/TGParser.cpp
@@ -2269,7 +2269,7 @@ bool TGParser::ParseMultiClass() {
Record *TGParser::
InstantiateMulticlassDef(MultiClass &MC,
Record *DefProto,
- Init *DefmPrefix,
+ Init *&DefmPrefix,
SMRange DefmPrefixRange) {
// We need to preserve DefProto so it can be reused for later
// instantiations, so create a new Record to inherit from it.
diff --git a/lib/TableGen/TGParser.h b/lib/TableGen/TGParser.h
index a575345810..e5559a33e3 100644
--- a/lib/TableGen/TGParser.h
+++ b/lib/TableGen/TGParser.h
@@ -137,7 +137,7 @@ private: // Parser methods.
bool ParseMultiClass();
Record *InstantiateMulticlassDef(MultiClass &MC,
Record *DefProto,
- Init *DefmPrefix,
+ Init *&DefmPrefix,
SMRange DefmPrefixRange);
bool ResolveMulticlassDefArgs(MultiClass &MC,
Record *DefProto,