Lines Matching defs:ExitBB

254                                          const BasicBlock &ExitBB) {
255 for (const Instruction &I : ExitBB) {
363 static void rewritePHINodesForExitAndUnswitchedBlocks(BasicBlock &ExitBB,
368 assert(&ExitBB != &UnswitchedBB &&
371 for (PHINode &PN : ExitBB.phis()) {
400 NewPN->addIncoming(&PN, &ExitBB);
420 for (auto *ExitBB : Exits)
421 if (Loop *ExitL = LI.getLoopFor(ExitBB))
477 // Return the top-most loop containing ExitBB and having ExitBB as exiting block
478 // or the loop containing ExitBB, if there is no parent loop containing ExitBB
480 static Loop *getTopMostExitingLoop(const BasicBlock *ExitBB,
482 Loop *TopMost = LI.getLoopFor(ExitBB);
485 if (Current->isLoopExiting(ExitBB))
901 BasicBlock *ExitBB = std::get<1>(ExitCase);
905 if (pred_empty(ExitBB)) {
907 if (UnswitchedExitBBs.insert(ExitBB).second)
908 rewritePHINodesForUnswitchedExitBlock(*ExitBB, *ParentBB, *OldPH);
914 BasicBlock *&SplitExitBB = SplitExitBBMap[ExitBB];
917 SplitExitBB = SplitBlock(ExitBB, ExitBB->begin(), &DT, &LI, MSSAU);
918 rewritePHINodesForExitAndUnswitchedBlocks(*ExitBB, *SplitExitBB,
1210 for (auto *ExitBB : ExitBlocks) {
1211 if (SkipBlock(ExitBB))
1219 auto *MergeBB = SplitBlock(ExitBB, ExitBB->begin(), &DT, &LI, MSSAU);
1224 MergeBB->takeName(ExitBB);
1225 ExitBB->setName(Twine(MergeBB->getName()) + ".split");
1228 auto *ClonedExitBB = CloneBlock(ExitBB);
1236 llvm::make_range(ExitBB->begin(), std::prev(ExitBB->end())),
1262 MergePN->addIncoming(&I, ExitBB);
1441 for (auto *ExitBB : ExitBlocks)
1442 if (auto *ClonedExitBB = cast_or_null<BasicBlock>(VMap.lookup(ExitBB)))
1443 if (Loop *ExitL = LI.getLoopFor(ExitBB)) {
1596 BasicBlock *ExitBB = OrderedClonedExitsInLoops.pop_back_val();
1597 Loop *ExitL = ExitLoopMap.lookup(ExitBB);
1601 Worklist.push_back(ExitBB);
1918 for (auto *ExitBB : ExitBlocks)
1919 if (Loop *ExitL = LI.getLoopFor(ExitBB)) {
1921 ExitsInLoops.push_back(ExitBB);
1998 BasicBlock *ExitBB = ExitsInLoops.pop_back_val();
1999 Loop &ExitL = *LI.getLoopFor(ExitBB);
2011 Worklist.push_back(ExitBB);
2263 for (auto *ExitBB : ExitBlocks) {
2264 // ExitBB can be an exit block for several levels in the loop nest. Make
2266 Loop *NewOuterExitL = getTopMostExitingLoop(ExitBB, LI);
3305 for (auto *ExitBB : ExitBlocks) {
3306 auto It = ExitBB->getFirstNonPHIIt();