Improve shrink wrapping debug output
authorAlexander Popov <alex.popov@linux.com>
Fri, 10 Jul 2020 20:10:16 +0000 (14:10 -0600)
committerJeff Law <law@redhat.com>
Fri, 10 Jul 2020 20:26:05 +0000 (14:26 -0600)
Currently if requires_stack_frame_p() returns true for some insn, the
shrink-wrapping debug output contains only the number of a block containing
that insn.

But it is very useful to see the particular insn that requires the prologue.
Let's call print_rtl_single to display that insn in the following pass dump.

gcc/

* shrink-wrap.c (try_shrink_wrapping): Improve debug output.

gcc/shrink-wrap.c

index 775db9ce888f31b21561cb25bc0ecf20d61341c9..d70635e94a351d2926457e752dd288fec7c9b0e7 100644 (file)
@@ -43,6 +43,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl-iter.h"
 #include "valtrack.h"
 #include "function-abi.h"
+#include "print-rtl.h"
 
 /* Return true if INSN requires the stack frame to be set up.
    PROLOGUE_USED contains the hard registers used in the function
@@ -735,7 +736,11 @@ try_shrink_wrapping (edge *entry_edge, rtx_insn *prologue_seq)
                                       set_up_by_prologue.set))
          {
            if (dump_file)
-             fprintf (dump_file, "Block %d needs the prologue.\n", bb->index);
+             {
+               fprintf (dump_file, "Block %d needs prologue due to insn %d:\n",
+                        bb->index, INSN_UID (insn));
+               print_rtl_single (dump_file, insn);
+             }
            pro = nearest_common_dominator (CDI_DOMINATORS, pro, bb);
            break;
          }