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()
761 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, in SplitEdge() argument
764 unsigned SuccNum = GetSuccessorNumber(BB, Succ); in SplitEdge()
774 if (Succ->isEHPad()) in SplitEdge()
775 return ehAwareSplitEdge(BB, Succ, nullptr, nullptr, Options, BBName); in SplitEdge()
783 if (BasicBlock *SP = Succ->getSinglePredecessor()) { in SplitEdge()
788 return SplitBlock(Succ, &Succ->front(), DT, LI, MSSAU, BBName, in SplitEdge()
799 void llvm::setUnwindEdgeTo(Instruction *TI, BasicBlock *Succ) { in setUnwindEdgeTo() argument
801 II->setUnwindDest(Succ); in setUnwindEdgeTo()
803 CS->setUnwindDest(Succ); in setUnwindEdgeTo()
805 CR->setUnwindDest(Succ); in setUnwindEdgeTo()
832 BasicBlock *llvm::ehAwareSplitEdge(BasicBlock *BB, BasicBlock *Succ, in ehAwareSplitEdge() argument
838 auto *PadInst = Succ->getFirstNonPHI(); in ehAwareSplitEdge()
840 return SplitEdge(BB, Succ, Options.DT, Options.LI, Options.MSSAU, BBName); in ehAwareSplitEdge()
859 for (BasicBlock *P : predecessors(Succ)) { in ehAwareSplitEdge()
881 BasicBlock::Create(BB->getContext(), BBName, BB->getParent(), Succ); in ehAwareSplitEdge()
883 updatePhiNodes(Succ, BB, NewBB, LandingPadReplacement); in ehAwareSplitEdge()
887 auto *Terminator = BranchInst::Create(Succ, NewBB); in ehAwareSplitEdge()
904 CleanupReturnInst::Create(NewCleanupPad, Succ, NewBB); in ehAwareSplitEdge()
917 Updates.push_back({DominatorTree::Insert, NewBB, Succ}); in ehAwareSplitEdge()
918 Updates.push_back({DominatorTree::Delete, BB, Succ}); in ehAwareSplitEdge()
934 if (Loop *SuccLoop = LI->getLoopFor(Succ)) { in ehAwareSplitEdge()
949 assert(SuccLoop->getHeader() == Succ && in ehAwareSplitEdge()
958 if (!BBLoop->contains(Succ)) { in ehAwareSplitEdge()
964 createPHIsForSplitLoopExit(BB, NewBB, Succ); in ehAwareSplitEdge()
969 Succ, LoopPreds, "split", DT, LI, MSSAU, Options.PreserveLCSSA); in ehAwareSplitEdge()
971 createPHIsForSplitLoopExit(LoopPreds, NewExitBB, Succ); in ehAwareSplitEdge()
2156 for (auto Succ : successors(In)) in CreateControlFlowHub() local
2157 if (Outgoing.count(Succ)) in CreateControlFlowHub()
2158 Updates.push_back({DominatorTree::Delete, In, Succ}); in CreateControlFlowHub()