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?

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