reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
175 if (BB->hasAddressTaken()) 179 BasicBlock *PredBB = BB->getUniquePredecessor(); 183 if (PredBB == BB) return false; 189 if (!PredecessorWithTwoSuccessors && PredBB->getUniqueSuccessor() != BB) 200 BranchInst *BB_JmpI = dyn_cast<BranchInst>(BB->getTerminator()); 204 FallThruPath = PredBB_BI->getSuccessor(0) == BB ? 0 : 1; 208 for (PHINode &PN : BB->phis()) 213 LLVM_DEBUG(dbgs() << "Merging: " << BB->getName() << " into " 218 if (isa<PHINode>(BB->front())) { 219 for (PHINode &PN : BB->phis()) 221 cast<PHINode>(PN.getIncomingValue(0))->getParent() != BB) 223 FoldSingleEntryPHINodes(BB, MemDep); 230 Updates.reserve(1 + (2 * succ_size(BB))); 237 for (auto I = succ_begin(BB), E = succ_end(BB); I != E; ++I) 237 for (auto I = succ_begin(BB), E = succ_end(BB); I != E; ++I) 241 for (auto I = succ_begin(BB), E = succ_end(BB); I != E; ++I) 241 for (auto I = succ_begin(BB), E = succ_end(BB); I != E; ++I) 242 Updates.push_back({DominatorTree::Delete, BB, *I}); 243 Updates.push_back({DominatorTree::Delete, PredBB, BB}); 247 Instruction *STI = BB->getTerminator(); 248 Instruction *Start = &*BB->begin(); 255 PredBB->getInstList().splice(PTI->getIterator(), BB->getInstList(), 256 BB->begin(), STI->getIterator()); 259 MSSAU->moveAllAfterMergeBlocks(BB, PredBB, Start); 263 BB->replaceAllUsesWith(PredBB); 267 BB->getInstList().pop_back(); 276 PredBB->getInstList().splice(PredBB->end(), BB->getInstList()); 279 new UnreachableInst(BB->getContext(), BB); 279 new UnreachableInst(BB->getContext(), BB); 298 PredBB->takeName(BB); 301 LI->removeBlock(BB); 308 assert(BB->getInstList().size() == 1 && 309 isa<UnreachableInst>(BB->getTerminator()) && 313 DTU->deleteBB(BB); 315 BB->eraseFromParent(); // Nuke BB if DTU is nullptr.