Skip to content

Commit 480926a

Browse files
committed
Use find_if
1 parent 7e8f89d commit 480926a

File tree

2 files changed

+25
-29
lines changed

2 files changed

+25
-29
lines changed

llvm/utils/TableGen/AsmMatcherEmitter.cpp

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2576,23 +2576,20 @@ static void emitValidateOperandClass(const CodeGenTarget &Target,
25762576
const Record *Class = RegClassesByHwMode[I];
25772577
const HwModeSelect &ModeSelect = CGH.getHwModeSelect(Class);
25782578

2579-
bool Seen = false;
2580-
for (const HwModeSelect::PairType &P : ModeSelect.Items) {
2581-
if (P.first == M) {
2582-
const CodeGenRegisterClass *RegClass =
2583-
RegBank.getRegClass(P.second);
2584-
2585-
const ClassInfo *CI =
2586-
Info.RegisterClassClasses.at(RegClass->getDef());
2587-
2588-
OS << indent(8) << CI->Name << ",\n";
2589-
Seen = true;
2590-
break;
2591-
}
2592-
}
2579+
auto FoundMode =
2580+
find_if(ModeSelect.Items, [=](const HwModeSelect::PairType P) {
2581+
return P.first == M;
2582+
});
25932583

2594-
if (!Seen)
2584+
if (FoundMode == ModeSelect.Items.end()) {
25952585
OS << indent(8) << "InvalidMatchClass, // Missing mode\n";
2586+
} else {
2587+
const CodeGenRegisterClass *RegClass =
2588+
RegBank.getRegClass(FoundMode->second);
2589+
const ClassInfo *CI =
2590+
Info.RegisterClassClasses.at(RegClass->getDef());
2591+
OS << indent(8) << CI->Name << ",\n";
2592+
}
25962593
}
25972594

25982595
OS << indent(6) << "},\n";

llvm/utils/TableGen/InstrInfoEmitter.cpp

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,21 +1076,20 @@ void InstrInfoEmitter::run(raw_ostream &OS) {
10761076
const Record *Class = RegClassByHwMode[I];
10771077
const HwModeSelect &ModeSelect = CGH.getHwModeSelect(Class);
10781078

1079-
bool Seen = false;
1080-
for (const HwModeSelect::PairType &P : ModeSelect.Items) {
1081-
if (P.first == M) {
1082-
const CodeGenRegisterClass *RegClass =
1083-
RegBank.getRegClass(P.second);
1084-
OS << indent(4) << RegClass->getQualifiedIdName() << ",\n";
1085-
Seen = true;
1086-
break;
1087-
}
1088-
}
1089-
1090-
// If a RegClassByHwMode doesn't have an entry corresponding to a mode,
1091-
// pad with default register class.
1092-
if (!Seen)
1079+
auto FoundMode =
1080+
find_if(ModeSelect.Items, [=](const HwModeSelect::PairType P) {
1081+
return P.first == M;
1082+
});
1083+
1084+
if (FoundMode == ModeSelect.Items.end()) {
1085+
// If a RegClassByHwMode doesn't have an entry corresponding to a
1086+
// mode, pad with default register class.
10931087
OS << indent(4) << "-1, // Missing mode entry\n";
1088+
} else {
1089+
const CodeGenRegisterClass *RegClass =
1090+
RegBank.getRegClass(FoundMode->second);
1091+
OS << indent(4) << RegClass->getQualifiedIdName() << ",\n";
1092+
}
10941093
}
10951094

10961095
OS << " },\n";

0 commit comments

Comments
 (0)