Skip to content

Commit e235152

Browse files
committed
Simplify API of getDirectSuperClasses
1 parent 683fe14 commit e235152

File tree

5 files changed

+10
-21
lines changed

5 files changed

+10
-21
lines changed

llvm/include/llvm/TableGen/Record.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1732,10 +1732,9 @@ class Record {
17321732
return is_contained(make_first_range(DirectSuperClasses), SuperClass);
17331733
}
17341734

1735-
/// Append the direct superclasses of this record to Classes.
1736-
void getDirectSuperClasses(
1737-
SmallVectorImpl<std::pair<const Record *, SMRange>> &Classes) const {
1738-
Classes.append(DirectSuperClasses);
1735+
/// Return the direct superclasses of this record.
1736+
ArrayRef<std::pair<const Record *, SMRange>> getDirectSuperClasses() const {
1737+
return DirectSuperClasses;
17391738
}
17401739

17411740
bool isTemplateArg(const Init *Name) const {

llvm/lib/TableGen/Record.cpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -327,17 +327,13 @@ static const RecordRecTy *resolveRecordTypes(const RecordRecTy *T1,
327327
SmallVector<const Record *, 4> CommonSuperClasses;
328328
SmallVector<const Record *, 4> Stack(T1->getClasses());
329329

330-
SmallVector<std::pair<const Record *, SMRange>> SCs;
331-
332330
while (!Stack.empty()) {
333331
const Record *R = Stack.pop_back_val();
334332

335333
if (T2->isSubClassOf(R)) {
336334
CommonSuperClasses.push_back(R);
337335
} else {
338-
R->getDirectSuperClasses(SCs);
339-
append_range(Stack, make_first_range(SCs));
340-
SCs.clear();
336+
append_range(Stack, make_first_range(R->getDirectSuperClasses()));
341337
}
342338
}
343339

@@ -2874,10 +2870,8 @@ void Record::checkName() {
28742870
}
28752871

28762872
const RecordRecTy *Record::getType() const {
2877-
SmallVector<std::pair<const Record *, SMRange>> SCs;
2878-
getDirectSuperClasses(SCs);
28792873
SmallVector<const Record *, 4> DirectSCs;
2880-
append_range(DirectSCs, make_first_range(SCs));
2874+
append_range(DirectSCs, make_first_range(getDirectSuperClasses()));
28812875
return RecordRecTy::get(TrackedRecords, DirectSCs);
28822876
}
28832877

llvm/lib/TableGen/TGParser.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3995,9 +3995,8 @@ bool TGParser::ParseClass() {
39953995
Record *CurRec = const_cast<Record *>(Records.getClass(Name));
39963996
if (CurRec) {
39973997
// If the body was previously defined, this is an error.
3998-
SmallVector<std::pair<const Record *, SMRange>> SCs;
3999-
CurRec->getDirectSuperClasses(SCs);
4000-
if (!CurRec->getValues().empty() || !SCs.empty() ||
3998+
if (!CurRec->getValues().empty() ||
3999+
!CurRec->getDirectSuperClasses().empty() ||
40014000
!CurRec->getTemplateArgs().empty())
40024001
return TokError("Class '" + CurRec->getNameInitAsString() +
40034002
"' already defined");

llvm/utils/TableGen/Common/CodeGenRegisters.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -703,9 +703,7 @@ struct TupleExpander : SetTheory::Expander {
703703
"Register tuple redefines register '" + Name + "'.");
704704

705705
// Copy Proto super-classes.
706-
SmallVector<std::pair<const Record *, SMRange>> SCs;
707-
Proto->getDirectSuperClasses(SCs);
708-
for (const auto &[Super, Loc] : SCs)
706+
for (const auto &[Super, Loc] : Proto->getDirectSuperClasses())
709707
NewReg->addDirectSuperClass(Super, Loc);
710708

711709
// Copy Proto fields.

llvm/utils/TableGen/SearchableTableEmitter.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -839,9 +839,8 @@ void SearchableTableEmitter::run(raw_ostream &OS) {
839839
const Record *SearchableTable = Records.getClass("SearchableTable");
840840
for (auto &NameRec : Records.getClasses()) {
841841
const Record *Class = NameRec.second.get();
842-
SmallVector<std::pair<const Record *, SMRange>> SCs;
843-
Class->getDirectSuperClasses(SCs);
844-
if (SCs.size() != 1 || !Class->isSubClassOf(SearchableTable))
842+
if (Class->getDirectSuperClasses().size() != 1 ||
843+
!Class->isSubClassOf(SearchableTable))
845844
continue;
846845

847846
StringRef TableName = Class->getName();

0 commit comments

Comments
 (0)