Lines Matching refs:phi
264 // Return the range of the result of PHI in R.
269 // calculating the PHI's range must not trigger additional lookups.
272 path_range_query::ssa_range_in_phi (irange &r, gphi *phi)
274 tree name = gimple_phi_result (phi);
275 basic_block bb = gimple_bb (phi);
276 unsigned nargs = gimple_phi_num_args (phi);
280 if (m_resolve && m_ranger->range_of_expr (r, name, phi))
283 // Try to fold the phi exclusively with global or cached values.
284 // This will get things like PHI <5(99), 6(88)>. We do this by
290 tree arg = gimple_phi_arg_def (phi, i);
306 if (e_in == gimple_phi_arg_edge (phi, i))
308 tree arg = gimple_phi_arg_def (phi, i);
390 gphi *phi = iter.phi ();
391 tree name = gimple_phi_result (phi);
589 else if (gphi *phi = dyn_cast <gphi *> (def_stmt))
591 for (size_t i = 0; i < gimple_phi_num_args (phi); ++i)
593 edge e = gimple_phi_arg_edge (phi, i);
594 tree arg = gimple_phi_arg (phi, i)->def;
777 // If possible, register the relation on the incoming edge E into PHI.
780 path_range_query::maybe_register_phi_relation (gphi *phi, edge e)
782 tree arg = gimple_phi_arg_def (phi, e->dest_idx);
790 basic_block bb = gimple_bb (phi);
791 tree result = gimple_phi_result (phi);
805 // Compute relations for each PHI in BB. For example:
807 // x_5 = PHI<y_9(5),...>
822 gphi *phi = iter.phi ();
823 tree result = gimple_phi_result (phi);
824 unsigned nargs = gimple_phi_num_args (phi);
830 if (e_in == gimple_phi_arg_edge (phi, i))
832 maybe_register_phi_relation (phi, e_in);