Lines Matching defs:NewExit
183 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit,
199 // NewExit (PN)
206 // Update PHI nodes at NewExit and Exit.
207 for (PHINode &PN : NewExit->phis()) {
209 // Exit was split by SplitBlockPredecessors into Exit and NewExit
211 // NewExit:
217 // There is EpilogPreHeader incoming block instead of NewExit as
218 // NewExit was spilt 1 more time to get EpilogPreHeader.
237 // Change EpilogPreHeader incoming block to NewExit.
239 NewExit);
241 // NewExit:
245 // EpilogPN = PHI [PN, NewExit], [VMap[I], EpilogLatch]
248 // Create PHI nodes at NewExit (from the unrolling loop Latch and PreHeader).
258 NewExit->getFirstNonPHI());
271 Instruction *InsertPt = NewExit->getTerminator();
283 DT->changeImmediateDominator(Exit, NewExit);
287 SplitBlockPredecessors(NewExit, NewExitPreds, ".loopexit", DT, LI, nullptr,
662 BasicBlock *NewExit = nullptr;
674 NewExit = SplitBlockPredecessors(LatchExit, Preds, ".unr-lcssa", DT, LI,
676 // NewExit gets its DebugLoc from LatchExit, which is not part of the
678 // Fix this by setting Loop's DebugLoc to NewExit.
679 auto *NewExitTerminator = NewExit->getTerminator();
681 // Split NewExit to insert epilog remainder loop.
682 EpilogPreHeader = SplitBlock(NewExit, NewExitTerminator, DT, LI);
704 // *NewExit ...
752 BasicBlock *RemainderLoop = UseEpilogRemainder ? NewExit : PrologPreHeader;
759 DT->changeImmediateDominator(NewExit, PreHeader);
869 // NewExit PrologExit
888 ConnectEpilog(L, ModVal, NewExit, LatchExit, PreHeader,