Lines Matching refs:ExitBB

196                                          BasicBlock &ExitBB) {  in areLoopExitPHIsLoopInvariant()  argument
197 for (Instruction &I : ExitBB) { in areLoopExitPHIsLoopInvariant()
305 static void rewritePHINodesForExitAndUnswitchedBlocks(BasicBlock &ExitBB, in rewritePHINodesForExitAndUnswitchedBlocks() argument
310 assert(&ExitBB != &UnswitchedBB && in rewritePHINodesForExitAndUnswitchedBlocks()
313 for (PHINode &PN : ExitBB.phis()) { in rewritePHINodesForExitAndUnswitchedBlocks()
341 NewPN->addIncoming(&PN, &ExitBB); in rewritePHINodesForExitAndUnswitchedBlocks()
361 for (auto *ExitBB : Exits) in hoistLoopToNewParent() local
362 if (Loop *ExitL = LI.getLoopFor(ExitBB)) in hoistLoopToNewParent()
421 static Loop *getTopMostExitingLoop(BasicBlock *ExitBB, LoopInfo &LI) { in getTopMostExitingLoop() argument
422 Loop *TopMost = LI.getLoopFor(ExitBB); in getTopMostExitingLoop()
425 if (Current->isLoopExiting(ExitBB)) in getTopMostExitingLoop()
830 BasicBlock *ExitBB = std::get<1>(ExitCase); in unswitchTrivialSwitch() local
834 if (pred_empty(ExitBB)) { in unswitchTrivialSwitch()
836 if (UnswitchedExitBBs.insert(ExitBB).second) in unswitchTrivialSwitch()
837 rewritePHINodesForUnswitchedExitBlock(*ExitBB, *ParentBB, *OldPH); in unswitchTrivialSwitch()
843 BasicBlock *&SplitExitBB = SplitExitBBMap[ExitBB]; in unswitchTrivialSwitch()
846 SplitExitBB = SplitBlock(ExitBB, &ExitBB->front(), &DT, &LI, MSSAU); in unswitchTrivialSwitch()
847 rewritePHINodesForExitAndUnswitchedBlocks(*ExitBB, *SplitExitBB, in unswitchTrivialSwitch()
1137 for (auto *ExitBB : ExitBlocks) { in buildClonedLoopBlocks() local
1138 if (SkipBlock(ExitBB)) in buildClonedLoopBlocks()
1146 auto *MergeBB = SplitBlock(ExitBB, &ExitBB->front(), &DT, &LI, MSSAU); in buildClonedLoopBlocks()
1151 MergeBB->takeName(ExitBB); in buildClonedLoopBlocks()
1152 ExitBB->setName(Twine(MergeBB->getName()) + ".split"); in buildClonedLoopBlocks()
1155 auto *ClonedExitBB = CloneBlock(ExitBB); in buildClonedLoopBlocks()
1163 llvm::make_range(ExitBB->begin(), std::prev(ExitBB->end())), in buildClonedLoopBlocks()
1181 MergePN->addIncoming(&I, ExitBB); in buildClonedLoopBlocks()
1356 for (auto *ExitBB : ExitBlocks) in buildClonedLoops() local
1357 if (auto *ClonedExitBB = cast_or_null<BasicBlock>(VMap.lookup(ExitBB))) in buildClonedLoops()
1358 if (Loop *ExitL = LI.getLoopFor(ExitBB)) { in buildClonedLoops()
1511 BasicBlock *ExitBB = OrderedClonedExitsInLoops.pop_back_val(); in buildClonedLoops() local
1512 Loop *ExitL = ExitLoopMap.lookup(ExitBB); in buildClonedLoops()
1516 Worklist.push_back(ExitBB); in buildClonedLoops()
1830 for (auto *ExitBB : ExitBlocks) in rebuildLoopAfterUnswitch() local
1831 if (Loop *ExitL = LI.getLoopFor(ExitBB)) { in rebuildLoopAfterUnswitch()
1833 ExitsInLoops.push_back(ExitBB); in rebuildLoopAfterUnswitch()
1910 BasicBlock *ExitBB = ExitsInLoops.pop_back_val(); in rebuildLoopAfterUnswitch() local
1911 Loop &ExitL = *LI.getLoopFor(ExitBB); in rebuildLoopAfterUnswitch()
1923 Worklist.push_back(ExitBB); in rebuildLoopAfterUnswitch()
2132 for (auto *ExitBB : ExitBlocks) { in unswitchNontrivialInvariants() local
2133 Loop *NewOuterExitL = LI.getLoopFor(ExitBB); in unswitchNontrivialInvariants()
2835 for (auto *ExitBB : ExitBlocks) { in unswitchBestCondition() local
2836 auto *I = ExitBB->getFirstNonPHI(); in unswitchBestCondition()