reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Scalar/LoopSimplifyCFG.cpp
  158     dbgs() << "Constant terminator folding for loop " << L << "\n";
  198         if (L.contains(Succ) && !LI.isLoopHeader(Succ) && RPO[BB] > RPO[Succ])
  226     LiveLoopBlocks.insert(L.getHeader());
  242       bool TakeFoldCandidate = TheOnlySucc && LI.getLoopFor(BB) == &L;
  249           if (L.contains(Succ))
  258     assert(L.getNumBlocks() == LiveLoopBlocks.size() + DeadLoopBlocks.size() &&
  263     L.getExitBlocks(ExitBlocks);
  276       return !TheOnlySucc || TheOnlySucc == To || LI.getLoopFor(From) != &L;
  280     DeleteCurrentLoop = !IsEdgeLive(L.getLoopLatch(), L.getHeader());
  280     DeleteCurrentLoop = !IsEdgeLive(L.getLoopLatch(), L.getHeader());
  289     BlocksInLoopAfterFolding.insert(L.getLoopLatch());
  306     assert(BlocksInLoopAfterFolding.count(L.getHeader()) &&
  354     BasicBlock *Preheader = L.getLoopPreheader();
  380     assert(L.getLoopPreheader() == NewPreheader && "Malformed CFG?");
  386       Loop *StillReachable = getInnermostLoopFor(LiveExitBlocks, L, LI);
  393         for (auto *BB : L.blocks())
  395         OuterLoop->removeChildLoop(&L);
  397           StillReachable->addChildLoop(&L);
  399           LI.addTopLevelLoop(&L);
  444         assert(LI.getLoopFor(BB) != &L && "Attempt to remove current loop!");
  457       assert(BB != L.getHeader() &&
  477       assert(LI.getLoopFor(BB) == &L && "Should be a loop block!");
  493           bool PreserveLCSSAPhi = !L.contains(Succ);
  504       bool PreserveLCSSAPhi = !L.contains(TheOnlySucc);
  530     assert(L.getLoopLatch() && "Should be single latch!");
  535     BasicBlock *Header = L.getHeader();
  566         L.getNumBlocks()) {
  575     SE.forgetTopmostLoop(&L);