]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
invoke.texi (-fdump-unnumbered): Update docs when line number notes are gone.
authorJan Hubicka <jh@suse.cz>
Thu, 24 May 2007 14:21:14 +0000 (16:21 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 24 May 2007 14:21:14 +0000 (14:21 +0000)
* doc/invoke.texi (-fdump-unnumbered): Update docs when line number
notes are gone.
* print-rtl.c (flag_dump_unnumbered): Update comments.
(print_rtl): Fix my previous change.
* emit-rtl.c (emit_note_before, emit_note_after): Clear out note
specific data.

From-SVN: r125026

gcc/ChangeLog
gcc/doc/invoke.texi
gcc/emit-rtl.c
gcc/gengenrtl.c
gcc/print-rtl.c

index 5b4258a9894c77d6ab9b23bc36bb5970482b4c08..88096ccf22629c605f353e36d77962b5d250048e 100644 (file)
@@ -1,3 +1,12 @@
+2007-05-24  Jan Hubicka  <jh@suse.cz>
+
+       * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
+       notes are gone.
+       * print-rtl.c (flag_dump_unnumbered): Update comments.
+       (print_rtl): Fix my previous change.
+       * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
+       specific data.
+
 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
 
        PR middle-end/32018
index a057a0cbc7f31ca017f3c987ea96a286623b0dc7..47b68d73a75c3419c13a309dc81f842fb94e0882 100644 (file)
@@ -4495,7 +4495,7 @@ different text / bss / data / heap / stack / dso start locations.
 @item -fdump-unnumbered
 @opindex fdump-unnumbered
 When doing debugging dumps (see @option{-d} option above), suppress instruction
-numbers, line number note and address output.  This makes it more feasible to
+numbers and address output.  This makes it more feasible to
 use diff on debugging dumps for compiler invocations with different
 options, in particular with and without @option{-g}.
 
index afd3a401a25f7502a5af19172f8b220627b27e19..17f8c2d8446b45c7b91690ab18671a3338dc1e2c 100644 (file)
@@ -3881,6 +3881,7 @@ emit_note_before (enum insn_note subtype, rtx before)
   INSN_UID (note) = cur_insn_uid++;
   NOTE_KIND (note) = subtype;
   BLOCK_FOR_INSN (note) = NULL;
+  memset (&NOTE_DATA (note), 0, sizeof (NOTE_DATA (note)));
 
   add_insn_before (note, before);
   return note;
@@ -4078,6 +4079,7 @@ emit_note_after (enum insn_note subtype, rtx after)
   INSN_UID (note) = cur_insn_uid++;
   NOTE_KIND (note) = subtype;
   BLOCK_FOR_INSN (note) = NULL;
+  memset (&NOTE_DATA (note), 0, sizeof (NOTE_DATA (note)));
   add_insn_after (note, after);
   return note;
 }
index fd4a0218eb26f95e784dbe80d46b6f89144b0fc0..5088df5cab678e37f150720a6ba0b72b957c09ea 100644 (file)
@@ -191,7 +191,7 @@ gendecl (const char *format)
   const char *p;
   int i, pos;
 
-  printf ("extern rtx gen_rtx_fmt_%s\t (RTX_CODE, ", format);
+  printf ("extern rtx gen_rtx_fmt_%s_stat\t (RTX_CODE, ", format);
   printf ("enum machine_mode mode");
 
   /* Write each parameter that is needed and start a new line when the line
@@ -208,8 +208,18 @@ gendecl (const char *format)
        printf (" %sarg%d", type_from_format (*p), i++);
        pos += ourlen;
       }
+  printf (" MEM_STAT_DECL");
 
   printf (");\n");
+  printf ("#define gen_rtx_fmt_%s(c, m", format);
+  for (p = format, i = 0; *p != 0; p++)
+    if (*p != '0')
+      printf (", p%i",i++);
+  printf (")\\\n        gen_rtx_fmt_%s_stat (c, m", format);
+  for (p = format, i = 0; *p != 0; p++)
+    if (*p != '0')
+      printf (", p%i",i++);
+  printf (" MEM_STAT_INFO)\n\n");
 }
 
 /* Generate macros to generate RTL of code IDX using the functions we
@@ -257,18 +267,18 @@ gendef (const char *format)
   /* Start by writing the definition of the function name and the types
      of the arguments.  */
 
-  printf ("rtx\ngen_rtx_fmt_%s (RTX_CODE code, enum machine_mode mode", format);
+  printf ("rtx\ngen_rtx_fmt_%s_stat (RTX_CODE code, enum machine_mode mode", format);
   for (p = format, i = 0; *p != 0; p++)
     if (*p != '0')
       printf (",\n\t%sarg%d", type_from_format (*p), i++);
 
-  puts (")");
+  puts (" MEM_STAT_DECL)");
 
   /* Now write out the body of the function itself, which allocates
      the memory and initializes it.  */
   puts ("{");
   puts ("  rtx rt;");
-  puts ("  rt = rtx_alloc (code);\n");
+  puts ("  rt = rtx_alloc_stat (code PASS_MEM_STAT);\n");
 
   puts ("  PUT_MODE (rt, mode);");
 
@@ -299,6 +309,7 @@ genheader (void)
 
   puts ("#ifndef GCC_GENRTL_H");
   puts ("#define GCC_GENRTL_H\n");
+  puts ("#include \"statistics.h\"\n");
 
   for (fmt = formats; *fmt; ++fmt)
     gendecl (*fmt);
index 7301b08d03e8d02c43d20e26d29c95e89a2fcb17..a47a02b87febfe8c70db207dae65b5784f05936e 100644 (file)
@@ -56,8 +56,8 @@ static void print_rtx (rtx);
    the assembly output file.  */
 const char *print_rtx_head = "";
 
-/* Nonzero means suppress output of instruction numbers and line number
-   notes in debugging dumps.
+/* Nonzero means suppress output of instruction numbers
+   in debugging dumps.
    This must be defined here so that programs like gencodes can be linked.  */
 int flag_dump_unnumbered = 0;
 
@@ -705,6 +705,8 @@ debug_rtx_find (rtx x, int uid)
 void
 print_rtl (FILE *outf, rtx rtx_first)
 {
+  rtx tmp_rtx;
+
   outfile = outf;
   sawclose = 0;
 
@@ -722,6 +724,12 @@ print_rtl (FILE *outf, rtx rtx_first)
       case NOTE:
       case CODE_LABEL:
       case BARRIER:
+       for (tmp_rtx = rtx_first; tmp_rtx != 0; tmp_rtx = NEXT_INSN (tmp_rtx))
+         {
+           fputs (print_rtx_head, outfile);
+           print_rtx (tmp_rtx);
+           fprintf (outfile, "\n");
+         }
        break;
 
       default: