Home | History | Annotate | Download | only in Utils

Lines Matching defs:Preds

100   assert(I != E && "No preds, but we have an edge to the block?");
107 // non-critical iff all preds come from TI's block.
122 /// new PHIs, as needed. Preds is a list of preds inside the loop, SplitBB
125 static void createPHIsForSplitLoopExit(ArrayRef<BasicBlock *> Preds,
146 PHINode::Create(PN->getType(), Preds.size(), "split",
149 for (unsigned i = 0, e = Preds.size(); i != e; ++i)
150 NewPN->addIncoming(V, Preds[i]);
353 // Collect all the preds that are inside the loop, and note
354 // whether there are any preds outside the loop.
355 SmallVector<BasicBlock *, 4> Preds;
363 Preds.clear();
366 Preds.push_back(P);
371 // If there are any preds not in the loop, we'll need to split
372 // the edges. The Preds.empty() check is needed because a block
376 if (!Preds.empty() && HasPredOutsideOfLoop) {
379 SplitBlockPredecessors(Exit, Preds, "split", P);
381 createPHIsForSplitLoopExit(Preds, NewExitBB, Exit);
384 SplitLandingPadPredecessors(Exit, Preds,
388 createPHIsForSplitLoopExit(Preds, NewBBs[0], Exit);