Lines Matching defs:SIUse
128 PHINode *SIUse;
131 SelectInstToUnfold(SelectInst *SI, PHINode *SIUse) : SI(SI), SIUse(SIUse) {}
134 PHINode *getUse() { return SIUse; }
136 explicit operator bool() const { return SI && SIUse; }
194 PHINode *SIUse = SIToUnfold.getUse();
220 PHINode *NewPhi = PHINode::Create(SIUse->getType(), 1,
227 if (SIUse == &Phi)
233 if (EndBlock == SIUse->getParent()) {
234 SIUse->addIncoming(NewPhi, NewBlock);
235 SIUse->replaceUsesOfWith(SI, SIOp1);
237 PHINode *EndPhi = PHINode::Create(SIUse->getType(), pred_size(EndBlock),
247 SIUse->replaceUsesOfWith(SI, EndPhi);
248 SIUse = EndPhi;
252 NewSIsToUnfold->push_back(SelectInstToUnfold(OpSi, SIUse));
262 BasicBlock *EndBlock = SIUse->getParent();
302 SIUse->getType(), 1, Twine(TrueVal->getName(), ".si.unfold.phi"),
305 SIUse->getType(), 1, Twine(FalseVal->getName(), ".si.unfold.phi"),
315 SIUse->addIncoming(NewPhiT, NewBlockT);
316 SIUse->addIncoming(NewPhiF, NewBlockF);
317 SIUse->removeIncomingValue(StartBlock);
321 if (SIUse == &Phi)
524 Instruction *SIUse = dyn_cast<Instruction>(SI->user_back());
526 if (!SIUse && !(isa<PHINode>(SIUse) || isa<SelectInst>(SIUse)))
538 PHINode *PHIUser = dyn_cast<PHINode>(SIUse);