diff options
author | David Greene <greened@obbligato.org> | 2011-10-19 13:04:13 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2011-10-19 13:04:13 +0000 |
commit | e338565757bfcfe9d762751c976684f66954fb45 (patch) | |
tree | 53efedeb81f0056894aa09af2c241dd0cf291d19 /include | |
parent | 22dde7e655b76f75bf11e86129410a7dcbfac3ba (diff) | |
download | external_llvm-e338565757bfcfe9d762751c976684f66954fb45.zip external_llvm-e338565757bfcfe9d762751c976684f66954fb45.tar.gz external_llvm-e338565757bfcfe9d762751c976684f66954fb45.tar.bz2 |
Add NAME Member
Add a Value named "NAME" to each Record. This will be set to the def or defm
name when instantiating multiclasses. This will replace the #NAME# processing
hack once paste functionality is in place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142518 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/TableGen/Record.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/llvm/TableGen/Record.h b/include/llvm/TableGen/Record.h index f7a48c4..0cf1725 100644 --- a/include/llvm/TableGen/Record.h +++ b/include/llvm/TableGen/Record.h @@ -1473,6 +1473,13 @@ public: void addValue(const RecordVal &RV) { assert(getValue(RV.getName()) == 0 && "Value already added!"); Values.push_back(RV); + if (Values.size() > 1) + // Keep NAME at the end of the list. It makes record dumps a + // bit prettier and allows TableGen tests to be written more + // naturally. Tests can use CHECK-NEXT to look for Record + // fields they expect to see after a def. They can't do that if + // NAME is the first Record field. + std::swap(Values[Values.size() - 2], Values[Values.size() - 1]); } void removeValue(Init *Name) { |