Lines Matching defs:Phi
189 // Recursively, walk about the use-def chain until we find a Phi with a strided
198 // Our base case is a Phi.
199 if (auto *Phi = dyn_cast<PHINode>(Index)) {
202 if (Phi->getParent() != L->getHeader())
206 if (!matchSimpleRecurrence(Phi, Inc, Start, Step) ||
209 assert(Phi->getNumIncomingValues() == 2 && "Expected 2 operand phi.");
210 unsigned IncrementingBlock = Phi->getIncomingValue(0) == Inc ? 0 : 1;
211 assert(Phi->getIncomingValue(IncrementingBlock) == Inc &&
226 PHINode::Create(Start->getType(), 2, Phi->getName() + ".scalar", Phi->getIterator());
229 BasePtr->addIncoming(Start, Phi->getIncomingBlock(1 - IncrementingBlock));
230 BasePtr->addIncoming(Inc, Phi->getIncomingBlock(IncrementingBlock));
232 // Note that this Phi might be eligible for removal.
233 MaybeDeadPHIs.push_back(Phi);
637 if (auto *Phi = dyn_cast_or_null<PHINode>(MaybeDeadPHIs.pop_back_val()))
638 RecursivelyDeleteDeadPHINode(Phi);