Lines Matching refs:BasicBlock
74 static void placeSplitBlockCarefully(BasicBlock *NewBB, in placeSplitBlockCarefully()
75 SmallVectorImpl<BasicBlock *> &SplitPreds, in placeSplitBlockCarefully()
90 BasicBlock *FoundBB = nullptr; in placeSplitBlockCarefully()
112 BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, Pass *PP) { in InsertPreheaderForLoop()
113 BasicBlock *Header = L->getHeader(); in InsertPreheaderForLoop()
116 SmallVector<BasicBlock*, 8> OutsideBlocks; in InsertPreheaderForLoop()
119 BasicBlock *P = *PI; in InsertPreheaderForLoop()
132 BasicBlock *PreheaderBB; in InsertPreheaderForLoop()
137 SmallVector<BasicBlock*, 2> NewBBs; in InsertPreheaderForLoop()
159 static BasicBlock *rewriteLoopExitBlock(Loop *L, BasicBlock *Exit, Pass *PP) { in rewriteLoopExitBlock()
160 SmallVector<BasicBlock*, 8> LoopBlocks; in rewriteLoopExitBlock()
162 BasicBlock *P = *I; in rewriteLoopExitBlock()
172 BasicBlock *NewExitBB = nullptr; in rewriteLoopExitBlock()
175 SmallVector<BasicBlock*, 2> NewBBs; in rewriteLoopExitBlock()
176 SplitLandingPadPredecessors(Exit, ArrayRef<BasicBlock*>(&LoopBlocks[0], in rewriteLoopExitBlock()
193 static void addBlockAndPredsToSet(BasicBlock *InputBB, BasicBlock *StopBlock, in addBlockAndPredsToSet()
194 std::set<BasicBlock*> &Blocks) { in addBlockAndPredsToSet()
195 SmallVector<BasicBlock *, 8> Worklist; in addBlockAndPredsToSet()
198 BasicBlock *BB = Worklist.pop_back_val(); in addBlockAndPredsToSet()
203 BasicBlock *WBB = *I; in addBlockAndPredsToSet()
213 for (BasicBlock::iterator I = L->getHeader()->begin(); isa<PHINode>(I); ) { in findPHIToPartitionLoops()
253 static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader, in separateNestedLoop()
270 SmallVector<BasicBlock*, 8> OuterLoopPreds; in separateNestedLoop()
288 BasicBlock *Header = L->getHeader(); in separateNestedLoop()
289 BasicBlock *NewBB = in separateNestedLoop()
318 std::set<BasicBlock*> BlocksInL; in separateNestedLoop()
320 BasicBlock *P = *PI; in separateNestedLoop()
337 BasicBlock *BB = L->getBlocks()[i]; in separateNestedLoop()
356 static BasicBlock *insertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader, in insertUniqueBackedgeBlock()
362 BasicBlock *Header = L->getHeader(); in insertUniqueBackedgeBlock()
373 std::vector<BasicBlock*> BackedgeBlocks; in insertUniqueBackedgeBlock()
375 BasicBlock *P = *I; in insertUniqueBackedgeBlock()
385 BasicBlock *BEBlock = BasicBlock::Create(Header->getContext(), in insertUniqueBackedgeBlock()
398 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) { in insertUniqueBackedgeBlock()
410 BasicBlock *IBB = PN->getIncomingBlock(i); in insertUniqueBackedgeBlock()
490 SmallPtrSet<BasicBlock*, 4> BadPreds; in simplifyOneLoop()
493 BasicBlock *P = *PI; in simplifyOneLoop()
499 for (SmallPtrSet<BasicBlock*, 4>::iterator I = BadPreds.begin(), in simplifyOneLoop()
520 SmallVector<BasicBlock*, 8> ExitingBlocks; in simplifyOneLoop()
522 for (SmallVectorImpl<BasicBlock *>::iterator I = ExitingBlocks.begin(), in simplifyOneLoop()
543 BasicBlock *Preheader = L->getLoopPreheader(); in simplifyOneLoop()
556 SmallVector<BasicBlock*, 8> ExitBlocks; in simplifyOneLoop()
559 SmallSetVector<BasicBlock *, 8> ExitBlockSet(ExitBlocks.begin(), in simplifyOneLoop()
561 for (SmallSetVector<BasicBlock *, 8>::iterator I = ExitBlockSet.begin(), in simplifyOneLoop()
563 BasicBlock *ExitBlock = *I; in simplifyOneLoop()
579 BasicBlock *LoopLatch = L->getLoopLatch(); in simplifyOneLoop()
613 for (BasicBlock::iterator I = L->getHeader()->begin(); in simplifyOneLoop()
640 BasicBlock *ExitingBlock = ExitingBlocks[i]; in simplifyOneLoop()
651 for (BasicBlock::iterator I = ExitingBlock->begin(); &*I != BI; ) { in simplifyOneLoop()
696 const std::vector<DomTreeNodeBase<BasicBlock> *> &Children = in simplifyOneLoop()
835 SmallVector<BasicBlock*, 8> ExitingBlocks;