Lines Matching refs:BasicBlock
72 BasicBlock *PrologExit, in ConnectProlog()
73 BasicBlock *OriginalLoopLatchExit, in ConnectProlog()
74 BasicBlock *PreHeader, BasicBlock *NewPreHeader, in ConnectProlog()
89 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
91 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog()
98 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog()
142 SmallVector<BasicBlock *, 4> PrologExitPreds; in ConnectProlog()
145 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog()
167 SmallVector<BasicBlock *, 4> Preds(predecessors(OriginalLoopLatchExit)); in ConnectProlog()
192 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit, in ConnectEpilog()
193 BasicBlock *Exit, BasicBlock *PreHeader, in ConnectEpilog()
194 BasicBlock *EpilogPreHeader, BasicBlock *NewPreHeader, in ConnectEpilog()
198 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog()
200 BasicBlock *EpilogLatch = cast<BasicBlock>(VMap[Latch]); in ConnectEpilog()
264 for (BasicBlock *Succ : successors(Latch)) { in ConnectEpilog()
290 SmallVector<BasicBlock*, 4> Preds(predecessors(Exit)); in ConnectEpilog()
302 SmallVector<BasicBlock*, 4> NewExitPreds{Latch}; in ConnectEpilog()
316 BasicBlock *InsertTop, in CloneLoopBlocks()
317 BasicBlock *InsertBot, BasicBlock *Preheader, in CloneLoopBlocks()
318 std::vector<BasicBlock *> &NewBlocks, LoopBlocksDFS &LoopBlocks, in CloneLoopBlocks()
321 BasicBlock *Header = L->getHeader(); in CloneLoopBlocks()
322 BasicBlock *Latch = L->getLoopLatch(); in CloneLoopBlocks()
333 BasicBlock *NewBB = CloneBasicBlock(*BB, VMap, "." + suffix, F); in CloneLoopBlocks()
351 BasicBlock *IDomBB = DT->getNode(*BB)->getIDom()->getBlock(); in CloneLoopBlocks()
352 DT->addNewBlock(NewBB, cast<BasicBlock>(VMap[IDomBB])); in CloneLoopBlocks()
362 BasicBlock *FirstLoopBB = cast<BasicBlock>(VMap[Header]); in CloneLoopBlocks()
381 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) { in CloneLoopBlocks()
385 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in CloneLoopBlocks()
420 Loop *L, SmallVectorImpl<BasicBlock *> &OtherExits, BasicBlock *LatchExit, in canProfitablyUnrollMultiExitLoop()
442 SmallVector<BasicBlock*, 4> ExitingBlocks; in canProfitablyUnrollMultiExitLoop()
481 BasicBlock *Header = RemainderLoop->getHeader(); in updateLatchBranchWeightsForRemainderLoop()
482 BasicBlock *Latch = RemainderLoop->getLoopLatch(); in updateLatchBranchWeightsForRemainderLoop()
579 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopRemainder()
580 BasicBlock *Header = L->getHeader(); in UnrollRuntimeLoopRemainder()
593 BasicBlock *LatchExit = LatchBR->getSuccessor(ExitIndex); in UnrollRuntimeLoopRemainder()
605 SmallVector<BasicBlock *, 4> OtherExits; in UnrollRuntimeLoopRemainder()
651 BasicBlock *PreHeader = L->getLoopPreheader(); in UnrollRuntimeLoopRemainder()
679 BasicBlock *NewPreHeader; in UnrollRuntimeLoopRemainder()
680 BasicBlock *NewExit = nullptr; in UnrollRuntimeLoopRemainder()
681 BasicBlock *PrologExit = nullptr; in UnrollRuntimeLoopRemainder()
682 BasicBlock *EpilogPreHeader = nullptr; in UnrollRuntimeLoopRemainder()
683 BasicBlock *PrologPreHeader = nullptr; in UnrollRuntimeLoopRemainder()
774 BasicBlock *RemainderLoop = UseEpilogRemainder ? NewExit : PrologPreHeader; in UnrollRuntimeLoopRemainder()
775 BasicBlock *UnrollingLoop = UseEpilogRemainder ? NewPreHeader : PrologExit; in UnrollRuntimeLoopRemainder()
796 std::vector<BasicBlock *> NewBlocks; in UnrollRuntimeLoopRemainder()
802 BasicBlock *InsertBot = UseEpilogRemainder ? LatchExit : PrologExit; in UnrollRuntimeLoopRemainder()
803 BasicBlock *InsertTop = UseEpilogRemainder ? EpilogPreHeader : PrologPreHeader; in UnrollRuntimeLoopRemainder()
845 PN.addIncoming(V, cast<BasicBlock>(VMap[PredBB])); in UnrollRuntimeLoopRemainder()
849 for (BasicBlock *SuccBB : successors(BB)) { in UnrollRuntimeLoopRemainder()
863 SmallVector<BasicBlock *, 16> ChildrenToUpdate; in UnrollRuntimeLoopRemainder()
897 for (BasicBlock *BB : NewBlocks) { in UnrollRuntimeLoopRemainder()
951 BasicBlock *RemainderLatch = remainderLoop->getLoopLatch(); in UnrollRuntimeLoopRemainder()
953 SmallVector<BasicBlock*> RemainderBlocks(remainderLoop->getBlocks().begin(), in UnrollRuntimeLoopRemainder()
961 for (BasicBlock *BB : RemainderBlocks) { in UnrollRuntimeLoopRemainder()