diff options
author | David Greene <greened@obbligato.org> | 2011-10-19 13:02:29 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2011-10-19 13:02:29 +0000 |
commit | 96a9f78c4aa1bc188f3f7ee869bed44cb7a6ff0e (patch) | |
tree | 5baff4a16731b0c00c364b2d662b6ae7bb40bf38 /include/llvm/TableGen | |
parent | d7f8941e77fef20dc147fe102a2024cc5ccef366 (diff) | |
download | llvm-96a9f78c4aa1bc188f3f7ee869bed44cb7a6ff0e.tar.gz llvm-96a9f78c4aa1bc188f3f7ee869bed44cb7a6ff0e.tar.bz2 llvm-96a9f78c4aa1bc188f3f7ee869bed44cb7a6ff0e.tar.xz |
Add Value Accessors
Add accessors to get Record values by Init name. This lets us look up
Record values whose names are not yet fully resolved. More work
toward paste.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142496 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/TableGen')
-rw-r--r-- | include/llvm/TableGen/Record.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/include/llvm/TableGen/Record.h b/include/llvm/TableGen/Record.h index 22e761f44a..4502aa72a7 100644 --- a/include/llvm/TableGen/Record.h +++ b/include/llvm/TableGen/Record.h @@ -1442,6 +1442,9 @@ public: return 0; } + const RecordVal *getValue(Init *Name) const; + RecordVal *getValue(Init *Name); + void addTemplateArg(StringRef Name) { assert(!isTemplateArg(Name) && "Template arg already defined!"); TemplateArgs.push_back(Name); @@ -1452,15 +1455,19 @@ public: Values.push_back(RV); } - void removeValue(StringRef Name) { + void removeValue(Init *Name) { for (unsigned i = 0, e = Values.size(); i != e; ++i) - if (Values[i].getName() == Name) { + if (Values[i].getNameInit() == Name) { Values.erase(Values.begin()+i); return; } assert(0 && "Cannot remove an entry that does not exist!"); } + void removeValue(StringRef Name) { + removeValue(StringInit::get(Name.str())); + } + bool isSubClassOf(const Record *R) const { for (unsigned i = 0, e = SuperClasses.size(); i != e; ++i) if (SuperClasses[i] == R) |