Lines Matching refs:phi

304 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
307 FOREACH_PHI_SOURCE(phi, source) { in add_phi_sources_to_worklists()
440 static inline int get_common_phi_source(zend_ssa *ssa, zend_ssa_phi *phi) { in get_common_phi_source() argument
443 FOREACH_PHI_SOURCE(phi, source) { in get_common_phi_source()
444 if (source == phi->ssa_var) { in get_common_phi_source()
460 static void try_remove_trivial_phi(context *ctx, zend_ssa_phi *phi) { in try_remove_trivial_phi() argument
462 if (phi->pi < 0) { in try_remove_trivial_phi()
464 int common_source = get_common_phi_source(ssa, phi); in try_remove_trivial_phi()
466 zend_ssa_rename_var_uses(ssa, phi->ssa_var, common_source, 1); in try_remove_trivial_phi()
467 zend_ssa_remove_phi(ssa, phi); in try_remove_trivial_phi()
502 zend_ssa_phi *phi; in dce_optimize_op_array() local
532 FOREACH_PHI(phi) { in dce_optimize_op_array()
533 if (phi->var >= op_array->last_var in dce_optimize_op_array()
534 && may_be_refcounted(ssa->var_info[phi->ssa_var].type)) { in dce_optimize_op_array()
535 zend_bitset_excl(ctx.phi_dead, phi->ssa_var); in dce_optimize_op_array()
536 add_phi_sources_to_worklists(&ctx, phi, 0); in dce_optimize_op_array()
622 zend_ssa_phi *phi = ssa->vars[i].definition_phi; in dce_optimize_op_array() local
625 FOREACH_PHI_SOURCE(phi, source) { in dce_optimize_op_array()
631 FOREACH_PHI(phi) { in dce_optimize_op_array()
632 if (zend_bitset_in(ctx.phi_dead, phi->ssa_var)) { in dce_optimize_op_array()
633 zend_ssa_remove_uses_of_var(ssa, phi->ssa_var); in dce_optimize_op_array()
634 zend_ssa_remove_phi(ssa, phi); in dce_optimize_op_array()
637 try_remove_trivial_phi(&ctx, phi); in dce_optimize_op_array()