> 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
> 

Reply via email to