Lines Matching refs:Preds
181 SmallVector<BasicBlock *, 2> Preds(predecessors((BB))); in getTwoPredecessors() local
182 assert(Preds.size() == 2 && "Expected exactly 2 predecessors!"); in getTwoPredecessors()
183 return Preds; in getTwoPredecessors()
197 SmallVector<BasicBlock *, 2> Preds(predecessors(CallSiteBB)); in canSplitCallSite() local
198 if (Preds.size() != 2 || isa<IndirectBrInst>(Preds[0]->getTerminator()) || in canSplitCallSite()
199 isa<IndirectBrInst>(Preds[1]->getTerminator())) in canSplitCallSite()
306 const SmallVectorImpl<std::pair<BasicBlock *, ConditionsTy>> &Preds, in splitCallSite() argument
317 CallPN = PHINode::Create(CB.getType(), Preds.size(), "phi.call"); in splitCallSite()
323 assert(Preds.size() == 2 && "The ValueToValueMaps array has size 2."); in splitCallSite()
327 for (unsigned i = 0; i < Preds.size(); i++) { in splitCallSite()
328 BasicBlock *PredBB = Preds[i].first; in splitCallSite()
336 addConditions(*NewCI, Preds[i].second); in splitCallSite()
400 PHINode *NewPN = PHINode::Create(CurrentI->getType(), Preds.size()); in splitCallSite()
448 auto Preds = getTwoPredecessors(CB.getParent()); in shouldSplitOnPHIPredicatedArgument() local
449 return {{Preds[0], {}}, {Preds[1], {}}}; in shouldSplitOnPHIPredicatedArgument()
457 auto Preds = getTwoPredecessors(CB.getParent()); in shouldSplitOnPredicatedArgument() local
458 if (Preds[0] == Preds[1]) in shouldSplitOnPredicatedArgument()
470 for (auto *Pred : make_range(Preds.rbegin(), Preds.rend())) { in shouldSplitOnPredicatedArgument()