diff options
Diffstat (limited to 'llvm/lib/TableGen')
-rw-r--r-- | llvm/lib/TableGen/Record.cpp | 18 | ||||
-rw-r--r-- | llvm/lib/TableGen/SetTheory.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/TableGen/TGParser.cpp | 11 |
3 files changed, 18 insertions, 19 deletions
diff --git a/llvm/lib/TableGen/Record.cpp b/llvm/lib/TableGen/Record.cpp index 943b101d9a3..dad68c95855 100644 --- a/llvm/lib/TableGen/Record.cpp +++ b/llvm/lib/TableGen/Record.cpp @@ -167,8 +167,8 @@ bool RecordRecTy::typeIsConvertibleTo(const RecTy *RHS) const { if (RTy->getRecord() == Rec || Rec->isSubClassOf(RTy->getRecord())) return true; - for (Record *SC : RTy->getRecord()->getSuperClasses()) - if (Rec->isSubClassOf(SC)) + for (const auto &SCPair : RTy->getRecord()->getSuperClasses()) + if (Rec->isSubClassOf(SCPair.first)) return true; return false; @@ -186,8 +186,8 @@ RecTy *llvm::resolveTypes(RecTy *T1, RecTy *T2) { // If one is a Record type, check superclasses if (RecordRecTy *RecTy1 = dyn_cast<RecordRecTy>(T1)) { // See if T2 inherits from a type T1 also inherits from - for (Record *SuperRec1 : RecTy1->getRecord()->getSuperClasses()) { - RecordRecTy *SuperRecTy1 = RecordRecTy::get(SuperRec1); + for (const auto &SuperPair1 : RecTy1->getRecord()->getSuperClasses()) { + RecordRecTy *SuperRecTy1 = RecordRecTy::get(SuperPair1.first); RecTy *NewType1 = resolveTypes(SuperRecTy1, T2); if (NewType1) return NewType1; @@ -195,8 +195,8 @@ RecTy *llvm::resolveTypes(RecTy *T1, RecTy *T2) { } if (RecordRecTy *RecTy2 = dyn_cast<RecordRecTy>(T2)) { // See if T1 inherits from a type T2 also inherits from - for (Record *SuperRec2 : RecTy2->getRecord()->getSuperClasses()) { - RecordRecTy *SuperRecTy2 = RecordRecTy::get(SuperRec2); + for (const auto &SuperPair2 : RecTy2->getRecord()->getSuperClasses()) { + RecordRecTy *SuperRecTy2 = RecordRecTy::get(SuperPair2.first); RecTy *NewType2 = resolveTypes(T1, SuperRecTy2); if (NewType2) return NewType2; @@ -1662,11 +1662,11 @@ raw_ostream &llvm::operator<<(raw_ostream &OS, const Record &R) { } OS << " {"; - ArrayRef<Record *> SC = R.getSuperClasses(); + ArrayRef<std::pair<Record *, SMRange>> SC = R.getSuperClasses(); if (!SC.empty()) { OS << "\t//"; - for (const Record *Super : SC) - OS << " " << Super->getNameInitAsString(); + for (const auto &SuperPair : SC) + OS << " " << SuperPair.first->getNameInitAsString(); } OS << "\n"; diff --git a/llvm/lib/TableGen/SetTheory.cpp b/llvm/lib/TableGen/SetTheory.cpp index f56b17acbfb..a4d33051b4f 100644 --- a/llvm/lib/TableGen/SetTheory.cpp +++ b/llvm/lib/TableGen/SetTheory.cpp @@ -302,12 +302,12 @@ const RecVec *SetTheory::expand(Record *Set) { return &I->second; // This is the first time we see Set. Find a suitable expander. - ArrayRef<Record *> SC = Set->getSuperClasses(); - for (unsigned i = 0, e = SC.size(); i != e; ++i) { + ArrayRef<std::pair<Record *, SMRange>> SC = Set->getSuperClasses(); + for (const auto &SCPair : SC) { // Skip unnamed superclasses. - if (!dyn_cast<StringInit>(SC[i]->getNameInit())) + if (!isa<StringInit>(SCPair.first->getNameInit())) continue; - auto I = Expanders.find(SC[i]->getName()); + auto I = Expanders.find(SCPair.first->getName()); if (I != Expanders.end()) { // This breaks recursive definitions. RecVec &EltVec = Expansions[Set]; diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp index 1506a7171ac..3b8ce00a33d 100644 --- a/llvm/lib/TableGen/TGParser.cpp +++ b/llvm/lib/TableGen/TGParser.cpp @@ -185,13 +185,12 @@ bool TGParser::AddSubClass(Record *CurRec, SubClassReference &SubClass) { // Since everything went well, we can now set the "superclass" list for the // current record. - ArrayRef<Record *> SCs = SC->getSuperClasses(); - ArrayRef<SMRange> SCRanges = SC->getSuperClassRanges(); - for (unsigned i = 0, e = SCs.size(); i != e; ++i) { - if (CurRec->isSubClassOf(SCs[i])) + ArrayRef<std::pair<Record *, SMRange>> SCs = SC->getSuperClasses(); + for (const auto &SCPair : SCs) { + if (CurRec->isSubClassOf(SCPair.first)) return Error(SubClass.RefRange.Start, - "Already subclass of '" + SCs[i]->getName() + "'!\n"); - CurRec->addSuperClass(SCs[i], SCRanges[i]); + "Already subclass of '" + SCPair.first->getName() + "'!\n"); + CurRec->addSuperClass(SCPair.first, SCPair.second); } if (CurRec->isSubClassOf(SC)) |