Lines Matching defs:phi

300  * of an existing value range, NewArray or a loop phi corresponding to an
892 static bool HasSameInputAtBackEdges(HPhi* phi) {
893 DCHECK(phi->IsLoopHeaderPhi());
895 HInstruction* input1 = phi->InputAt(1);
896 DCHECK(phi->GetBlock()->GetLoopInformation()->IsBackEdge(
897 *phi->GetBlock()->GetPredecessors()[1]));
898 for (size_t i = 2, e = phi->InputCount(); i < e; ++i) {
899 DCHECK(phi->GetBlock()->GetLoopInformation()->IsBackEdge(
900 *phi->GetBlock()->GetPredecessors()[i]));
901 if (input1 != phi->InputAt(i)) {
908 void VisitPhi(HPhi* phi) OVERRIDE {
909 if (phi->IsLoopHeaderPhi()
910 && (phi->GetType() == Primitive::kPrimInt)
911 && HasSameInputAtBackEdges(phi)) {
912 HInstruction* instruction = phi->InputAt(1);
916 if (left == phi) {
917 HInstruction* initial_value = phi->InputAt(0);
934 ValueRange* initial_range = LookupValueRange(initial_value, phi->GetBlock());
944 phi,
949 AssignRange(phi->GetBlock(), phi, range);
1560 * new_preheader <- may require phi nodes to preserve SSA structure
1621 * Inserts phi nodes that preserve SSA structure in generated top test structures.
1623 * a phi node in the new loop preheader to fix the dominance relation.
1630 * x_1 = phi(x_0, null) <- synthetic phi
1643 HPhi* phi = nullptr;
1644 // Scan all uses of an instruction and replace each later use with a phi node.
1652 if (phi == nullptr) {
1653 phi = NewPhi(new_preheader, instruction, type);
1655 user->ReplaceInput(phi, index); // Removes the use node from the list.
1658 // Scan all environment uses of an instruction and replace each later use with a phi node.
1666 if (phi == nullptr) {
1667 phi = NewPhi(new_preheader, instruction, type);
1670 user->SetRawEnvAt(index, phi);
1671 phi->AddEnvUseAt(user, index);
1679 * Construct a phi(instruction, 0) in the new preheader to fix the dominance relation.
1680 * These are synthetic phi nodes without a virtual register.
1693 HPhi* phi = new (graph->GetArena())
1695 phi->SetRawInputAt(0, instruction);
1696 phi->SetRawInputAt(1, zero);
1698 phi->SetReferenceTypeInfo(instruction->GetReferenceTypeInfo());
1700 new_preheader->AddPhi(phi);
1701 return phi;