Lines Matching refs:ExitBB

252                                          const BasicBlock &ExitBB) {  in areLoopExitPHIsLoopInvariant()  argument
253 for (const Instruction &I : ExitBB) { in areLoopExitPHIsLoopInvariant()
361 static void rewritePHINodesForExitAndUnswitchedBlocks(BasicBlock &ExitBB, in rewritePHINodesForExitAndUnswitchedBlocks() argument
366 assert(&ExitBB != &UnswitchedBB && in rewritePHINodesForExitAndUnswitchedBlocks()
369 for (PHINode &PN : ExitBB.phis()) { in rewritePHINodesForExitAndUnswitchedBlocks()
398 NewPN->addIncoming(&PN, &ExitBB); in rewritePHINodesForExitAndUnswitchedBlocks()
418 for (auto *ExitBB : Exits) in hoistLoopToNewParent() local
419 if (Loop *ExitL = LI.getLoopFor(ExitBB)) in hoistLoopToNewParent()
478 static Loop *getTopMostExitingLoop(const BasicBlock *ExitBB, in getTopMostExitingLoop() argument
480 Loop *TopMost = LI.getLoopFor(ExitBB); in getTopMostExitingLoop()
483 if (Current->isLoopExiting(ExitBB)) in getTopMostExitingLoop()
894 BasicBlock *ExitBB = std::get<1>(ExitCase); in unswitchTrivialSwitch() local
898 if (pred_empty(ExitBB)) { in unswitchTrivialSwitch()
900 if (UnswitchedExitBBs.insert(ExitBB).second) in unswitchTrivialSwitch()
901 rewritePHINodesForUnswitchedExitBlock(*ExitBB, *ParentBB, *OldPH); in unswitchTrivialSwitch()
907 BasicBlock *&SplitExitBB = SplitExitBBMap[ExitBB]; in unswitchTrivialSwitch()
910 SplitExitBB = SplitBlock(ExitBB, ExitBB->begin(), &DT, &LI, MSSAU); in unswitchTrivialSwitch()
911 rewritePHINodesForExitAndUnswitchedBlocks(*ExitBB, *SplitExitBB, in unswitchTrivialSwitch()
1202 for (auto *ExitBB : ExitBlocks) { in buildClonedLoopBlocks() local
1203 if (SkipBlock(ExitBB)) in buildClonedLoopBlocks()
1211 auto *MergeBB = SplitBlock(ExitBB, ExitBB->begin(), &DT, &LI, MSSAU); in buildClonedLoopBlocks()
1216 MergeBB->takeName(ExitBB); in buildClonedLoopBlocks()
1217 ExitBB->setName(Twine(MergeBB->getName()) + ".split"); in buildClonedLoopBlocks()
1220 auto *ClonedExitBB = CloneBlock(ExitBB); in buildClonedLoopBlocks()
1228 llvm::make_range(ExitBB->begin(), std::prev(ExitBB->end())), in buildClonedLoopBlocks()
1250 MergePN->addIncoming(&I, ExitBB); in buildClonedLoopBlocks()
1428 for (auto *ExitBB : ExitBlocks) in buildClonedLoops() local
1429 if (auto *ClonedExitBB = cast_or_null<BasicBlock>(VMap.lookup(ExitBB))) in buildClonedLoops()
1430 if (Loop *ExitL = LI.getLoopFor(ExitBB)) { in buildClonedLoops()
1583 BasicBlock *ExitBB = OrderedClonedExitsInLoops.pop_back_val(); in buildClonedLoops() local
1584 Loop *ExitL = ExitLoopMap.lookup(ExitBB); in buildClonedLoops()
1588 Worklist.push_back(ExitBB); in buildClonedLoops()
1905 for (auto *ExitBB : ExitBlocks) in rebuildLoopAfterUnswitch() local
1906 if (Loop *ExitL = LI.getLoopFor(ExitBB)) { in rebuildLoopAfterUnswitch()
1908 ExitsInLoops.push_back(ExitBB); in rebuildLoopAfterUnswitch()
1985 BasicBlock *ExitBB = ExitsInLoops.pop_back_val(); in rebuildLoopAfterUnswitch() local
1986 Loop &ExitL = *LI.getLoopFor(ExitBB); in rebuildLoopAfterUnswitch()
1998 Worklist.push_back(ExitBB); in rebuildLoopAfterUnswitch()
2250 for (auto *ExitBB : ExitBlocks) { in unswitchNontrivialInvariants() local
2253 Loop *NewOuterExitL = getTopMostExitingLoop(ExitBB, LI); in unswitchNontrivialInvariants()
3282 for (auto *ExitBB : ExitBlocks) { in isSafeForNoNTrivialUnswitching() local
3283 auto *I = ExitBB->getFirstNonPHI(); in isSafeForNoNTrivialUnswitching()