Lines Matching refs:Succ
70 for (BasicBlock *Succ : successors(BB)) { in detachDeadBlocks()
71 Succ->removePredecessor(BB, KeepOneInputPHIs); in detachDeadBlocks()
72 if (Updates && UniqueSuccessors.insert(Succ).second) in detachDeadBlocks()
73 Updates->push_back({DominatorTree::Delete, BB, Succ}); in detachDeadBlocks()
750 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, in SplitEdge() argument
753 unsigned SuccNum = GetSuccessorNumber(BB, Succ); in SplitEdge()
763 if (Succ->isEHPad()) in SplitEdge()
764 return ehAwareSplitEdge(BB, Succ, nullptr, nullptr, Options, BBName); in SplitEdge()
772 if (BasicBlock *SP = Succ->getSinglePredecessor()) { in SplitEdge()
777 return SplitBlock(Succ, &Succ->front(), DT, LI, MSSAU, BBName, in SplitEdge()
788 void llvm::setUnwindEdgeTo(Instruction *TI, BasicBlock *Succ) { in setUnwindEdgeTo() argument
790 II->setUnwindDest(Succ); in setUnwindEdgeTo()
792 CS->setUnwindDest(Succ); in setUnwindEdgeTo()
794 CR->setUnwindDest(Succ); in setUnwindEdgeTo()
821 BasicBlock *llvm::ehAwareSplitEdge(BasicBlock *BB, BasicBlock *Succ, in ehAwareSplitEdge() argument
827 auto *PadInst = Succ->getFirstNonPHI(); in ehAwareSplitEdge()
829 return SplitEdge(BB, Succ, Options.DT, Options.LI, Options.MSSAU, BBName); in ehAwareSplitEdge()
848 for (BasicBlock *P : predecessors(Succ)) { in ehAwareSplitEdge()
870 BasicBlock::Create(BB->getContext(), BBName, BB->getParent(), Succ); in ehAwareSplitEdge()
872 updatePhiNodes(Succ, BB, NewBB, LandingPadReplacement); in ehAwareSplitEdge()
876 auto *Terminator = BranchInst::Create(Succ, NewBB); in ehAwareSplitEdge()
893 CleanupReturnInst::Create(NewCleanupPad, Succ, NewBB); in ehAwareSplitEdge()
906 Updates.push_back({DominatorTree::Insert, NewBB, Succ}); in ehAwareSplitEdge()
907 Updates.push_back({DominatorTree::Delete, BB, Succ}); in ehAwareSplitEdge()
923 if (Loop *SuccLoop = LI->getLoopFor(Succ)) { in ehAwareSplitEdge()
938 assert(SuccLoop->getHeader() == Succ && in ehAwareSplitEdge()
947 if (!BBLoop->contains(Succ)) { in ehAwareSplitEdge()
953 createPHIsForSplitLoopExit(BB, NewBB, Succ); in ehAwareSplitEdge()
958 Succ, LoopPreds, "split", DT, LI, MSSAU, Options.PreserveLCSSA); in ehAwareSplitEdge()
960 createPHIsForSplitLoopExit(LoopPreds, NewExitBB, Succ); in ehAwareSplitEdge()
2144 for (auto Succ : successors(In)) in CreateControlFlowHub() local
2145 if (Outgoing.count(Succ)) in CreateControlFlowHub()
2146 Updates.push_back({DominatorTree::Delete, In, Succ}); in CreateControlFlowHub()