diff options
Diffstat (limited to 'llvm/lib/Analysis')
| -rw-r--r-- | llvm/lib/Analysis/ScalarEvolution.cpp | 24 | 
1 files changed, 14 insertions, 10 deletions
| diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 0a87a084644..a66e609e4ee 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -11417,19 +11417,23 @@ static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE,    L->getHeader()->printAsOperand(OS, /*PrintType=*/false);    OS << ": "; -  SmallVector<BasicBlock *, 8> ExitBlocks; -  L->getExitBlocks(ExitBlocks); -  if (ExitBlocks.size() != 1) +  SmallVector<BasicBlock *, 8> ExitingBlocks; +  L->getExitingBlocks(ExitingBlocks); +  if (ExitingBlocks.size() != 1)      OS << "<multiple exits> "; -  if (SE->hasLoopInvariantBackedgeTakenCount(L)) { -    OS << "backedge-taken count is " << *SE->getBackedgeTakenCount(L); -  } else { -    OS << "Unpredictable backedge-taken count. "; -  } +  if (SE->hasLoopInvariantBackedgeTakenCount(L)) +    OS << "backedge-taken count is " << *SE->getBackedgeTakenCount(L) << "\n"; +  else +    OS << "Unpredictable backedge-taken count.\n"; -  OS << "\n" -        "Loop "; +  if (ExitingBlocks.size() > 1) +    for (BasicBlock *ExitingBlock : ExitingBlocks) { +      OS << "  exit count for " << ExitingBlock->getName() << ": " +         << *SE->getExitCount(L, ExitingBlock) << "\n"; +    } + +  OS << "Loop ";    L->getHeader()->printAsOperand(OS, /*PrintType=*/false);    OS << ": "; | 

