@@ -200,62 +200,6 @@ void CodeGenRegister::buildObjectGraph(CodeGenRegBank &RegBank) {
200
200
}
201
201
}
202
202
203
- namespace {
204
-
205
- // Iterate over all register units in a set of registers.
206
- class RegUnitIterator {
207
- CodeGenRegister::Vec::const_iterator RegI, RegE;
208
- CodeGenRegister::RegUnitList::iterator UnitI, UnitE;
209
- static CodeGenRegister::RegUnitList Sentinel;
210
-
211
- public:
212
- RegUnitIterator (const CodeGenRegister::Vec &Regs)
213
- : RegI(Regs.begin()), RegE(Regs.end()) {
214
-
215
- if (RegI == RegE) {
216
- UnitI = Sentinel.end ();
217
- UnitE = Sentinel.end ();
218
- } else {
219
- UnitI = (*RegI)->getRegUnits ().begin ();
220
- UnitE = (*RegI)->getRegUnits ().end ();
221
- advance ();
222
- }
223
- }
224
-
225
- bool isValid () const { return UnitI != UnitE; }
226
-
227
- unsigned operator *() const {
228
- assert (isValid ());
229
- return *UnitI;
230
- }
231
-
232
- const CodeGenRegister *getReg () const {
233
- assert (isValid ());
234
- return *RegI;
235
- }
236
-
237
- // / Preincrement. Move to the next unit.
238
- void operator ++() {
239
- assert (isValid () && " Cannot advance beyond the last operand" );
240
- ++UnitI;
241
- advance ();
242
- }
243
-
244
- protected:
245
- void advance () {
246
- while (UnitI == UnitE) {
247
- if (++RegI == RegE)
248
- break ;
249
- UnitI = (*RegI)->getRegUnits ().begin ();
250
- UnitE = (*RegI)->getRegUnits ().end ();
251
- }
252
- }
253
- };
254
-
255
- CodeGenRegister::RegUnitList RegUnitIterator::Sentinel;
256
-
257
- } // end anonymous namespace
258
-
259
203
// Inherit register units from subregisters.
260
204
// Return true if the RegUnits changed.
261
205
bool CodeGenRegister::inheritRegUnits (CodeGenRegBank &RegBank) {
@@ -1131,10 +1075,12 @@ void CodeGenRegisterClass::getSuperRegClasses(const CodeGenSubRegIndex *SubIdx,
1131
1075
void CodeGenRegisterClass::buildRegUnitSet (
1132
1076
const CodeGenRegBank &RegBank, std::vector<unsigned > &RegUnits) const {
1133
1077
std::vector<unsigned > TmpUnits;
1134
- for (RegUnitIterator UnitI (Members); UnitI.isValid (); ++UnitI) {
1135
- const RegUnit &RU = RegBank.getRegUnit (*UnitI);
1136
- if (!RU.Artificial )
1137
- TmpUnits.push_back (*UnitI);
1078
+ for (const CodeGenRegister *Reg : Members) {
1079
+ for (unsigned UnitI : Reg->getRegUnits ()) {
1080
+ const RegUnit &RU = RegBank.getRegUnit (UnitI);
1081
+ if (!RU.Artificial )
1082
+ TmpUnits.push_back (UnitI);
1083
+ }
1138
1084
}
1139
1085
llvm::sort (TmpUnits);
1140
1086
std::unique_copy (TmpUnits.begin (), TmpUnits.end (),
0 commit comments