reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
150 if (DestBB->isEHPad()) return nullptr; 157 isa<UnreachableInst>(DestBB->getFirstNonPHIOrDbgOrLifetime())) 162 TIBB->getName() + "." + DestBB->getName() + "_crit_edge"); 164 BranchInst *NewBI = BranchInst::Create(DestBB, NewBB); 179 for (BasicBlock::iterator I = DestBB->begin(); isa<PHINode>(I); ++I) { 201 if (TI->getSuccessor(i) != DestBB) continue; 204 DestBB->removePredecessor(TIBB, Options.KeepOneInputPHIs); 218 DestBB, NewBB, {TIBB}, Options.MergeIdenticalEdges); 235 Updates.push_back({DominatorTree::Insert, NewBB, DestBB}); 236 if (llvm::find(successors(TIBB), DestBB) == succ_end(TIBB)) 237 Updates.push_back({DominatorTree::Delete, TIBB, DestBB}); 250 if (Loop *DestLoop = LI->getLoopFor(DestBB)) { 265 assert(DestLoop->getHeader() == DestBB && 274 if (!TIL->contains(DestBB)) { 280 createPHIsForSplitLoopExit(TIBB, NewBB, DestBB); 293 for (pred_iterator I = pred_begin(DestBB), E = pred_end(DestBB); I != E; 293 for (pred_iterator I = pred_begin(DestBB), E = pred_end(DestBB); I != E; 306 assert(!DestBB->isEHPad() && "We don't split edges to EH pads!"); 308 DestBB, LoopPreds, "split", DT, LI, MSSAU, Options.PreserveLCSSA); 310 createPHIsForSplitLoopExit(LoopPreds, NewExitBB, DestBB);