Re: [PATCH v5 1/5] Improve must tail in RTL backend

2024-05-21 Thread Andi Kleen
> I see. I do wonder how we should deal with the inherent > dependence on optimization for [[musttail]] to work then? "Solve" > the problem with good documentation? For now that's good enough I think. If it's a significant problem it can always be improved later. > Offer a -fignore-musttail > o

Re: [PATCH v5 1/5] Improve must tail in RTL backend

2024-05-21 Thread Richard Biener
On Tue, May 21, 2024 at 3:35 PM Andi Kleen wrote: > > > I can't see how this triggers on the IL above, the loop should have > > ignored both the return and the clobber and when recursing to > > the predecessor stop before the above check when runnig into the > > call? > > Yes, I tracked that down

Re: [PATCH v5 1/5] Improve must tail in RTL backend

2024-05-21 Thread Andi Kleen
> I can't see how this triggers on the IL above, the loop should have > ignored both the return and the clobber and when recursing to > the predecessor stop before the above check when runnig into the > call? Yes, I tracked that down later. The problem was that there were multiple successors to th

Re: [PATCH v5 1/5] Improve must tail in RTL backend

2024-05-21 Thread Richard Biener
On Mon, May 20, 2024 at 6:53 AM Andi Kleen wrote: > > On Tue, May 14, 2024 at 04:15:08PM +0200, Richard Biener wrote: > > On Sun, May 5, 2024 at 8:16 PM Andi Kleen wrote: > > > > > > - Give error messages for all causes of non sibling call generation > > > - Don't override choices of other non si

Re: [PATCH v5 1/5] Improve must tail in RTL backend

2024-05-19 Thread Andi Kleen
On Tue, May 14, 2024 at 04:15:08PM +0200, Richard Biener wrote: > On Sun, May 5, 2024 at 8:16 PM Andi Kleen wrote: > > > > - Give error messages for all causes of non sibling call generation > > - Don't override choices of other non sibling call checks with > > must tail. This causes ICEs. The mus

Re: [PATCH v5 1/5] Improve must tail in RTL backend

2024-05-14 Thread Andi Kleen
> > diff --git a/gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c > > b/gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c > > index 3a6d4cceaba7..44af361e2925 100644 > > --- a/gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c > > +++ b/gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c > > @@ -1,4 +1,5 @@ > >

Re: [PATCH v5 1/5] Improve must tail in RTL backend

2024-05-14 Thread Richard Biener
On Sun, May 5, 2024 at 8:16 PM Andi Kleen wrote: > > - Give error messages for all causes of non sibling call generation > - Don't override choices of other non sibling call checks with > must tail. This causes ICEs. The must tail attribute now only > overrides flag_optimize_sibling_calls locally.