Skip to content

Commit 1d95548

Browse files
committed
Revert "[CodeGen] Use range-based for loops (NFC) (#138434)"
This reverts commit a9699a3. Breaks CodeGen/AMDGPU/collapse-endcf.ll in several configs (sanitizer builds; macOS; possibly more), see comments on #138434
1 parent d3e792c commit 1d95548

File tree

7 files changed

+28
-21
lines changed

7 files changed

+28
-21
lines changed

llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,8 +1114,8 @@ void IRTranslator::emitBitTestHeader(SwitchCG::BitTestBlock &B,
11141114
MaskTy = LLT::scalar(PtrTy.getSizeInBits());
11151115
else {
11161116
// Ensure that the type will fit the mask value.
1117-
for (const SwitchCG::BitTestCase &Case : B.Cases) {
1118-
if (!isUIntN(SwitchOpTy.getSizeInBits(), Case.Mask)) {
1117+
for (unsigned I = 0, E = B.Cases.size(); I != E; ++I) {
1118+
if (!isUIntN(SwitchOpTy.getSizeInBits(), B.Cases[I].Mask)) {
11191119
// Switch table case range are encoded into series of masks.
11201120
// Just use pointer type, it's guaranteed to fit.
11211121
MaskTy = LLT::scalar(PtrTy.getSizeInBits());

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5498,8 +5498,9 @@ LegalizerHelper::fewerElementsBitcast(MachineInstr &MI, unsigned int TypeIdx,
54985498

54995499
// Build new smaller bitcast instructions
55005500
// Not supporting Leftover types for now but will have to
5501-
for (Register Reg : SrcVRegs)
5502-
BitcastVRegs.push_back(MIRBuilder.buildBitcast(NarrowTy, Reg).getReg(0));
5501+
for (unsigned i = 0; i < SrcVRegs.size(); i++)
5502+
BitcastVRegs.push_back(
5503+
MIRBuilder.buildBitcast(NarrowTy, SrcVRegs[i]).getReg(0));
55035504

55045505
MIRBuilder.buildMergeLikeInstr(DstReg, BitcastVRegs);
55055506
MI.eraseFromParent();
@@ -7378,8 +7379,9 @@ LegalizerHelper::LegalizeResult LegalizerHelper::lowerTRUNC(MachineInstr &MI) {
73787379
InterTy = SplitSrcTy.changeElementSize(DstTy.getScalarSizeInBits() * 2);
73797380
else
73807381
InterTy = SplitSrcTy.changeElementSize(DstTy.getScalarSizeInBits());
7381-
for (Register &Src : SplitSrcs)
7382-
Src = MIRBuilder.buildTrunc(InterTy, Src).getReg(0);
7382+
for (unsigned I = 0; I < SplitSrcs.size(); ++I) {
7383+
SplitSrcs[I] = MIRBuilder.buildTrunc(InterTy, SplitSrcs[I]).getReg(0);
7384+
}
73837385

73847386
// Combine the new truncates into one vector
73857387
auto Merge = MIRBuilder.buildMergeLikeInstr(

llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2588,7 +2588,8 @@ void InstrRefBasedLDV::placeMLocPHIs(
25882588
auto CollectPHIsForLoc = [&](LocIdx L) {
25892589
// Collect the set of defs.
25902590
SmallPtrSet<MachineBasicBlock *, 32> DefBlocks;
2591-
for (MachineBasicBlock *MBB : OrderToBB) {
2591+
for (unsigned int I = 0; I < OrderToBB.size(); ++I) {
2592+
MachineBasicBlock *MBB = OrderToBB[I];
25922593
const auto &TransferFunc = MLocTransfer[MBB->getNumber()];
25932594
if (TransferFunc.contains(L))
25942595
DefBlocks.insert(MBB);
@@ -3799,7 +3800,8 @@ bool InstrRefBasedLDV::ExtendRanges(MachineFunction &MF,
37993800
// To mirror old LiveDebugValues, enumerate variables in RPOT order. Otherwise
38003801
// the order is unimportant, it just has to be stable.
38013802
unsigned VarAssignCount = 0;
3802-
for (MachineBasicBlock *MBB : OrderToBB) {
3803+
for (unsigned int I = 0; I < OrderToBB.size(); ++I) {
3804+
auto *MBB = OrderToBB[I];
38033805
auto *VTracker = &vlocs[MBB->getNumber()];
38043806
// Collect each variable with a DBG_VALUE in this block.
38053807
for (auto &idx : VTracker->Vars) {

llvm/lib/CodeGen/MachineCSE.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,9 @@ bool MachineCSEImpl::hasLivePhysRegDefUses(const MachineInstr *MI,
325325
}
326326

327327
// Finally, add all defs to PhysRefs as well.
328-
for (const auto &Def : PhysDefs)
329-
for (MCRegAliasIterator AI(Def.second, TRI, true); AI.isValid(); ++AI)
328+
for (unsigned i = 0, e = PhysDefs.size(); i != e; ++i)
329+
for (MCRegAliasIterator AI(PhysDefs[i].second, TRI, true); AI.isValid();
330+
++AI)
330331
PhysRefs.insert(*AI);
331332

332333
return !PhysRefs.empty();
@@ -347,8 +348,9 @@ bool MachineCSEImpl::PhysRegDefsReach(MachineInstr *CSMI, MachineInstr *MI,
347348
if (MBB->pred_size() != 1 || *MBB->pred_begin() != CSMBB)
348349
return false;
349350

350-
for (const auto &PhysDef : PhysDefs) {
351-
if (MRI->isAllocatable(PhysDef.second) || MRI->isReserved(PhysDef.second))
351+
for (unsigned i = 0, e = PhysDefs.size(); i != e; ++i) {
352+
if (MRI->isAllocatable(PhysDefs[i].second) ||
353+
MRI->isReserved(PhysDefs[i].second))
352354
// Avoid extending live range of physical registers if they are
353355
//allocatable or reserved.
354356
return false;

llvm/lib/CodeGen/RenameIndependentSubregs.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -321,11 +321,12 @@ void RenameIndependentSubregs::computeMainRangesFixFlags(
321321
// Search for "PHI" value numbers in the subranges. We must find a live
322322
// value in each predecessor block, add an IMPLICIT_DEF where it is
323323
// missing.
324-
for (const VNInfo *VNI : SR.valnos) {
325-
if (VNI->isUnused() || !VNI->isPHIDef())
324+
for (unsigned I = 0; I < SR.valnos.size(); ++I) {
325+
const VNInfo &VNI = *SR.valnos[I];
326+
if (VNI.isUnused() || !VNI.isPHIDef())
326327
continue;
327328

328-
SlotIndex Def = VNI->def;
329+
SlotIndex Def = VNI.def;
329330
MachineBasicBlock &MBB = *Indexes.getMBBFromIndex(Def);
330331
for (MachineBasicBlock *PredMBB : MBB.predecessors()) {
331332
SlotIndex PredEnd = Indexes.getMBBEndIdx(PredMBB);

llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -360,8 +360,8 @@ SUnit *ScheduleDAGFast::CopyAndMoveSuccessors(SUnit *SU) {
360360
DelDeps.push_back(std::make_pair(SuccSU, D));
361361
}
362362
}
363-
for (const auto &Dep : DelDeps)
364-
RemovePred(Dep.first, Dep.second);
363+
for (unsigned i = 0, e = DelDeps.size(); i != e; ++i)
364+
RemovePred(DelDeps[i].first, DelDeps[i].second);
365365

366366
++NumDups;
367367
return NewSU;
@@ -395,8 +395,8 @@ void ScheduleDAGFast::InsertCopiesAndMoveSuccs(SUnit *SU, unsigned Reg,
395395
DelDeps.push_back(std::make_pair(SuccSU, Succ));
396396
}
397397
}
398-
for (const auto &Dep : DelDeps) {
399-
RemovePred(Dep.first, Dep.second);
398+
for (unsigned i = 0, e = DelDeps.size(); i != e; ++i) {
399+
RemovePred(DelDeps[i].first, DelDeps[i].second);
400400
}
401401
SDep FromDep(SU, SDep::Data, Reg);
402402
FromDep.setLatency(SU->Latency);

llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3161,8 +3161,8 @@ void SelectionDAGBuilder::visitBitTestHeader(BitTestBlock &B,
31613161
if (!TLI.isTypeLegal(VT)) {
31623162
UsePtrType = true;
31633163
} else {
3164-
for (const BitTestCase &Case : B.Cases)
3165-
if (!isUIntN(VT.getSizeInBits(), Case.Mask)) {
3164+
for (unsigned i = 0, e = B.Cases.size(); i != e; ++i)
3165+
if (!isUIntN(VT.getSizeInBits(), B.Cases[i].Mask)) {
31663166
// Switch table case range are encoded into series of masks.
31673167
// Just use pointer type, it's guaranteed to fit.
31683168
UsePtrType = true;

0 commit comments

Comments
 (0)