diff options
author | David Greene <greened@obbligato.org> | 2009-04-24 16:55:41 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2009-04-24 16:55:41 +0000 |
commit | 7049e79e451eabaa88a44cb491c95a4a915bd69e (patch) | |
tree | 98c79229a1ad7ed425fc0eaae2f164a11617471c /llvm/utils/TableGen/Record.cpp | |
parent | 62d47d23611cc3f3817f8bc58de5a146a5f4c4d2 (diff) | |
download | bcm5719-llvm-7049e79e451eabaa88a44cb491c95a4a915bd69e.tar.gz bcm5719-llvm-7049e79e451eabaa88a44cb491c95a4a915bd69e.zip |
Fix multiclass inheritance to limit value resolution to new defs added
by base multiclasses. Do not attempt to alter defs from previous base
multiclasses. This fixes multiple multiclass inheritance.
llvm-svn: 69974
Diffstat (limited to 'llvm/utils/TableGen/Record.cpp')
-rw-r--r-- | llvm/utils/TableGen/Record.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/Record.cpp b/llvm/utils/TableGen/Record.cpp index 9ce645de34f..2e64c838ab7 100644 --- a/llvm/utils/TableGen/Record.cpp +++ b/llvm/utils/TableGen/Record.cpp @@ -1060,6 +1060,20 @@ std::string Record::getValueAsCode(const std::string &FieldName) const { } +void MultiClass::dump() const { + cerr << "Record:\n"; + Rec.dump(); + + cerr << "Defs:\n"; + for (RecordVector::const_iterator r = DefPrototypes.begin(), + rend = DefPrototypes.end(); + r != rend; + ++r) { + (*r)->dump(); + } +} + + void RecordKeeper::dump() const { cerr << *this; } std::ostream &llvm::operator<<(std::ostream &OS, const RecordKeeper &RK) { |