summaryrefslogtreecommitdiff
path: root/lib/TableGen/Record.cpp
diff options
context:
space:
mode:
authorDavid Greene <greened@obbligato.org>2011-10-19 13:02:29 +0000
committerDavid Greene <greened@obbligato.org>2011-10-19 13:02:29 +0000
commit96a9f78c4aa1bc188f3f7ee869bed44cb7a6ff0e (patch)
tree5baff4a16731b0c00c364b2d662b6ae7bb40bf38 /lib/TableGen/Record.cpp
parentd7f8941e77fef20dc147fe102a2024cc5ccef366 (diff)
downloadllvm-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 'lib/TableGen/Record.cpp')
-rw-r--r--lib/TableGen/Record.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/TableGen/Record.cpp b/lib/TableGen/Record.cpp
index b7c51cae95..06a41c9eb2 100644
--- a/lib/TableGen/Record.cpp
+++ b/lib/TableGen/Record.cpp
@@ -1726,6 +1726,18 @@ void Record::setName(const std::string &Name) {
setName(StringInit::get(Name));
}
+const RecordVal *Record::getValue(Init *Name) const {
+ for (unsigned i = 0, e = Values.size(); i != e; ++i)
+ if (Values[i].getNameInit() == Name) return &Values[i];
+ return 0;
+}
+
+RecordVal *Record::getValue(Init *Name) {
+ for (unsigned i = 0, e = Values.size(); i != e; ++i)
+ if (Values[i].getNameInit() == Name) return &Values[i];
+ return 0;
+}
+
/// resolveReferencesTo - If anything in this record refers to RV, replace the
/// reference to RV with the RHS of RV. If RV is null, we resolve all possible
/// references.