On Sun, Apr 28, 2024 at 8:31 AM Andrew Pinski <quic_apin...@quicinc.com> wrote: > > I noticed that single_non_singleton_phi_for_edges could > return a phi whos entry are all the same for the edge. > This happens only if there was a single phis in the first place. > Also gimple_seq_singleton_p walks the sequence to see if it the one > element in the sequence so there is removing that check actually > reduces the number of pointer walks needed. > > Bootstrapped and tested on x86_64-linux-gnu with no regressions.
OK. Richard. > gcc/ChangeLog: > > * tree-ssa-phiopt.cc (single_non_singleton_phi_for_edges): > Remove the special case of gimple_seq_singleton_p. > > Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> > --- > gcc/tree-ssa-phiopt.cc | 8 -------- > 1 file changed, 8 deletions(-) > > diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc > index d1746c4b468..f1e07502b02 100644 > --- a/gcc/tree-ssa-phiopt.cc > +++ b/gcc/tree-ssa-phiopt.cc > @@ -62,14 +62,6 @@ single_non_singleton_phi_for_edges (gimple_seq seq, edge > e0, edge e1) > { > gimple_stmt_iterator i; > gphi *phi = NULL; > - if (gimple_seq_singleton_p (seq)) > - { > - phi = as_a <gphi *> (gsi_stmt (gsi_start (seq))); > - /* Never return virtual phis. */ > - if (virtual_operand_p (gimple_phi_result (phi))) > - return NULL; > - return phi; > - } > for (i = gsi_start (seq); !gsi_end_p (i); gsi_next (&i)) > { > gphi *p = as_a <gphi *> (gsi_stmt (i)); > -- > 2.43.0 >