Lines Matching refs:phi
28 /* This pass "merges" compatible phi-web SSA values. First, we insert a bunch
31 * single register in order to eliminate copies. First we merge phi nodes,
357 coalesce_phi(struct ir3_liveness *live, struct ir3_instruction *phi)
359 for (unsigned i = 0; i < phi->srcs_count; i++) {
360 if (phi->srcs[i]->def)
361 try_merge_defs(live, phi->dsts[0], phi->srcs[i]->def, 0);
408 foreach_instr (phi, &succ->instr_list) {
409 if (phi->opc != OPC_META_PHI)
413 if ((phi->srcs[pred_idx]->flags & IR3_REG_SSA) &&
414 !phi->srcs[pred_idx]->def)
418 * we'd need to insert parallel copies after the phi node to solve
430 foreach_instr (phi, &succ->instr_list) {
431 if (phi->opc != OPC_META_PHI)
433 if ((phi->srcs[pred_idx]->flags & IR3_REG_SSA) &&
434 !phi->srcs[pred_idx]->def)
436 src[j++] = phi->srcs[pred_idx];
456 foreach_instr (phi, &succ->instr_list) {
457 if (phi->opc != OPC_META_PHI)
459 if ((phi->srcs[pred_idx]->flags & IR3_REG_SSA) &&
460 !phi->srcs[pred_idx]->def)
462 phi->srcs[pred_idx]->def = pcopy->dsts[j];
463 phi->srcs[pred_idx]->flags = pcopy->dsts[j]->flags;