Lines Matching refs:phi

294 static zend_always_inline void add_phi_sources_to_worklists(context *ctx, zend_ssa_phi *phi, int ch…  in add_phi_sources_to_worklists()  argument
297 FOREACH_PHI_SOURCE(phi, source) { in add_phi_sources_to_worklists()
430 static inline int get_common_phi_source(zend_ssa *ssa, zend_ssa_phi *phi) { in get_common_phi_source() argument
433 FOREACH_PHI_SOURCE(phi, source) { in get_common_phi_source()
436 } else if (common_source != source && source != phi->ssa_var) { in get_common_phi_source()
444 static void try_remove_trivial_phi(context *ctx, zend_ssa_phi *phi) { in try_remove_trivial_phi() argument
446 if (phi->pi < 0) { in try_remove_trivial_phi()
448 int common_source = get_common_phi_source(ssa, phi); in try_remove_trivial_phi()
450 zend_ssa_rename_var_uses(ssa, phi->ssa_var, common_source, 1); in try_remove_trivial_phi()
451 zend_ssa_remove_phi(ssa, phi); in try_remove_trivial_phi()
482 zend_ssa_phi *phi; in dce_optimize_op_array() local
512 FOREACH_PHI(phi) { in dce_optimize_op_array()
513 if (phi->var >= op_array->last_var in dce_optimize_op_array()
514 && may_be_refcounted(ssa->var_info[phi->ssa_var].type)) { in dce_optimize_op_array()
515 zend_bitset_excl(ctx.phi_dead, phi->ssa_var); in dce_optimize_op_array()
516 add_phi_sources_to_worklists(&ctx, phi, 0); in dce_optimize_op_array()
598 zend_ssa_phi *phi = ssa->vars[i].definition_phi; in dce_optimize_op_array() local
601 FOREACH_PHI_SOURCE(phi, source) { in dce_optimize_op_array()
607 FOREACH_PHI(phi) { in dce_optimize_op_array()
608 if (zend_bitset_in(ctx.phi_dead, phi->ssa_var)) { in dce_optimize_op_array()
609 zend_ssa_remove_uses_of_var(ssa, phi->ssa_var); in dce_optimize_op_array()
610 zend_ssa_remove_phi(ssa, phi); in dce_optimize_op_array()
613 try_remove_trivial_phi(&ctx, phi); in dce_optimize_op_array()