invoke.texi (-fdump-unnumbered): Update docs when line number notes are gone.

* 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
This commit is contained in:
Jan Hubicka 2007-05-24 16:21:14 +02:00 committed by Jan Hubicka
parent 7544f94a79
commit 9dbe7947ab
5 changed files with 37 additions and 7 deletions

View 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

View 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}.

View 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;
}

View 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);

View 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: