On Mon, Jul 8, 2024 at 5:32 PM Andi Kleen <a...@linux.intel.com> wrote:
>
> On Mon, Jul 08, 2024 at 09:06:21AM +0200, Richard Biener wrote:
> > On Sat, Jul 6, 2024 at 8:45 PM Andi Kleen <a...@linux.intel.com> wrote:
> > >
> > > > >    if (!single_succ_p (bb))
> > > > > -    return;
> > > > > +    {
> > > > > +      int num_eh, num_other;
> > > > > +      bb_get_succ_edge_count (bb, num_eh, num_other);
> > > > > +      /* Allow EH edges so that we can give a better
> > > > > +        error message later.  */
> > > >
> > > > Please instead use has_abnormal_or_eh_outgoing_edge_p (bb) instead
> > >
> > > That's not equivalent, need a num_other == 1 check too.
> >
> > There can be at most one regular outgoing edge for a block with an
> > outgoing EH or abnormal edge.
>
> GIMPLE_CONDs cannot trigger EH?

They cannot.  You'll instead see

  _1 = _5 < 0.0; // EH with non-call exceptions and NaNs
  if (_1 != 0)

thus the EH producer is split out.

> > > Do you want me to move the function to a generic place?
> >
> > Maybe you can use find_fallthru_edge () instead if you think
> > has_abnormal_or_eh_outgoing_edge_p isn't good enough?  That will
> > find the single_succ_edge when the BB isn't single_succ_p because
> > of EH/abnormal edges.
> >
> > I think both choices would be equivalent to your new function and its use.
>
> Okay will do the later.
>
> > The comment above the check is a bit weird in how it talks about types, but
> > "tail call must be same type" isn't very helpful and it isn't in any way 
> > related
> > to the actual check being performed.  "return slot" is supposed to be the
> > storage used for return pointed to by the invisible reference parameter to
> > space allocated by the caller.  Do you know a more C/C++ standard related
> > naming for this?
>
> I don't have a better name. Probably the right thing would be to use
> whatever term the respective ABI uses, but that may not be the same for
> every target. I used your suggestion.

Thanks, if somebody commes up with a better name we can fixup later.

Richard.

> -Andi

Reply via email to