reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Utils/BreakCriticalEdges.cpp
  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);