Lines Matching defs:LI

90                                  Loop &L, LoopInfo &LI) {
93 Loop *BBL = LI.getLoopFor(BB);
112 LoopInfo &LI;
148 // subloops to avoid complex LI updates.
192 if (L.contains(Succ) && !LI.isLoopHeader(Succ) && RPO[BB] > RPO[Succ])
204 DFS.perform(&LI);
236 bool TakeFoldCandidate = TheOnlySucc && LI.getLoopFor(BB) == &L;
274 return !TheOnlySucc || TheOnlySucc == To || LI.getLoopFor(From) != &L;
353 Preheader, Preheader->getTerminator(), &DT, &LI, MSSAU);
384 if (Loop *OuterLoop = LI.getLoopFor(Preheader)) {
389 Loop *StillReachable = getInnermostLoopFor(LiveExitBlocks, L, LI);
394 LI.changeLoopFor(NewPreheader, StillReachable);
402 LI.addTopLevelLoop(&L);
417 formLCSSARecursively(*FixLCSSALoop, DT, &LI, &SE);
432 /// relevant updates to DT and LI.
440 // The function LI.erase has some invariants that need to be preserved when
447 if (LI.isLoopHeader(BB)) {
448 assert(LI.getLoopFor(BB) != &L && "Attempt to remove current loop!");
449 Loop *DL = LI.getLoopFor(BB);
455 LI.addTopLevelLoop(DL);
457 LI.erase(DL);
465 LI.removeBlock(BB);
481 assert(LI.getLoopFor(BB) == &L && "Should be a loop block!");
528 ConstantTerminatorFoldingImpl(Loop &L, LoopInfo &LI, DominatorTree &DT,
531 : L(L), LI(LI), DT(DT), SE(SE), MSSAU(MSSAU), DFS(&L),
628 LI.verify(DT);
642 static bool constantFoldTerminators(Loop &L, DominatorTree &DT, LoopInfo &LI,
654 ConstantTerminatorFoldingImpl BranchFolder(L, LI, DT, SE, MSSAU);
661 LoopInfo &LI, MemorySSAUpdater *MSSAU,
677 if (!Pred || !Pred->getSingleSuccessor() || LI.getLoopFor(Pred) != &L)
681 MergeBlockIntoPredecessor(Succ, &DTU, &LI, MSSAU);
695 static bool simplifyLoopCFG(Loop &L, DominatorTree &DT, LoopInfo &LI,
701 Changed |= constantFoldTerminators(L, DT, LI, SE, MSSAU, IsLoopDeleted);
707 Changed |= mergeBlocksIntoPredecessors(L, DT, LI, MSSAU, SE);
722 if (!simplifyLoopCFG(L, AR.DT, AR.LI, AR.SE, MSSAU ? &*MSSAU : nullptr,