Lines Matching refs:phi
258 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
261 FOREACH_PHI_SOURCE(phi, source) { in add_phi_sources_to_worklists()
502 static inline int get_common_phi_source(zend_ssa *ssa, zend_ssa_phi *phi) { in get_common_phi_source() argument
505 FOREACH_PHI_SOURCE(phi, source) { in get_common_phi_source()
508 } else if (common_source != source && source != phi->ssa_var) { in get_common_phi_source()
516 static void try_remove_trivial_phi(context *ctx, zend_ssa_phi *phi) { in try_remove_trivial_phi() argument
518 if (phi->pi < 0) { in try_remove_trivial_phi()
520 int common_source = get_common_phi_source(ssa, phi); in try_remove_trivial_phi()
522 zend_ssa_rename_var_uses(ssa, phi->ssa_var, common_source, 1); in try_remove_trivial_phi()
523 zend_ssa_remove_phi(ssa, phi); in try_remove_trivial_phi()
628 zend_ssa_phi *phi; in dce_optimize_op_array() local
709 zend_ssa_phi *phi = ssa->vars[i].definition_phi; in dce_optimize_op_array() local
712 FOREACH_PHI_SOURCE(phi, source) { in dce_optimize_op_array()
718 FOREACH_PHI(phi) { in dce_optimize_op_array()
719 if (zend_bitset_in(ctx.phi_dead, phi->ssa_var)) { in dce_optimize_op_array()
720 zend_ssa_remove_uses_of_var(ssa, phi->ssa_var); in dce_optimize_op_array()
721 zend_ssa_remove_phi(ssa, phi); in dce_optimize_op_array()
724 try_remove_trivial_phi(&ctx, phi); in dce_optimize_op_array()