Lines Matching defs:PHI
219 /// Describes a PHI node that may or may not exist. These track the PHIs
263 "Modelling PHI with less than 2 values");
278 /// Create a PHI from an array of incoming values and incoming blocks.
288 /// Create a PHI from [I[OpNum] for I in Insts].
297 /// Restrict the PHI's contents down to only \c NewBlocks.
366 // that the program would be equivalent if we replaced A with PHI(A, B).
646 /// Create a ModelledPHI for each PHI in BB, adding to PHIs.
748 for (auto &PHI : NeededPHIs)
749 PHIContents.insert(PHI.getValues().begin(), PHI.getValues().end());
752 // Is this instruction required by a later PHI that doesn't match this PHI?
756 // V exists in this PHI, but the whole PHI is different to NewPHI
774 ModelledPHI PHI(NewInsts, OpNum, ActivePreds);
775 if (PHI.areAllIncomingValuesSame())
778 // We can 't create a PHI from this instruction!
780 if (NeededPHIs.count(PHI))
782 if (!PHI.areAllIncomingValuesSameType())
786 PHI.areAnyIncomingValuesConstant())
790 NeededPHIs.insert(PHI);
791 PHIContents.insert(PHI.getValues().begin(), PHI.getValues().end());
899 // Create a new PHI in the successor block and populate it.
901 assert(!Op->getType()->isTokenTy() && "Can't PHI tokens!");