diff options
author | Martin Liska <mliska@suse.cz> | 2017-06-13 10:59:28 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2017-06-13 08:59:28 +0000 |
commit | 9ab5a235c5503fad7f7bd2cb8240d802eebfb9ab (patch) | |
tree | e7d1f273e41a5e1a0e04de65ad25463ec9da9c12 /gcc/gimple-pretty-print.c | |
parent | da8b0b2b258bfc278508dd107daf20c484ade28f (diff) | |
download | gcc-9ab5a235c5503fad7f7bd2cb8240d802eebfb9ab.zip gcc-9ab5a235c5503fad7f7bd2cb8240d802eebfb9ab.tar.gz gcc-9ab5a235c5503fad7f7bd2cb8240d802eebfb9ab.tar.bz2 |
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
Diffstat (limited to 'gcc/gimple-pretty-print.c')
-rw-r--r-- | gcc/gimple-pretty-print.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/gcc/gimple-pretty-print.c b/gcc/gimple-pretty-print.c index 5ff63a1..447921be 100644 --- a/gcc/gimple-pretty-print.c +++ b/gcc/gimple-pretty-print.c @@ -80,17 +80,22 @@ debug_gimple_stmt (gimple *gs) by xstrdup_for_dump. */ static const char * -dump_probability (int value) +dump_probability (int frequency, profile_count &count) { float minimum = 0.01f; - gcc_assert (0 <= value && value <= REG_BR_PROB_BASE); - float fvalue = value * 100.0f / REG_BR_PROB_BASE; - if (fvalue < minimum && value > 0) + gcc_assert (0 <= frequency && frequency <= REG_BR_PROB_BASE); + float fvalue = frequency * 100.0f / REG_BR_PROB_BASE; + if (fvalue < minimum && frequency > 0) return "[0.01%]"; 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); free (buf); @@ -102,7 +107,7 @@ dump_probability (int value) static void 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 @@ -1085,7 +1090,7 @@ dump_gimple_label (pretty_printer *buffer, glabel *gs, int spc, dump_generic_node (buffer, label, spc, flags, false); basic_block bb = gimple_bb (gs); 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); } if (flags & TDF_GIMPLE) @@ -2665,7 +2670,8 @@ dump_gimple_bb_header (FILE *outf, basic_block bb, int indent, fprintf (outf, "%*sbb_%d:\n", indent, "", bb->index); else fprintf (outf, "%*s<bb %d> %s:\n", - indent, "", bb->index, dump_probability (bb->frequency)); + indent, "", bb->index, dump_probability (bb->frequency, + bb->count)); } } } |