Lines Matching defs:PHI
218 /// Describes a PHI node that may or may not exist. These track the PHIs
262 "Modelling PHI with less than 2 values");
277 /// Create a PHI from an array of incoming values and incoming blocks.
287 /// Create a PHI from [I[OpNum] for I in Insts].
296 /// Restrict the PHI's contents down to only \c NewBlocks.
365 // that the program would be equivalent if we replaced A with PHI(A, B).
641 /// Create a ModelledPHI for each PHI in BB, adding to PHIs.
743 for (auto &PHI : NeededPHIs)
744 PHIContents.insert(PHI.getValues().begin(), PHI.getValues().end());
747 // Is this instruction required by a later PHI that doesn't match this PHI?
751 // V exists in this PHI, but the whole PHI is different to NewPHI
769 ModelledPHI PHI(NewInsts, OpNum, ActivePreds);
770 if (PHI.areAllIncomingValuesSame())
773 // We can 't create a PHI from this instruction!
775 if (NeededPHIs.count(PHI))
777 if (!PHI.areAllIncomingValuesSameType())
781 PHI.areAnyIncomingValuesConstant())
785 NeededPHIs.insert(PHI);
786 PHIContents.insert(PHI.getValues().begin(), PHI.getValues().end());
894 // Create a new PHI in the successor block and populate it.
896 assert(!Op->getType()->isTokenTy() && "Can't PHI tokens!");