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
>

Reply via email to