On Fri, Apr 11, 2025 at 11:54 AM Jakub Jelinek <ja...@redhat.com> wrote: > > Hi! > > Here is an optional incremental tweak to the previous patch. > Instead of > > ./xgcc -B ./ -S -O2 -fdump-{tree-tailc,rtl-expand}-details pr119718.c ; grep > -B1 '^\(;; \)\?Cannot tail-call:' pr119718.c.* > pr119718.c.222t.tailc-_7 = bar (0); > pr119718.c.222t.tailc:Cannot tail-call: call invocation refers to locals > -- > pr119718.c.270r.expand-;; foo (1, 2, 3, 4, 5, 6, 7) [tail call] > pr119718.c.270r.expand:;; Cannot tail-call: callee required more stack slots > than the caller > > this dumps > > ./xgcc -B ./ -S -O2 -fdump-{tree-tailc,rtl-expand}-details pr119718.c ; grep > '^\(;; \)\?Cannot tail-call:' pr119718.c.* > pr119718.c.222t.tailc:Cannot tail-call: call invocation refers to locals: _7 > = bar (0); > pr119718.c.270r.expand:;; Cannot tail-call: callee required more stack slots > than the caller: foo (1, 2, 3, 4, 5, 6, 7) [tail call] > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
This looks good to me. I had a patch which helped me with debugging musttail failures too that conflicts slightly with this one: https://gcc.gnu.org/pipermail/gcc-patches/2025-March/679386.html Thanks, Andrew Pinski > > 2025-04-11 Jakub Jelinek <ja...@redhat.com> > > PR tree-optimization/119718 > * tree-tailcall.cc (maybe_error_musttail): Dump the GIMPLE at the > end of the Cannot tail-call line rather than on the line before it. > * calls.cc (maybe_complain_about_tail_call): Dump the GENERIC > at the end of the ;; Cannot tail-call line rather than on the > line before it. > > --- gcc/tree-tailcall.cc.jj 2025-04-11 09:38:22.483257379 +0200 > +++ gcc/tree-tailcall.cc 2025-04-11 10:12:06.419122909 +0200 > @@ -494,8 +494,8 @@ maybe_error_musttail (gcall *call, const > } > if (dump_file && (dump_flags & TDF_DETAILS)) > { > + fprintf (dump_file, "Cannot tail-call: %s: ", err); > print_gimple_stmt (dump_file, call, 0, TDF_SLIM); > - fprintf (dump_file, "Cannot tail-call: %s\n", err); > } > } > > --- gcc/calls.cc.jj 2025-04-11 10:02:22.000000000 +0200 > +++ gcc/calls.cc 2025-04-11 10:12:44.555592826 +0200 > @@ -1282,9 +1282,9 @@ maybe_complain_about_tail_call (tree cal > && dump_file > && (dump_flags & TDF_DETAILS)) > { > - fprintf (dump_file, ";; "); > + fprintf (dump_file, ";; Cannot tail-call: %s: ", reason); > print_generic_expr (dump_file, call_expr, TDF_SLIM); > - fprintf (dump_file, "\n;; Cannot tail-call: %s\n", reason); > + fprintf (dump_file, "\n"); > } > } > > > Jakub >