Commit 5edb1c48 by Martin Liska Committed by Martin Liska

Learn GIMPLE pretty printer to produce nicer dump output.

2017-07-31  Martin Liska  <mliska@suse.cz>

	* gimple-pretty-print.c (dump_gimple_label): Never dump
	BB info.
	(dump_gimple_bb_header): Always dump BB info.
	(pp_cfg_jump): Do not append info about BB when dumping a jump.
2017-07-31  Martin Liska  <mliska@suse.cz>

	* gcc.dg/builtin-unreachable-6.c: Update scanned patterns.
	* gcc.dg/tree-ssa/attr-hotcold-2.c: Likewise.

From-SVN: r250731
parent f34ebeb2
2017-07-31 Martin Liska <mliska@suse.cz> 2017-07-31 Martin Liska <mliska@suse.cz>
* gimple-pretty-print.c (dump_gimple_label): Never dump
BB info.
(dump_gimple_bb_header): Always dump BB info.
(pp_cfg_jump): Do not append info about BB when dumping a jump.
2017-07-31 Martin Liska <mliska@suse.cz>
PR sanitize/81530 PR sanitize/81530
* convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
also with current_function_decl non-null equality. also with current_function_decl non-null equality.
......
...@@ -1120,9 +1120,6 @@ dump_gimple_label (pretty_printer *buffer, glabel *gs, int spc, ...@@ -1120,9 +1120,6 @@ dump_gimple_label (pretty_printer *buffer, glabel *gs, int spc,
else else
{ {
dump_generic_node (buffer, label, spc, flags, false); dump_generic_node (buffer, label, spc, flags, false);
basic_block bb = gimple_bb (gs);
if (bb && !(flags & TDF_GIMPLE))
pp_scalar (buffer, " %s", dump_profile (bb->frequency, bb->count));
pp_colon (buffer); pp_colon (buffer);
} }
if (flags & TDF_GIMPLE) if (flags & TDF_GIMPLE)
...@@ -2695,9 +2692,6 @@ dump_gimple_bb_header (FILE *outf, basic_block bb, int indent, ...@@ -2695,9 +2692,6 @@ dump_gimple_bb_header (FILE *outf, basic_block bb, int indent,
} }
else else
{ {
gimple *stmt = first_stmt (bb);
if (!stmt || gimple_code (stmt) != GIMPLE_LABEL)
{
if (flags & TDF_GIMPLE) if (flags & TDF_GIMPLE)
fprintf (outf, "%*sbb_%d:\n", indent, "", bb->index); fprintf (outf, "%*sbb_%d:\n", indent, "", bb->index);
else else
...@@ -2705,7 +2699,6 @@ dump_gimple_bb_header (FILE *outf, basic_block bb, int indent, ...@@ -2705,7 +2699,6 @@ dump_gimple_bb_header (FILE *outf, basic_block bb, int indent,
indent, "", bb->index, dump_profile (bb->frequency, indent, "", bb->index, dump_profile (bb->frequency,
bb->count)); bb->count));
} }
}
} }
...@@ -2760,21 +2753,9 @@ pp_cfg_jump (pretty_printer *buffer, edge e, dump_flags_t flags) ...@@ -2760,21 +2753,9 @@ pp_cfg_jump (pretty_printer *buffer, edge e, dump_flags_t flags)
} }
else else
{ {
gimple *stmt = first_stmt (e->dest);
pp_string (buffer, "goto <bb "); pp_string (buffer, "goto <bb ");
pp_decimal_int (buffer, e->dest->index); pp_decimal_int (buffer, e->dest->index);
pp_greater (buffer); pp_greater (buffer);
if (stmt && gimple_code (stmt) == GIMPLE_LABEL)
{
pp_string (buffer, " (");
dump_generic_node (buffer,
gimple_label_label (as_a <glabel *> (stmt)),
0, 0, false);
pp_right_paren (buffer);
pp_semicolon (buffer);
}
else
pp_semicolon (buffer); pp_semicolon (buffer);
dump_edge_probability (buffer, e); dump_edge_probability (buffer, e);
......
2017-07-31 Martin Liska <mliska@suse.cz> 2017-07-31 Martin Liska <mliska@suse.cz>
* gcc.dg/builtin-unreachable-6.c: Update scanned patterns.
* gcc.dg/tree-ssa/attr-hotcold-2.c: Likewise.
2017-07-31 Martin Liska <mliska@suse.cz>
PR sanitize/81530 PR sanitize/81530
* g++.dg/ubsan/pr81530.C: New test. * g++.dg/ubsan/pr81530.C: New test.
......
...@@ -16,5 +16,5 @@ lab2: ...@@ -16,5 +16,5 @@ lab2:
goto *x; goto *x;
} }
/* { dg-final { scan-tree-dump-times "lab \\\[\[0-9.\]+%\\\]" 1 "fab1" } } */ /* { dg-final { scan-tree-dump-times "lab:" 1 "fab1" } } */
/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "fab1" } } */ /* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "fab1" } } */
...@@ -20,9 +20,9 @@ void f(int x, int y) ...@@ -20,9 +20,9 @@ void f(int x, int y)
/* { dg-final { scan-tree-dump-times "hot label heuristics" 1 "profile_estimate" } } */ /* { dg-final { scan-tree-dump-times "hot label heuristics" 1 "profile_estimate" } } */
/* { dg-final { scan-tree-dump-times "cold label heuristics" 1 "profile_estimate" } } */ /* { dg-final { scan-tree-dump-times "cold label heuristics" 1 "profile_estimate" } } */
/* { dg-final { scan-tree-dump "A \\\[0\\\..*\\\]" "profile_estimate" } } */ /* { dg-final { scan-tree-dump-times "combined heuristics: 0\\\..*" 1 "profile_estimate" } } */
/* Note: we're attempting to match some number > 6000, i.e. > 60%. /* Note: we're attempting to match some number > 6000, i.e. > 60%.
The exact number ought to be tweekable without having to juggle The exact number ought to be tweekable without having to juggle
the testcase around too much. */ the testcase around too much. */
/* { dg-final { scan-tree-dump "B \\\[\[6-9\]\[0-9\]\\\..*\\\]" "profile_estimate" } } */ /* { dg-final { scan-tree-dump-times "combined heuristics: \[6-9\]\[0-9\]\\\..*" 1 "profile_estimate" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment