diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp index 9e3b4b82cc454..eac9f3158ae57 100644 --- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp +++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp @@ -552,10 +552,8 @@ struct LoopInterchange { // For the old pass manager CacheCost would be null. DenseMap CostMap; if (CC != nullptr) { - const auto &LoopCosts = CC->getLoopCosts(); - for (unsigned i = 0; i < LoopCosts.size(); i++) { - CostMap[LoopCosts[i].first] = i; - } + for (const auto &[Idx, Cost] : enumerate(CC->getLoopCosts())) + CostMap[Cost.first] = Idx; } // We try to achieve the globally optimal memory access for the loopnest, // and do interchange based on a bubble-sort fasion. We start from @@ -972,8 +970,8 @@ areInnerLoopExitPHIsSupported(Loop *InnerL, Loop *OuterL, static bool areOuterLoopExitPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) { BasicBlock *LoopNestExit = OuterLoop->getUniqueExitBlock(); for (PHINode &PHI : LoopNestExit->phis()) { - for (unsigned i = 0; i < PHI.getNumIncomingValues(); i++) { - Instruction *IncomingI = dyn_cast(PHI.getIncomingValue(i)); + for (Value *Incoming : PHI.incoming_values()) { + Instruction *IncomingI = dyn_cast(Incoming); if (!IncomingI || IncomingI->getParent() != OuterLoop->getLoopLatch()) continue; @@ -1132,15 +1130,14 @@ int LoopInterchangeProfitability::getInstrOrderCost() { for (BasicBlock *BB : InnerLoop->blocks()) { for (Instruction &Ins : *BB) { if (const GetElementPtrInst *GEP = dyn_cast(&Ins)) { - unsigned NumOp = GEP->getNumOperands(); bool FoundInnerInduction = false; bool FoundOuterInduction = false; - for (unsigned i = 0; i < NumOp; ++i) { + for (Value *Op : GEP->operands()) { // Skip operands that are not SCEV-able. - if (!SE->isSCEVable(GEP->getOperand(i)->getType())) + if (!SE->isSCEVable(Op->getType())) continue; - const SCEV *OperandVal = SE->getSCEV(GEP->getOperand(i)); + const SCEV *OperandVal = SE->getSCEV(Op); const SCEVAddRecExpr *AR = dyn_cast(OperandVal); if (!AR) continue; @@ -1220,8 +1217,8 @@ LoopInterchangeProfitability::isProfitablePerInstrOrderCost() { /// Return true if we can vectorize the loop specified by \p LoopId. static bool canVectorize(const CharMatrix &DepMatrix, unsigned LoopId) { - for (unsigned I = 0; I != DepMatrix.size(); I++) { - char Dir = DepMatrix[I][LoopId]; + for (const auto &Dep : DepMatrix) { + char Dir = Dep[LoopId]; if (Dir != 'I' && Dir != '=') return false; }