Lines Matching refs:BasicBlock
29 #include "llvm/IR/BasicBlock.h"
83 BasicBlock *PrologExit,
84 BasicBlock *OriginalLoopLatchExit,
85 BasicBlock *PreHeader, BasicBlock *NewPreHeader,
100 BasicBlock *Latch = L->getLoopLatch();
102 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]);
109 for (BasicBlock *Succ : successors(Latch)) {
153 SmallVector<BasicBlock *, 4> PrologExitPreds;
156 for (BasicBlock *PredBB : predecessors(PrologExit))
178 SmallVector<BasicBlock *, 4> Preds(predecessors(OriginalLoopLatchExit));
210 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit,
211 BasicBlock *Exit, BasicBlock *PreHeader,
212 BasicBlock *EpilogPreHeader, BasicBlock *NewPreHeader,
216 BasicBlock *Latch = L->getLoopLatch();
218 BasicBlock *EpilogLatch = cast<BasicBlock>(VMap[Latch]);
282 for (BasicBlock *Succ : successors(Latch)) {
308 SmallVector<BasicBlock*, 4> Preds(predecessors(Exit));
326 SmallVector<BasicBlock*, 4> NewExitPreds{Latch};
340 BasicBlock *InsertTop,
341 BasicBlock *InsertBot, BasicBlock *Preheader,
342 std::vector<BasicBlock *> &NewBlocks,
346 BasicBlock *Header = L->getHeader();
347 BasicBlock *Latch = L->getLoopLatch();
358 BasicBlock *NewBB = CloneBasicBlock(*BB, VMap, "." + suffix, F);
376 BasicBlock *IDomBB = DT->getNode(*BB)->getIDom()->getBlock();
377 DT->addNewBlock(NewBB, cast<BasicBlock>(VMap[IDomBB]));
387 BasicBlock *FirstLoopBB = cast<BasicBlock>(VMap[Header]);
426 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) {
430 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]);
465 Loop *L, SmallVectorImpl<BasicBlock *> &OtherExits, BasicBlock *LatchExit,
487 SmallVector<BasicBlock*, 4> ExitingBlocks;
600 BasicBlock *Latch = L->getLoopLatch();
601 BasicBlock *Header = L->getHeader();
614 BasicBlock *LatchExit = LatchBR->getSuccessor(ExitIndex);
626 SmallVector<BasicBlock *, 4> OtherExits;
673 BasicBlock *PreHeader = L->getLoopPreheader();
701 BasicBlock *NewPreHeader;
702 BasicBlock *NewExit = nullptr;
703 BasicBlock *PrologExit = nullptr;
704 BasicBlock *EpilogPreHeader = nullptr;
705 BasicBlock *PrologPreHeader = nullptr;
796 BasicBlock *RemainderLoop = UseEpilogRemainder ? NewExit : PrologPreHeader;
797 BasicBlock *UnrollingLoop = UseEpilogRemainder ? NewPreHeader : PrologExit;
824 std::vector<BasicBlock *> NewBlocks;
830 BasicBlock *InsertBot = UseEpilogRemainder ? LatchExit : PrologExit;
831 BasicBlock *InsertTop = UseEpilogRemainder ? EpilogPreHeader : PrologPreHeader;
865 PN.addIncoming(V, cast<BasicBlock>(VMap[PredBB]));
869 for (BasicBlock *SuccBB : successors(BB)) {
883 SmallVector<BasicBlock *, 16> ChildrenToUpdate;
917 for (BasicBlock *BB : NewBlocks) {
974 BasicBlock *RemainderLatch = remainderLoop->getLoopLatch();
976 SmallVector<BasicBlock *> RemainderBlocks(remainderLoop->getBlocks());
983 for (BasicBlock *BB : RemainderBlocks) {