Index: llvm/lib/Transforms/Scalar/LoopFlatten.cpp =================================================================== --- llvm/lib/Transforms/Scalar/LoopFlatten.cpp +++ llvm/lib/Transforms/Scalar/LoopFlatten.cpp @@ -125,17 +125,12 @@ // transformation. TODO: could other variables trigger this? Do we have to // search for the best one? InductionPHI = nullptr; - for (PHINode &PHI : L->getHeader()->phis()) { - InductionDescriptor ID; - if (InductionDescriptor::isInductionPHI(&PHI, L, SE, ID)) { - InductionPHI = &PHI; - LLVM_DEBUG(dbgs() << "Found induction PHI: "; InductionPHI->dump()); - break; - } - } + InductionPHI = L->getInductionVariable(*SE); if (!InductionPHI) { LLVM_DEBUG(dbgs() << "Could not find induction PHI\n"); return false; + } else { + LLVM_DEBUG(dbgs() << "Found induction PHI: "; InductionPHI->dump()); } auto IsValidPredicate = [&](ICmpInst::Predicate Pred) {