reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
6044 assert(BB && BB->getParent() && "Block not embedded in function!"); 6044 assert(BB && BB->getParent() && "Block not embedded in function!"); 6045 assert(BB->getTerminator() && "Degenerate basic block encountered!"); 6049 if ((pred_empty(BB) && BB != &BB->getParent()->getEntryBlock()) || 6049 if ((pred_empty(BB) && BB != &BB->getParent()->getEntryBlock()) || 6049 if ((pred_empty(BB) && BB != &BB->getParent()->getEntryBlock()) || 6050 BB->getSinglePredecessor() == BB) { 6050 BB->getSinglePredecessor() == BB) { 6051 LLVM_DEBUG(dbgs() << "Removing BB: \n" << *BB); 6052 DeleteDeadBlock(BB); 6058 Changed |= ConstantFoldTerminator(BB, true); 6061 Changed |= EliminateDuplicatePHINodes(BB); 6064 Changed |= removeUndefIntroducingPredecessor(BB); 6069 if (MergeBlockIntoPredecessor(BB)) 6073 Changed |= SinkCommonCodeFromPredecessors(BB); 6075 IRBuilder<> Builder(BB); 6079 if (auto *PN = dyn_cast<PHINode>(BB->begin())) 6083 Builder.SetInsertPoint(BB->getTerminator()); 6084 if (auto *BI = dyn_cast<BranchInst>(BB->getTerminator())) { 6092 } else if (auto *RI = dyn_cast<ReturnInst>(BB->getTerminator())) { 6095 } else if (auto *RI = dyn_cast<ResumeInst>(BB->getTerminator())) { 6098 } else if (auto *RI = dyn_cast<CleanupReturnInst>(BB->getTerminator())) { 6101 } else if (auto *SI = dyn_cast<SwitchInst>(BB->getTerminator())) { 6104 } else if (auto *UI = dyn_cast<UnreachableInst>(BB->getTerminator())) { 6107 } else if (auto *IBI = dyn_cast<IndirectBrInst>(BB->getTerminator())) {