Lines Matching refs:BB
65 BasicBlock *BB = I->getParent(); in ChangeToUnreachable() local
68 for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB); SI != SE; ++SI) in ChangeToUnreachable()
69 (*SI)->removePredecessor(BB); in ChangeToUnreachable()
75 Intrinsic::getDeclaration(BB->getParent()->getParent(), Intrinsic::trap); in ChangeToUnreachable()
82 BasicBlock::iterator BBI = I, BBE = BB->end(); in ChangeToUnreachable()
86 BB->getInstList().erase(BBI++); in ChangeToUnreachable()
92 BasicBlock *BB = II->getParent(); in ChangeToCall() local
105 II->getUnwindDest()->removePredecessor(BB); in ChangeToCall()
106 BB->getInstList().erase(II); in ChangeToCall()
109 static bool MarkAliveBlocks(BasicBlock *BB, in MarkAliveBlocks() argument
113 Worklist.push_back(BB); in MarkAliveBlocks()
116 BB = Worklist.pop_back_val(); in MarkAliveBlocks()
118 if (!Reachable.insert(BB)) in MarkAliveBlocks()
124 for (BasicBlock::iterator BBI = BB->begin(), E = BB->end(); BBI != E;++BBI){ in MarkAliveBlocks()
160 if (InvokeInst *II = dyn_cast<InvokeInst>(BB->getTerminator())) in MarkAliveBlocks()
166 Changed |= ConstantFoldTerminator(BB, true); in MarkAliveBlocks()
167 for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB); SI != SE; ++SI) in MarkAliveBlocks()
189 for (Function::iterator BB = ++F.begin(), E = F.end(); BB != E; ++BB) { in RemoveUnreachableBlocksFromFn() local
190 if (Reachable.count(BB)) in RemoveUnreachableBlocksFromFn()
193 for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB); SI != SE; ++SI) in RemoveUnreachableBlocksFromFn()
195 (*SI)->removePredecessor(BB); in RemoveUnreachableBlocksFromFn()
196 BB->dropAllReferences(); in RemoveUnreachableBlocksFromFn()
217 BasicBlock &BB = *BBI++; in MergeEmptyReturnBlocks() local
220 ReturnInst *Ret = dyn_cast<ReturnInst>(BB.getTerminator()); in MergeEmptyReturnBlocks()
225 if (Ret != &BB.front()) { in MergeEmptyReturnBlocks()
230 while (isa<DbgInfoIntrinsic>(I) && I != BB.begin()) in MergeEmptyReturnBlocks()
233 (!isa<PHINode>(I) || I != BB.begin() || in MergeEmptyReturnBlocks()
241 RetBlock = &BB; in MergeEmptyReturnBlocks()
254 BB.replaceAllUsesWith(RetBlock); in MergeEmptyReturnBlocks()
255 BB.eraseFromParent(); in MergeEmptyReturnBlocks()
276 RetBlockPHI->addIncoming(Ret->getOperand(0), &BB); in MergeEmptyReturnBlocks()
277 BB.getTerminator()->eraseFromParent(); in MergeEmptyReturnBlocks()
278 BranchInst::Create(RetBlock, &BB); in MergeEmptyReturnBlocks()