Index: include/llvm/Analysis/BlockFrequencyInfoImpl.h =================================================================== --- include/llvm/Analysis/BlockFrequencyInfoImpl.h +++ include/llvm/Analysis/BlockFrequencyInfoImpl.h @@ -1314,11 +1314,14 @@ return false; } else { const BlockT *BB = getBlock(Node); - for (const auto Succ : children(BB)) - if (!addToDist(Dist, OuterLoop, Node, getNode(Succ), - getWeightFromBranchProb(BPI->getEdgeProbability(BB, Succ)))) - // Irreducible backedge. - return false; + for (auto SuccI = GraphTraits::child_begin(BB), + SuccE = GraphTraits::child_end(BB); + SuccI != SuccE; + ++SuccI) + if (!addToDist(Dist, OuterLoop, Node, getNode(*SuccI), + getWeightFromBranchProb(BPI->getEdgeProbability(BB, SuccI)))) + // Irreducible backedge. + return false; } // Distribute mass to successors, saving exit and backedge data in the