reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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);