diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp index 4a06e0fa619c..7f5a2a982982 100644 --- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp +++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp @@ -250,10 +250,10 @@ CleanupPointerRootUsers(GlobalVariable *GV, } } - for (int i = 0, e = Dead.size(); i != e; ++i) { - if (IsSafeComputationToRemove(Dead[i].first, GetTLI)) { - Dead[i].second->eraseFromParent(); - Instruction *I = Dead[i].first; + for (const auto &[Inst, Store] : Dead) { + if (IsSafeComputationToRemove(Inst, GetTLI)) { + Store->eraseFromParent(); + Instruction *I = Inst; do { if (isAllocationFn(I, GetTLI)) break; diff --git a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp index 99acb02561d5..40578e5edc3a 100644 --- a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp +++ b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp @@ -3494,13 +3494,13 @@ Instruction *InstCombinerImpl::visitAllocSite(Instruction &MI) { auto Removable = isAllocSiteRemovable(&MI, Users, TLI, KnowInitZero | KnowInitUndef); if (Removable) { - for (unsigned i = 0, e = Users.size(); i != e; ++i) { + for (WeakTrackingVH &User : Users) { // Lowering all @llvm.objectsize and MTI calls first because they may use // a bitcast/GEP of the alloca we are removing. - if (!Users[i]) - continue; + if (!User) + continue; - Instruction *I = cast(&*Users[i]); + Instruction *I = cast(&*User); if (IntrinsicInst *II = dyn_cast(I)) { if (II->getIntrinsicID() == Intrinsic::objectsize) { @@ -3511,7 +3511,7 @@ Instruction *InstCombinerImpl::visitAllocSite(Instruction &MI) { Worklist.add(Inserted); replaceInstUsesWith(*I, Result); eraseInstFromFunction(*I); - Users[i] = nullptr; // Skip examining in the next loop. + User = nullptr; // Skip examining in the next loop. continue; } if (auto *MTI = dyn_cast(I)) { @@ -3527,11 +3527,11 @@ Instruction *InstCombinerImpl::visitAllocSite(Instruction &MI) { } } } - for (unsigned i = 0, e = Users.size(); i != e; ++i) { - if (!Users[i]) + for (WeakTrackingVH &User : Users) { + if (!User) continue; - Instruction *I = cast(&*Users[i]); + Instruction *I = cast(&*User); if (ICmpInst *C = dyn_cast(I)) { replaceInstUsesWith(*C, diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp index 1e16677e5a56..9e3b4b82cc45 100644 --- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp +++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp @@ -235,8 +235,8 @@ static bool populateDependencyMatrix(CharMatrix &DepMatrix, unsigned Level, // matrix by exchanging the two columns. static void interChangeDependencies(CharMatrix &DepMatrix, unsigned FromIndx, unsigned ToIndx) { - for (unsigned I = 0, E = DepMatrix.size(); I < E; ++I) - std::swap(DepMatrix[I][ToIndx], DepMatrix[I][FromIndx]); + for (auto &Row : DepMatrix) + std::swap(Row[ToIndx], Row[FromIndx]); } // Check if a direction vector is lexicographically positive. Return true if it diff --git a/llvm/lib/Transforms/Scalar/Reassociate.cpp b/llvm/lib/Transforms/Scalar/Reassociate.cpp index 778a6a012556..343da5b2e470 100644 --- a/llvm/lib/Transforms/Scalar/Reassociate.cpp +++ b/llvm/lib/Transforms/Scalar/Reassociate.cpp @@ -83,10 +83,10 @@ static void PrintOps(Instruction *I, const SmallVectorImpl &Ops) { Module *M = I->getModule(); dbgs() << Instruction::getOpcodeName(I->getOpcode()) << " " << *Ops[0].Op->getType() << '\t'; - for (unsigned i = 0, e = Ops.size(); i != e; ++i) { + for (const ValueEntry &Op : Ops) { dbgs() << "[ "; - Ops[i].Op->printAsOperand(dbgs(), false, M); - dbgs() << ", #" << Ops[i].Rank << "] "; + Op.Op->printAsOperand(dbgs(), false, M); + dbgs() << ", #" << Op.Rank << "] "; } } #endif @@ -1585,9 +1585,9 @@ Value *ReassociatePass::OptimizeAdd(Instruction *I, // where they are actually the same multiply. unsigned MaxOcc = 0; Value *MaxOccVal = nullptr; - for (unsigned i = 0, e = Ops.size(); i != e; ++i) { + for (const ValueEntry &Op : Ops) { BinaryOperator *BOp = - isReassociableOp(Ops[i].Op, Instruction::Mul, Instruction::FMul); + isReassociableOp(Op.Op, Instruction::Mul, Instruction::FMul); if (!BOp) continue; diff --git a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp index 3e459f5ea4ce..a4bfdcabaa31 100644 --- a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp +++ b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp @@ -3082,10 +3082,10 @@ bool VectorCombine::foldSelectShuffle(Instruction &I, bool FromReduction) { auto *SSV = cast(SVOp0); SVOp0 = SSV->getOperand(0); SVOp1 = SSV->getOperand(1); - for (unsigned I = 0, E = Mask.size(); I != E; I++) { - if (Mask[I] >= static_cast(SSV->getShuffleMask().size())) + for (int &Elem : Mask) { + if (Elem >= static_cast(SSV->getShuffleMask().size())) return false; - Mask[I] = Mask[I] < 0 ? Mask[I] : SSV->getMaskValue(Mask[I]); + Elem = Elem < 0 ? Elem : SSV->getMaskValue(Elem); } } if (SVOp0 == Op1 && SVOp1 == Op0) {