final: Improve output for -dp and -fverbose-asm
authorSegher Boessenkool <segher@kernel.crashing.org>
Sat, 2 Dec 2017 01:20:08 +0000 (02:20 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Sat, 2 Dec 2017 01:20:08 +0000 (02:20 +0100)
This improves the assembler output (for -dp and -fverbose-asm) in
several ways.  It always prints the insn_cost.  It does not print
"[length = NN]" but "[c=NN l=NN]", to save space.  It does not add one
to the instruction alternative number (everything else starts counting
those at 0, too).  And finally, it tries to keep things lined up in
columns a bit better.

* final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
which_alternative instead of which_alternative + 1.
(output_asm_insn): Print an extra tab if the template is short.

From-SVN: r255348

gcc/ChangeLog
gcc/final.c

index b0fc04a0826991c02bfbdbb8646a4de9e4091716..11ccbfb91c25c5ebb9bdc28c648a0fb501c14459 100644 (file)
@@ -1,3 +1,9 @@
+2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
+       which_alternative instead of which_alternative + 1.
+       (output_asm_insn): Print an extra tab if the template is short.
+
 2017-12-01  Jim Wilson  <jimw@sifive.com>
 
        * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
index fdae241bc832246c257677db8f3870b5144f6fdc..afb6906997dabac361dab578e973a3978c1551f1 100644 (file)
@@ -3469,16 +3469,20 @@ output_asm_name (void)
 {
   if (debug_insn)
     {
-      int num = INSN_CODE (debug_insn);
-      fprintf (asm_out_file, "\t%s %d\t%s",
-              ASM_COMMENT_START, INSN_UID (debug_insn),
-              insn_data[num].name);
-      if (insn_data[num].n_alternatives > 1)
-       fprintf (asm_out_file, "/%d", which_alternative + 1);
+      fprintf (asm_out_file, "\t%s %d\t",
+              ASM_COMMENT_START, INSN_UID (debug_insn));
 
+      fprintf (asm_out_file, "[c=%d",
+              insn_cost (debug_insn, optimize_insn_for_speed_p ()));
       if (HAVE_ATTR_length)
-       fprintf (asm_out_file, "\t[length = %d]",
+       fprintf (asm_out_file, " l=%d",
                 get_attr_length (debug_insn));
+      fprintf (asm_out_file, "]  ");
+
+      int num = INSN_CODE (debug_insn);
+      fprintf (asm_out_file, "%s", insn_data[num].name);
+      if (insn_data[num].n_alternatives > 1)
+       fprintf (asm_out_file, "/%d", which_alternative);
 
       /* Clear this so only the first assembler insn
         of any rtl insn will get the special comment for -dp.  */
@@ -3824,6 +3828,10 @@ output_asm_insn (const char *templ, rtx *operands)
        putc (c, asm_out_file);
       }
 
+  /* Try to keep the asm a bit more readable.  */
+  if ((flag_verbose_asm || flag_print_asm_name) && strlen (templ) < 9)
+    putc ('\t', asm_out_file);
+
   /* Write out the variable names for operands, if we know them.  */
   if (flag_verbose_asm)
     output_asm_operand_names (operands, oporder, ops);