Lines Matching refs:BasicBlock
51 void llvm::DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU) { in DeleteDeadBlock()
52 SmallVector<BasicBlock *, 1> BBs = {BB}; in DeleteDeadBlock()
56 void llvm::DeleteDeadBlocks(SmallVectorImpl <BasicBlock *> &BBs, in DeleteDeadBlocks()
60 SmallPtrSet<BasicBlock *, 4> Dead(BBs.begin(), BBs.end()); in DeleteDeadBlocks()
63 for (BasicBlock *Pred : predecessors(BB)) in DeleteDeadBlocks()
71 for (BasicBlock *Succ : successors(BB)) { in DeleteDeadBlocks()
98 for (BasicBlock *BB : BBs) in DeleteDeadBlocks()
105 void llvm::FoldSingleEntryPHINodes(BasicBlock *BB, in FoldSingleEntryPHINodes()
122 bool llvm::DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI) { in DeleteDeadPHIs()
137 bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, DomTreeUpdater *DTU, in MergeBlockIntoPredecessor()
144 BasicBlock *PredBB = BB->getUniquePredecessor(); in MergeBlockIntoPredecessor()
240 void llvm::ReplaceInstWithValue(BasicBlock::InstListType &BIL, in ReplaceInstWithValue()
241 BasicBlock::iterator &BI, Value *V) { in ReplaceInstWithValue()
254 void llvm::ReplaceInstWithInst(BasicBlock::InstListType &BIL, in ReplaceInstWithInst()
255 BasicBlock::iterator &BI, Instruction *I) { in ReplaceInstWithInst()
265 BasicBlock::iterator New = BIL.insert(BI, I); in ReplaceInstWithInst()
275 BasicBlock::iterator BI(From); in ReplaceInstWithInst()
279 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, in SplitEdge()
292 if (BasicBlock *SP = Succ->getSinglePredecessor()) { in SplitEdge()
311 for (BasicBlock &BB : F) { in SplitAllCriticalEdges()
321 BasicBlock *llvm::SplitBlock(BasicBlock *Old, Instruction *SplitPt, in SplitBlock()
324 BasicBlock::iterator SplitIt = SplitPt->getIterator(); in SplitBlock()
327 BasicBlock *New = Old->splitBasicBlock(SplitIt, Old->getName()+".split"); in SplitBlock()
354 static void UpdateAnalysisInformation(BasicBlock *OldBB, BasicBlock *NewBB, in UpdateAnalysisInformation()
355 ArrayRef<BasicBlock *> Preds, in UpdateAnalysisInformation()
385 for (BasicBlock *Pred : Preds) { in UpdateAnalysisInformation()
419 for (BasicBlock *Pred : Preds) { in UpdateAnalysisInformation()
445 static void UpdatePHINodes(BasicBlock *OrigBB, BasicBlock *NewBB, in UpdatePHINodes()
446 ArrayRef<BasicBlock *> Preds, BranchInst *BI, in UpdatePHINodes()
449 SmallPtrSet<BasicBlock *, 16> PredSet(Preds.begin(), Preds.end()); in UpdatePHINodes()
450 for (BasicBlock::iterator I = OrigBB->begin(); isa<PHINode>(I); ) { in UpdatePHINodes()
500 BasicBlock *IncomingBB = PN->getIncomingBlock(i); in UpdatePHINodes()
511 BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB, in SplitBlockPredecessors()
512 ArrayRef<BasicBlock *> Preds, in SplitBlockPredecessors()
523 SmallVector<BasicBlock*, 2> NewBBs; in SplitBlockPredecessors()
532 BasicBlock *NewBB = BasicBlock::Create( in SplitBlockPredecessors()
555 for (BasicBlock::iterator I = BB->begin(); isa<PHINode>(I); ++I) in SplitBlockPredecessors()
572 void llvm::SplitLandingPadPredecessors(BasicBlock *OrigBB, in SplitLandingPadPredecessors()
573 ArrayRef<BasicBlock *> Preds, in SplitLandingPadPredecessors()
575 SmallVectorImpl<BasicBlock *> &NewBBs, in SplitLandingPadPredecessors()
583 BasicBlock *NewBB1 = BasicBlock::Create(OrigBB->getContext(), in SplitLandingPadPredecessors()
610 SmallVector<BasicBlock*, 8> NewBB2Preds; in SplitLandingPadPredecessors()
613 BasicBlock *Pred = *i++; in SplitLandingPadPredecessors()
621 BasicBlock *NewBB2 = nullptr; in SplitLandingPadPredecessors()
624 NewBB2 = BasicBlock::Create(OrigBB->getContext(), in SplitLandingPadPredecessors()
634 for (BasicBlock *NewBB2Pred : NewBB2Preds) in SplitLandingPadPredecessors()
676 ReturnInst *llvm::FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB, in FoldReturnIntoUncondBranch()
677 BasicBlock *Pred, in FoldReturnIntoUncondBranch()
724 BasicBlock *Head = SplitBefore->getParent(); in SplitBlockAndInsertIfThen()
725 BasicBlock *Tail = Head->splitBasicBlock(SplitBefore->getIterator()); in SplitBlockAndInsertIfThen()
728 BasicBlock *ThenBlock = BasicBlock::Create(C, "", Head->getParent(), Tail); in SplitBlockAndInsertIfThen()
767 BasicBlock *Head = SplitBefore->getParent(); in SplitBlockAndInsertIfThenElse()
768 BasicBlock *Tail = Head->splitBasicBlock(SplitBefore->getIterator()); in SplitBlockAndInsertIfThenElse()
771 BasicBlock *ThenBlock = BasicBlock::Create(C, "", Head->getParent(), Tail); in SplitBlockAndInsertIfThenElse()
772 BasicBlock *ElseBlock = BasicBlock::Create(C, "", Head->getParent(), Tail); in SplitBlockAndInsertIfThenElse()
783 Value *llvm::GetIfCondition(BasicBlock *BB, BasicBlock *&IfTrue, in GetIfCondition()
784 BasicBlock *&IfFalse) { in GetIfCondition()
786 BasicBlock *Pred1 = nullptr; in GetIfCondition()
787 BasicBlock *Pred2 = nullptr; in GetIfCondition()
856 BasicBlock *CommonPred = Pred1->getSinglePredecessor(); in GetIfCondition()