Lines Matching defs:LatchExit
83 // LatchExit
97 // TODO: This code assumes that the PrologExit (or the LatchExit block for
100 // two or more blocks that have the LatchExit as the target in the
111 // Succ is LatchExit.
427 /// is populated with all the loop exit blocks other than the LatchExit block.
428 static bool canSafelyUnrollMultiExitLoop(Loop *L, BasicBlock *LatchExit,
439 // TODO: Support multiple exiting blocks jumping to the `LatchExit` when
442 if (!LatchExit->getSinglePredecessor()) {
463 Loop *L, SmallVectorImpl<BasicBlock *> &OtherExits, BasicBlock *LatchExit,
467 assert(canSafelyUnrollMultiExitLoop(L, LatchExit, PreserveLCSSA,
484 // normal LatchExit (i.e. exiting into a deoptimize block).
577 BasicBlock *LatchExit = LatchBR->getSuccessor(ExitIndex);
579 if (L->contains(LatchExit)) {
592 canSafelyUnrollMultiExitLoop(L, LatchExit, PreserveLCSSA,
594 canProfitablyUnrollMultiExitLoop(L, OtherExits, LatchExit, PreserveLCSSA,
659 // LatchExit
672 // Split LatchExit to create phi nodes from branch above.
673 SmallVector<BasicBlock*, 4> Preds(predecessors(LatchExit));
674 NewExit = SplitBlockPredecessors(LatchExit, Preds, ".unr-lcssa", DT, LI,
676 // NewExit gets its DebugLoc from LatchExit, which is not part of the
706 // LatchExit LatchExit
784 BasicBlock *InsertBot = UseEpilogRemainder ? LatchExit : PrologExit;
831 SuccBB == LatchExit) &&
874 // LatchExit LatchExit
888 ConnectEpilog(L, ModVal, NewExit, LatchExit, PreHeader,
914 ConnectProlog(L, BECount, Count, PrologExit, LatchExit, PreHeader,