Commit 9ab5a235 by Martin Liska Committed by Martin Liska

Enhance dump_probability function.

2017-06-13  Martin Liska  <mliska@suse.cz>

	* gimple-pretty-print.c (dump_probability): Add new argument.
	(dump_edge_probability): Dump both probability and count.
	(dump_gimple_label): Likewise.
	(dump_gimple_bb_header): Likewise.
2017-06-13  Martin Liska  <mliska@suse.cz>

	* gcc.dg/tree-ssa/builtin-sprintf-2.c: Adjust scanned pattern.
	* gcc.dg/tree-ssa/dump-2.c: Likewise.
	* gcc.dg/tree-ssa/vrp101.c: Likewise.

From-SVN: r249147
parent da8b0b2b
2017-06-13 Martin Liska <mliska@suse.cz>
* gimple-pretty-print.c (dump_probability): Add new argument.
(dump_edge_probability): Dump both probability and count.
(dump_gimple_label): Likewise.
(dump_gimple_bb_header): Likewise.
2017-06-13 Georg-Johann Lay <avr@gjlay.de> 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
PR target/81072 PR target/81072
......
...@@ -80,17 +80,22 @@ debug_gimple_stmt (gimple *gs) ...@@ -80,17 +80,22 @@ debug_gimple_stmt (gimple *gs)
by xstrdup_for_dump. */ by xstrdup_for_dump. */
static const char * static const char *
dump_probability (int value) dump_probability (int frequency, profile_count &count)
{ {
float minimum = 0.01f; float minimum = 0.01f;
gcc_assert (0 <= value && value <= REG_BR_PROB_BASE); gcc_assert (0 <= frequency && frequency <= REG_BR_PROB_BASE);
float fvalue = value * 100.0f / REG_BR_PROB_BASE; float fvalue = frequency * 100.0f / REG_BR_PROB_BASE;
if (fvalue < minimum && value > 0) if (fvalue < minimum && frequency > 0)
return "[0.01%]"; return "[0.01%]";
char *buf; char *buf;
asprintf (&buf, "[%.2f%%]", fvalue); if (count.initialized_p ())
asprintf (&buf, "[%.2f%%] [count: %" PRId64 "]", fvalue,
count.to_gcov_type ());
else
asprintf (&buf, "[%.2f%%] [count: INV]", fvalue);
const char *ret = xstrdup_for_dump (buf); const char *ret = xstrdup_for_dump (buf);
free (buf); free (buf);
...@@ -102,7 +107,7 @@ dump_probability (int value) ...@@ -102,7 +107,7 @@ dump_probability (int value)
static void static void
dump_edge_probability (pretty_printer *buffer, edge e) dump_edge_probability (pretty_printer *buffer, edge e)
{ {
pp_scalar (buffer, " %s", dump_probability (e->probability)); pp_scalar (buffer, " %s", dump_probability (e->probability, e->count));
} }
/* Print GIMPLE statement G to FILE using SPC indentation spaces and /* Print GIMPLE statement G to FILE using SPC indentation spaces and
...@@ -1085,7 +1090,7 @@ dump_gimple_label (pretty_printer *buffer, glabel *gs, int spc, ...@@ -1085,7 +1090,7 @@ dump_gimple_label (pretty_printer *buffer, glabel *gs, int spc,
dump_generic_node (buffer, label, spc, flags, false); dump_generic_node (buffer, label, spc, flags, false);
basic_block bb = gimple_bb (gs); basic_block bb = gimple_bb (gs);
if (bb && !(flags & TDF_GIMPLE)) if (bb && !(flags & TDF_GIMPLE))
pp_scalar (buffer, " %s", dump_probability (bb->frequency)); pp_scalar (buffer, " %s", dump_probability (bb->frequency, bb->count));
pp_colon (buffer); pp_colon (buffer);
} }
if (flags & TDF_GIMPLE) if (flags & TDF_GIMPLE)
...@@ -2665,7 +2670,8 @@ dump_gimple_bb_header (FILE *outf, basic_block bb, int indent, ...@@ -2665,7 +2670,8 @@ dump_gimple_bb_header (FILE *outf, basic_block bb, int indent,
fprintf (outf, "%*sbb_%d:\n", indent, "", bb->index); fprintf (outf, "%*sbb_%d:\n", indent, "", bb->index);
else else
fprintf (outf, "%*s<bb %d> %s:\n", fprintf (outf, "%*s<bb %d> %s:\n",
indent, "", bb->index, dump_probability (bb->frequency)); indent, "", bb->index, dump_probability (bb->frequency,
bb->count));
} }
} }
} }
......
2017-06-13 Martin Liska <mliska@suse.cz>
* gcc.dg/tree-ssa/builtin-sprintf-2.c: Adjust scanned pattern.
* gcc.dg/tree-ssa/dump-2.c: Likewise.
* gcc.dg/tree-ssa/vrp101.c: Likewise.
2017-06-13 Richard Biener <rguenther@suse.de> 2017-06-13 Richard Biener <rguenther@suse.de>
PR middle-end/81065 PR middle-end/81065
......
...@@ -290,7 +290,7 @@ RNG (0, 6, 8, "%s%ls", "1", L"2"); ...@@ -290,7 +290,7 @@ RNG (0, 6, 8, "%s%ls", "1", L"2");
/* Only conditional calls to must_not_eliminate must be made (with /* Only conditional calls to must_not_eliminate must be made (with
any probability): any probability):
{ dg-final { scan-tree-dump-times "> \\\[\[0-9.\]+%\\\]:\n *must_not_eliminate" 127 "optimized" { target { ilp32 || lp64 } } } } { dg-final { scan-tree-dump-times "> \\\[\[0-9.\]+%\\\]\\ \\\[count:\\[^:\\]*\\\]:\n *must_not_eliminate" 127 "optimized" { target { ilp32 || lp64 } } } }
{ dg-final { scan-tree-dump-times "> \\\[\[0-9.\]+%\\\]:\n *must_not_eliminate" 96 "optimized" { target { { ! ilp32 } && { ! lp64 } } } } } { dg-final { scan-tree-dump-times "> \\\[\[0-9.\]+%\\\]\\ \\\[count:\\[^:\\]*\\\]:\n *must_not_eliminate" 96 "optimized" { target { { ! ilp32 } && { ! lp64 } } } } }
No unconditional calls to abort should be made: No unconditional calls to abort should be made:
{ dg-final { scan-tree-dump-not ";\n *must_not_eliminate" "optimized" } } */ { dg-final { scan-tree-dump-not ";\n *must_not_eliminate" "optimized" } } */
...@@ -6,4 +6,4 @@ int f(void) ...@@ -6,4 +6,4 @@ int f(void)
return 0; return 0;
} }
/* { dg-final { scan-tree-dump "<bb \[0-9\]> \\\[100\\\.00%\\\]:" "optimized" } } */ /* { dg-final { scan-tree-dump "<bb \[0-9\]> \\\[100\\\.00%\\\] \\\[count: INV\\\]:" "optimized" } } */
...@@ -10,4 +10,4 @@ int main () ...@@ -10,4 +10,4 @@ int main ()
return 0; return 0;
} }
/* { dg-final { scan-tree-dump "<bb 2> \\\[\[0-9.\]+%\\\]:\[\n\r \]*return 0;" "optimized" } } */ /* { dg-final { scan-tree-dump "<bb 2> \\\[\[0-9.\]+%\\\] \\\[count: \\[^:\\]*\\\]:\[\n\r \]*return 0;" "optimized" } } */
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