• Home
  • Raw
  • Download

Lines Matching refs:BasicBlock

35 void llvm::DeleteDeadBlock(BasicBlock *BB) {  in DeleteDeadBlock()
67 void llvm::FoldSingleEntryPHINodes(BasicBlock *BB, Pass *P) { in FoldSingleEntryPHINodes()
97 bool llvm::DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI) { in DeleteDeadPHIs()
101 for (BasicBlock::iterator I = BB->begin(); in DeleteDeadPHIs()
115 bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, Pass *P) { in MergeBlockIntoPredecessor()
120 BasicBlock *PredBB = BB->getUniquePredecessor(); in MergeBlockIntoPredecessor()
129 BasicBlock *OnlySucc = BB; in MergeBlockIntoPredecessor()
140 for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE; ++BI) { in MergeBlockIntoPredecessor()
196 void llvm::ReplaceInstWithValue(BasicBlock::InstListType &BIL, in ReplaceInstWithValue()
197 BasicBlock::iterator &BI, Value *V) { in ReplaceInstWithValue()
215 void llvm::ReplaceInstWithInst(BasicBlock::InstListType &BIL, in ReplaceInstWithInst()
216 BasicBlock::iterator &BI, Instruction *I) { in ReplaceInstWithInst()
221 BasicBlock::iterator New = BIL.insert(BI, I); in ReplaceInstWithInst()
234 BasicBlock::iterator BI(From); in ReplaceInstWithInst()
242 unsigned llvm::GetSuccessorNumber(BasicBlock *BB, BasicBlock *Succ) { in GetSuccessorNumber()
256 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, Pass *P) { in SplitEdge()
266 BasicBlock::iterator SplitPoint; in SplitEdge()
267 if (BasicBlock *SP = Succ->getSinglePredecessor()) { in SplitEdge()
287 BasicBlock *llvm::SplitBlock(BasicBlock *Old, Instruction *SplitPt, Pass *P) { in SplitBlock()
288 BasicBlock::iterator SplitIt = SplitPt; in SplitBlock()
291 BasicBlock *New = Old->splitBasicBlock(SplitIt, Old->getName()+".split"); in SplitBlock()
319 static void UpdateAnalysisInformation(BasicBlock *OldBB, BasicBlock *NewBB, in UpdateAnalysisInformation()
320 ArrayRef<BasicBlock *> Preds, in UpdateAnalysisInformation()
333 for (ArrayRef<BasicBlock*>::iterator in UpdateAnalysisInformation()
335 BasicBlock *Pred = *i; in UpdateAnalysisInformation()
367 for (ArrayRef<BasicBlock*>::iterator in UpdateAnalysisInformation()
369 BasicBlock *Pred = *i; in UpdateAnalysisInformation()
395 static void UpdatePHINodes(BasicBlock *OrigBB, BasicBlock *NewBB, in UpdatePHINodes()
396 ArrayRef<BasicBlock*> Preds, BranchInst *BI, in UpdatePHINodes()
400 for (BasicBlock::iterator I = OrigBB->begin(); isa<PHINode>(I); ) { in UpdatePHINodes()
454 BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB, in SplitBlockPredecessors()
455 ArrayRef<BasicBlock*> Preds, in SplitBlockPredecessors()
458 BasicBlock *NewBB = BasicBlock::Create(BB->getContext(), BB->getName()+Suffix, in SplitBlockPredecessors()
480 for (BasicBlock::iterator I = BB->begin(); isa<PHINode>(I); ++I) in SplitBlockPredecessors()
507 void llvm::SplitLandingPadPredecessors(BasicBlock *OrigBB, in SplitLandingPadPredecessors()
508 ArrayRef<BasicBlock*> Preds, in SplitLandingPadPredecessors()
511 SmallVectorImpl<BasicBlock*> &NewBBs) { in SplitLandingPadPredecessors()
516 BasicBlock *NewBB1 = BasicBlock::Create(OrigBB->getContext(), in SplitLandingPadPredecessors()
542 SmallVector<BasicBlock*, 8> NewBB2Preds; in SplitLandingPadPredecessors()
545 BasicBlock *Pred = *i++; in SplitLandingPadPredecessors()
553 BasicBlock *NewBB2 = 0; in SplitLandingPadPredecessors()
556 NewBB2 = BasicBlock::Create(OrigBB->getContext(), in SplitLandingPadPredecessors()
565 for (SmallVectorImpl<BasicBlock*>::iterator in SplitLandingPadPredecessors()
607 SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result) { in FindFunctionBackedges() argument
608 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges()
612 SmallPtrSet<const BasicBlock*, 8> Visited; in FindFunctionBackedges()
613 SmallVector<std::pair<const BasicBlock*, succ_const_iterator>, 8> VisitStack; in FindFunctionBackedges()
614 SmallPtrSet<const BasicBlock*, 8> InStack; in FindFunctionBackedges()
620 std::pair<const BasicBlock*, succ_const_iterator> &Top = VisitStack.back(); in FindFunctionBackedges()
621 const BasicBlock *ParentBB = Top.first; in FindFunctionBackedges()
652 ReturnInst *llvm::FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB, in FoldReturnIntoUncondBranch()
653 BasicBlock *Pred) { in FoldReturnIntoUncondBranch()
713 BasicBlock *Head = SplitBefore->getParent(); in SplitBlockAndInsertIfThen()
714 BasicBlock *Tail = Head->splitBasicBlock(SplitBefore); in SplitBlockAndInsertIfThen()
717 BasicBlock *ThenBlock = BasicBlock::Create(C, "", Head->getParent(), Tail); in SplitBlockAndInsertIfThen()