OSDN Git Service

* doc/invoke.texi (-fdump-unnumbered): Update docs when line number
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 May 2007 14:21:14 +0000 (14:21 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 May 2007 14:21:14 +0000 (14:21 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125026 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 5b4258a..88096cc 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 a057a0c..47b68d7 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 afd3a40..17f8c2d 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 fd4a021..5088df5 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 7301b08..a47a02b 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: