Lines Matching defs:Phi
191 // Recursively, walk about the use-def chain until we find a Phi with a strided
200 // Our base case is a Phi.
201 if (auto *Phi = dyn_cast<PHINode>(Index)) {
204 if (Phi->getParent() != L->getHeader())
208 if (!matchSimpleRecurrence(Phi, Inc, Start, Step) ||
211 assert(Phi->getNumIncomingValues() == 2 && "Expected 2 operand phi.");
212 unsigned IncrementingBlock = Phi->getIncomingValue(0) == Inc ? 0 : 1;
213 assert(Phi->getIncomingValue(IncrementingBlock) == Inc &&
232 PHINode::Create(Start->getType(), 2, Phi->getName() + ".scalar", Phi->getIterator());
235 BasePtr->addIncoming(Start, Phi->getIncomingBlock(1 - IncrementingBlock));
236 BasePtr->addIncoming(Inc, Phi->getIncomingBlock(IncrementingBlock));
238 // Note that this Phi might be eligible for removal.
239 MaybeDeadPHIs.push_back(Phi);
583 if (auto *Phi = dyn_cast_or_null<PHINode>(MaybeDeadPHIs.pop_back_val()))
584 RecursivelyDeleteDeadPHINode(Phi);