Lines Matching refs:BasicBlock
71 BasicBlock *PrologExit, in ConnectProlog()
72 BasicBlock *OriginalLoopLatchExit, in ConnectProlog()
73 BasicBlock *PreHeader, BasicBlock *NewPreHeader, in ConnectProlog()
87 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
89 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog()
96 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog()
139 SmallVector<BasicBlock *, 4> PrologExitPreds; in ConnectProlog()
142 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog()
164 SmallVector<BasicBlock *, 4> Preds(predecessors(OriginalLoopLatchExit)); in ConnectProlog()
186 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit, in ConnectEpilog()
187 BasicBlock *Exit, BasicBlock *PreHeader, in ConnectEpilog()
188 BasicBlock *EpilogPreHeader, BasicBlock *NewPreHeader, in ConnectEpilog()
191 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog()
193 BasicBlock *EpilogLatch = cast<BasicBlock>(VMap[Latch]); in ConnectEpilog()
253 for (BasicBlock *Succ : successors(Latch)) { in ConnectEpilog()
279 SmallVector<BasicBlock*, 4> Preds(predecessors(Exit)); in ConnectEpilog()
289 SmallVector<BasicBlock*, 4> NewExitPreds{Latch}; in ConnectEpilog()
305 BasicBlock *InsertTop, in CloneLoopBlocks()
306 BasicBlock *InsertBot, BasicBlock *Preheader, in CloneLoopBlocks()
307 std::vector<BasicBlock *> &NewBlocks, LoopBlocksDFS &LoopBlocks, in CloneLoopBlocks()
310 BasicBlock *Header = L->getHeader(); in CloneLoopBlocks()
311 BasicBlock *Latch = L->getLoopLatch(); in CloneLoopBlocks()
324 BasicBlock *NewBB = CloneBasicBlock(*BB, VMap, "." + suffix, F); in CloneLoopBlocks()
346 BasicBlock *IDomBB = DT->getNode(*BB)->getIDom()->getBlock(); in CloneLoopBlocks()
347 DT->addNewBlock(NewBB, cast<BasicBlock>(VMap[IDomBB])); in CloneLoopBlocks()
355 BasicBlock *FirstLoopBB = cast<BasicBlock>(VMap[Header]); in CloneLoopBlocks()
379 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) { in CloneLoopBlocks()
388 cast<BasicBlock>(VMap[Header])->getInstList().erase(NewPHI); in CloneLoopBlocks()
393 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in CloneLoopBlocks()
431 static bool canSafelyUnrollMultiExitLoop(Loop *L, BasicBlock *LatchExit, in canSafelyUnrollMultiExitLoop()
466 Loop *L, SmallVectorImpl<BasicBlock *> &OtherExits, BasicBlock *LatchExit, in canProfitablyUnrollMultiExitLoop()
494 SmallVector<BasicBlock*, 4> ExitingBlocks; in canProfitablyUnrollMultiExitLoop()
532 BasicBlock *Header = RemainderLoop->getHeader(); in updateLatchBranchWeightsForRemainderLoop()
533 BasicBlock *Latch = RemainderLoop->getLoopLatch(); in updateLatchBranchWeightsForRemainderLoop()
599 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopRemainder()
600 BasicBlock *Header = L->getHeader(); in UnrollRuntimeLoopRemainder()
613 BasicBlock *LatchExit = LatchBR->getSuccessor(ExitIndex); in UnrollRuntimeLoopRemainder()
625 SmallVector<BasicBlock *, 4> OtherExits; in UnrollRuntimeLoopRemainder()
669 BasicBlock *PreHeader = L->getLoopPreheader(); in UnrollRuntimeLoopRemainder()
697 BasicBlock *NewPreHeader; in UnrollRuntimeLoopRemainder()
698 BasicBlock *NewExit = nullptr; in UnrollRuntimeLoopRemainder()
699 BasicBlock *PrologExit = nullptr; in UnrollRuntimeLoopRemainder()
700 BasicBlock *EpilogPreHeader = nullptr; in UnrollRuntimeLoopRemainder()
701 BasicBlock *PrologPreHeader = nullptr; in UnrollRuntimeLoopRemainder()
709 SmallVector<BasicBlock*, 4> Preds(predecessors(LatchExit)); in UnrollRuntimeLoopRemainder()
788 BasicBlock *RemainderLoop = UseEpilogRemainder ? NewExit : PrologPreHeader; in UnrollRuntimeLoopRemainder()
789 BasicBlock *UnrollingLoop = UseEpilogRemainder ? NewPreHeader : PrologExit; in UnrollRuntimeLoopRemainder()
810 std::vector<BasicBlock *> NewBlocks; in UnrollRuntimeLoopRemainder()
820 BasicBlock *InsertBot = UseEpilogRemainder ? LatchExit : PrologExit; in UnrollRuntimeLoopRemainder()
821 BasicBlock *InsertTop = UseEpilogRemainder ? EpilogPreHeader : PrologPreHeader; in UnrollRuntimeLoopRemainder()
865 cast<BasicBlock>(VMap[Phi->getIncomingBlock(i)])); in UnrollRuntimeLoopRemainder()
869 for (BasicBlock *SuccBB : successors(BB)) { in UnrollRuntimeLoopRemainder()
871 [SuccBB](BasicBlock *EB) { return EB == SuccBB; }) || in UnrollRuntimeLoopRemainder()
885 SmallVector<BasicBlock *, 16> ChildrenToUpdate; in UnrollRuntimeLoopRemainder()
919 for (BasicBlock *BB : NewBlocks) { in UnrollRuntimeLoopRemainder()