Lines Matching refs:Preds
317 ArrayRef<BasicBlock *> Preds,
334 for (ArrayRef<BasicBlock *>::iterator i = Preds.begin(), e = Preds.end();
338 // If we need to preserve LCSSA, determine if any of the preds is a loop
345 // If we need to preserve LoopInfo, note whether any of the preds crosses
366 i = Preds.begin(), e = Preds.end(); i != e; ++i) {
394 ArrayRef<BasicBlock *> Preds, BranchInst *BI,
397 SmallPtrSet<BasicBlock *, 16> PredSet(Preds.begin(), Preds.end());
405 InVal = PN->getIncomingValueForBlock(Preds[0]);
441 PHINode::Create(PN->getType(), Preds
462 /// Preds array. The new block is given a suffix of 'Suffix'. Returns new basic
463 /// block to which predecessors from Preds are now pointing.
475 ArrayRef<BasicBlock *> Preds,
488 SplitLandingPadPredecessors(BB, Preds, Suffix, NewName.c_str(), NewBBs, DT,
501 // Move the edges from Preds to point to NewBB instead of BB.
502 for (unsigned i = 0, e = Preds.size(); i != e; ++i) {
506 assert(!isa<IndirectBrInst>(Preds[i]->getTerminator()) &&
508 Preds[i]->getTerminator()->replaceUsesOfWith(BB, NewBB);
512 // node becomes an incoming value for BB's phi node. However, if the Preds
515 if (Preds.size() == 0) {
524 UpdateAnalysisInformation(BB, NewBB, Preds, DT, LI, PreserveLCSSA,
528 UpdatePHINodes(BB, NewBB, Preds, BI, HasLoopExit);
534 /// new basic blocks gets the predecessors listed in Preds. The other basic
546 ArrayRef<BasicBlock *> Preds,
553 // Create a new basic block for OrigBB's predecessors listed in Preds. Insert
564 // Move the edges from Preds to point to NewBB1 instead of OrigBB.
565 for (unsigned i = 0, e = Preds.size(); i != e; ++i) {
569 assert(!isa<IndirectBrInst>(Preds[i]->getTerminator()) &&
571 Preds[i]->getTerminator()->replaceUsesOfWith(OrigBB, NewBB1);
575 UpdateAnalysisInformation(OrigBB, NewBB1, Preds, DT, LI, PreserveLCSSA,
579 UpdatePHINodes(OrigBB, NewBB1, Preds, BI1, HasLoopExit);