Lines Matching refs:phi

312 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
315 FOREACH_PHI_SOURCE(phi, source) { in add_phi_sources_to_worklists()
461 static inline int get_common_phi_source(zend_ssa *ssa, zend_ssa_phi *phi) { in get_common_phi_source() argument
464 FOREACH_PHI_SOURCE(phi, source) { in get_common_phi_source()
465 if (source == phi->ssa_var) { in get_common_phi_source()
481 static void try_remove_trivial_phi(context *ctx, zend_ssa_phi *phi) { in try_remove_trivial_phi() argument
483 if (phi->pi < 0) { in try_remove_trivial_phi()
485 int common_source = get_common_phi_source(ssa, phi); in try_remove_trivial_phi()
487 zend_ssa_rename_var_uses(ssa, phi->ssa_var, common_source, 1); in try_remove_trivial_phi()
488 zend_ssa_remove_phi(ssa, phi); in try_remove_trivial_phi()
523 zend_ssa_phi *phi; in dce_optimize_op_array() local
550 FOREACH_PHI(phi) { in dce_optimize_op_array()
551 if (phi->var >= op_array->last_var in dce_optimize_op_array()
552 && may_be_refcounted(ssa->var_info[phi->ssa_var].type)) { in dce_optimize_op_array()
553 zend_bitset_excl(ctx.phi_dead, phi->ssa_var); in dce_optimize_op_array()
554 add_phi_sources_to_worklists(&ctx, phi, 0); in dce_optimize_op_array()
640 zend_ssa_phi *phi = ssa->vars[i].definition_phi; in dce_optimize_op_array() local
643 FOREACH_PHI_SOURCE(phi, source) { in dce_optimize_op_array()
649 FOREACH_PHI(phi) { in dce_optimize_op_array()
650 if (zend_bitset_in(ctx.phi_dead, phi->ssa_var)) { in dce_optimize_op_array()
651 zend_ssa_remove_uses_of_var(ssa, phi->ssa_var); in dce_optimize_op_array()
652 zend_ssa_remove_phi(ssa, phi); in dce_optimize_op_array()
655 try_remove_trivial_phi(&ctx, phi); in dce_optimize_op_array()