Lines Matching refs:BasicBlock
68 BasicBlock *PrologExit, in ConnectProlog()
69 BasicBlock *OriginalLoopLatchExit, in ConnectProlog()
70 BasicBlock *PreHeader, BasicBlock *NewPreHeader, in ConnectProlog()
84 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
86 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog()
93 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog()
137 SmallVector<BasicBlock *, 4> PrologExitPreds; in ConnectProlog()
140 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog()
162 SmallVector<BasicBlock *, 4> Preds(predecessors(OriginalLoopLatchExit)); in ConnectProlog()
184 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit, in ConnectEpilog()
185 BasicBlock *Exit, BasicBlock *PreHeader, in ConnectEpilog()
186 BasicBlock *EpilogPreHeader, BasicBlock *NewPreHeader, in ConnectEpilog()
189 BasicBlock *Latch = L->getLoopLatch(); in ConnectEpilog()
191 BasicBlock *EpilogLatch = cast<BasicBlock>(VMap[Latch]); in ConnectEpilog()
251 for (BasicBlock *Succ : successors(Latch)) { in ConnectEpilog()
277 SmallVector<BasicBlock*, 4> Preds(predecessors(Exit)); in ConnectEpilog()
287 SmallVector<BasicBlock*, 4> NewExitPreds{Latch}; in ConnectEpilog()
303 BasicBlock *InsertTop, in CloneLoopBlocks()
304 BasicBlock *InsertBot, BasicBlock *Preheader, in CloneLoopBlocks()
305 std::vector<BasicBlock *> &NewBlocks, LoopBlocksDFS &LoopBlocks, in CloneLoopBlocks()
308 BasicBlock *Header = L->getHeader(); in CloneLoopBlocks()
309 BasicBlock *Latch = L->getLoopLatch(); in CloneLoopBlocks()
322 BasicBlock *NewBB = CloneBasicBlock(*BB, VMap, "." + suffix, F); in CloneLoopBlocks()
344 BasicBlock *IDomBB = DT->getNode(*BB)->getIDom()->getBlock(); in CloneLoopBlocks()
345 DT->addNewBlock(NewBB, cast<BasicBlock>(VMap[IDomBB])); in CloneLoopBlocks()
353 BasicBlock *FirstLoopBB = cast<BasicBlock>(VMap[Header]); in CloneLoopBlocks()
377 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) { in CloneLoopBlocks()
386 cast<BasicBlock>(VMap[Header])->getInstList().erase(NewPHI); in CloneLoopBlocks()
391 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in CloneLoopBlocks()
430 canSafelyUnrollMultiExitLoop(Loop *L, SmallVectorImpl<BasicBlock *> &OtherExits, in canSafelyUnrollMultiExitLoop()
431 BasicBlock *LatchExit, bool PreserveLCSSA, in canSafelyUnrollMultiExitLoop()
440 SmallVector<BasicBlock *, 4> Exits; in canSafelyUnrollMultiExitLoop()
470 Loop *L, SmallVectorImpl<BasicBlock *> &OtherExits, BasicBlock *LatchExit, in canProfitablyUnrollMultiExitLoop()
474 SmallVector<BasicBlock *, 8> OtherExitsDummyCheck; in canProfitablyUnrollMultiExitLoop()
499 SmallVector<BasicBlock*, 4> ExitingBlocks; in canProfitablyUnrollMultiExitLoop()
573 BasicBlock *Latch = L->getLoopLatch(); in UnrollRuntimeLoopRemainder()
574 BasicBlock *Header = L->getHeader(); in UnrollRuntimeLoopRemainder()
587 BasicBlock *LatchExit = LatchBR->getSuccessor(ExitIndex); in UnrollRuntimeLoopRemainder()
599 SmallVector<BasicBlock *, 4> OtherExits; in UnrollRuntimeLoopRemainder()
642 BasicBlock *PreHeader = L->getLoopPreheader(); in UnrollRuntimeLoopRemainder()
669 BasicBlock *NewPreHeader; in UnrollRuntimeLoopRemainder()
670 BasicBlock *NewExit = nullptr; in UnrollRuntimeLoopRemainder()
671 BasicBlock *PrologExit = nullptr; in UnrollRuntimeLoopRemainder()
672 BasicBlock *EpilogPreHeader = nullptr; in UnrollRuntimeLoopRemainder()
673 BasicBlock *PrologPreHeader = nullptr; in UnrollRuntimeLoopRemainder()
681 SmallVector<BasicBlock*, 4> Preds(predecessors(LatchExit)); in UnrollRuntimeLoopRemainder()
760 BasicBlock *RemainderLoop = UseEpilogRemainder ? NewExit : PrologPreHeader; in UnrollRuntimeLoopRemainder()
761 BasicBlock *UnrollingLoop = UseEpilogRemainder ? NewPreHeader : PrologExit; in UnrollRuntimeLoopRemainder()
782 std::vector<BasicBlock *> NewBlocks; in UnrollRuntimeLoopRemainder()
792 BasicBlock *InsertBot = UseEpilogRemainder ? LatchExit : PrologExit; in UnrollRuntimeLoopRemainder()
793 BasicBlock *InsertTop = UseEpilogRemainder ? EpilogPreHeader : PrologPreHeader; in UnrollRuntimeLoopRemainder()
832 cast<BasicBlock>(VMap[Phi->getIncomingBlock(i)])); in UnrollRuntimeLoopRemainder()
836 for (BasicBlock *SuccBB : successors(BB)) { in UnrollRuntimeLoopRemainder()
838 [SuccBB](BasicBlock *EB) { return EB == SuccBB; }) || in UnrollRuntimeLoopRemainder()
852 SmallVector<BasicBlock *, 16> ChildrenToUpdate; in UnrollRuntimeLoopRemainder()
886 for (BasicBlock *BB : NewBlocks) { in UnrollRuntimeLoopRemainder()