> Am 11.04.2025 um 20:54 schrieb Jakub Jelinek <ja...@redhat.com>:
>
> 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?
Ok
> 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
>