Lines Matching refs:BasicBlock
69 BasicBlock *unifyReturnBlockSet(Function &F, DomTreeUpdater &DTU,
70 ArrayRef<BasicBlock *> ReturningBlocks,
118 BasicBlock &BB) { in isUniformlyReached()
119 SmallVector<BasicBlock *, 8> Stack(predecessors(&BB)); in isUniformlyReached()
120 SmallPtrSet<BasicBlock *, 8> Visited; in isUniformlyReached()
123 BasicBlock *Top = Stack.pop_back_val(); in isUniformlyReached()
127 for (BasicBlock *Pred : predecessors(Top)) { in isUniformlyReached()
136 BasicBlock *AMDGPUUnifyDivergentExitNodes::unifyReturnBlockSet( in unifyReturnBlockSet()
137 Function &F, DomTreeUpdater &DTU, ArrayRef<BasicBlock *> ReturningBlocks, in unifyReturnBlockSet()
142 BasicBlock *NewRetBlock = BasicBlock::Create(F.getContext(), Name, &F); in unifyReturnBlockSet()
159 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet()
175 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet()
200 SmallVector<BasicBlock *, 4> ReturningBlocks; in runOnFunction()
201 SmallVector<BasicBlock *, 4> UnreachableBlocks; in runOnFunction()
204 BasicBlock *DummyReturnBB = nullptr; in runOnFunction()
209 for (BasicBlock *BB : PDT.roots()) { in runOnFunction()
220 DummyReturnBB = BasicBlock::Create(F.getContext(), in runOnFunction()
229 BasicBlock *LoopHeaderBB = BI->getSuccessor(0); in runOnFunction()
235 SmallVector<BasicBlock *, 2> Successors(successors(BB)); in runOnFunction()
238 BasicBlock *TransitionBB = BB->splitBasicBlock(BI, "TransitionBlock"); in runOnFunction()
245 for (BasicBlock *Successor : Successors) { in runOnFunction()
261 BasicBlock *UnreachableBlock = nullptr; in runOnFunction()
266 UnreachableBlock = BasicBlock::Create(F.getContext(), in runOnFunction()
271 for (BasicBlock *BB : UnreachableBlocks) { in runOnFunction()