Lines Matching refs:BasicBlock
103 BasicBlock *RewriteLoopExitBlock(Loop *L, BasicBlock *Exit);
105 BasicBlock *Preheader);
106 BasicBlock *InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader);
110 static void PlaceSplitBlockCarefully(BasicBlock *NewBB,
111 SmallVectorImpl<BasicBlock*> &SplitPreds,
157 SmallPtrSet<BasicBlock*, 4> BadPreds; in ProcessLoop()
160 BasicBlock *P = *PI; in ProcessLoop()
166 for (SmallPtrSet<BasicBlock*, 4>::iterator I = BadPreds.begin(), in ProcessLoop()
187 SmallVector<BasicBlock*, 8> ExitingBlocks; in ProcessLoop()
189 for (SmallVectorImpl<BasicBlock *>::iterator I = ExitingBlocks.begin(), in ProcessLoop()
210 BasicBlock *Preheader = L->getLoopPreheader(); in ProcessLoop()
223 SmallVector<BasicBlock*, 8> ExitBlocks; in ProcessLoop()
226 SmallSetVector<BasicBlock *, 8> ExitBlockSet(ExitBlocks.begin(), in ProcessLoop()
228 for (SmallSetVector<BasicBlock *, 8>::iterator I = ExitBlockSet.begin(), in ProcessLoop()
230 BasicBlock *ExitBlock = *I; in ProcessLoop()
246 BasicBlock *LoopLatch = L->getLoopLatch(); in ProcessLoop()
275 for (BasicBlock::iterator I = L->getHeader()->begin(); in ProcessLoop()
302 BasicBlock *ExitingBlock = ExitingBlocks[i]; in ProcessLoop()
312 for (BasicBlock::iterator I = ExitingBlock->begin(); &*I != BI; ) { in ProcessLoop()
350 const std::vector<DomTreeNodeBase<BasicBlock> *> &Children = in ProcessLoop()
371 BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, Pass *PP) { in InsertPreheaderForLoop()
372 BasicBlock *Header = L->getHeader(); in InsertPreheaderForLoop()
375 SmallVector<BasicBlock*, 8> OutsideBlocks; in InsertPreheaderForLoop()
378 BasicBlock *P = *PI; in InsertPreheaderForLoop()
391 BasicBlock *PreheaderBB; in InsertPreheaderForLoop()
396 SmallVector<BasicBlock*, 2> NewBBs; in InsertPreheaderForLoop()
417 BasicBlock *LoopSimplify::RewriteLoopExitBlock(Loop *L, BasicBlock *Exit) { in RewriteLoopExitBlock()
418 SmallVector<BasicBlock*, 8> LoopBlocks; in RewriteLoopExitBlock()
420 BasicBlock *P = *I; in RewriteLoopExitBlock()
430 BasicBlock *NewExitBB = 0; in RewriteLoopExitBlock()
433 SmallVector<BasicBlock*, 2> NewBBs; in RewriteLoopExitBlock()
434 SplitLandingPadPredecessors(Exit, ArrayRef<BasicBlock*>(&LoopBlocks[0], in RewriteLoopExitBlock()
451 static void AddBlockAndPredsToSet(BasicBlock *InputBB, BasicBlock *StopBlock, in AddBlockAndPredsToSet()
452 std::set<BasicBlock*> &Blocks) { in AddBlockAndPredsToSet()
453 std::vector<BasicBlock *> WorkList; in AddBlockAndPredsToSet()
456 BasicBlock *BB = WorkList.back(); WorkList.pop_back(); in AddBlockAndPredsToSet()
461 BasicBlock *WBB = *I; in AddBlockAndPredsToSet()
471 for (BasicBlock::iterator I = L->getHeader()->begin(); isa<PHINode>(I); ) { in FindPHIToPartitionLoops()
495 void PlaceSplitBlockCarefully(BasicBlock *NewBB, in PlaceSplitBlockCarefully()
496 SmallVectorImpl<BasicBlock*> &SplitPreds, in PlaceSplitBlockCarefully()
511 BasicBlock *FoundBB = 0; in PlaceSplitBlockCarefully()
548 BasicBlock *Preheader) { in SeparateNestedLoop()
563 SmallVector<BasicBlock*, 8> OuterLoopPreds; in SeparateNestedLoop()
581 BasicBlock *Header = L->getHeader(); in SeparateNestedLoop()
582 BasicBlock *NewBB = in SeparateNestedLoop()
614 std::set<BasicBlock*> BlocksInL; in SeparateNestedLoop()
616 BasicBlock *P = *PI; in SeparateNestedLoop()
633 BasicBlock *BB = L->getBlocks()[i]; in SeparateNestedLoop()
653 BasicBlock *
654 LoopSimplify::InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader) { in InsertUniqueBackedgeBlock()
658 BasicBlock *Header = L->getHeader(); in InsertUniqueBackedgeBlock()
669 std::vector<BasicBlock*> BackedgeBlocks; in InsertUniqueBackedgeBlock()
671 BasicBlock *P = *I; in InsertUniqueBackedgeBlock()
681 BasicBlock *BEBlock = BasicBlock::Create(Header->getContext(), in InsertUniqueBackedgeBlock()
694 for (BasicBlock::iterator I = Header->begin(); isa<PHINode>(I); ++I) { in InsertUniqueBackedgeBlock()
706 BasicBlock *IBB = PN->getIncomingBlock(i); in InsertUniqueBackedgeBlock()
788 SmallVector<BasicBlock*, 8> ExitingBlocks; in verifyAnalysis()