From: Martin Liska Date: Wed, 14 Dec 2016 10:33:10 +0000 (+0100) Subject: Print 2 digits after decimal delimiter for BB frequencies X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e19ef86d01cee1e094ab518951862ddf77ccb03d;p=gcc.git Print 2 digits after decimal delimiter for BB frequencies * gimple-pretty-print.c (dump_probability): New function. (dump_edge_probability): Use the function. (dump_gimple_label): Likewise. (dump_gimple_bb_header): Likewise. * gcc.dg/tree-ssa/20040703-1.c: Update scanned pattern. * gcc.dg/tree-ssa/dump-2.c: Likewise. From-SVN: r243643 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 93235608438..25c01dba752 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-12-14 Martin Liska + + * gimple-pretty-print.c (dump_probability): New function. + (dump_edge_probability): Use the function. + (dump_gimple_label): Likewise. + (dump_gimple_bb_header): Likewise. + 2016-12-14 Prathamesh Kulkarni Jakub Jelinek diff --git a/gcc/gimple-pretty-print.c b/gcc/gimple-pretty-print.c index 1bd4cde03cf..1a66953533b 100644 --- a/gcc/gimple-pretty-print.c +++ b/gcc/gimple-pretty-print.c @@ -73,13 +73,35 @@ debug_gimple_stmt (gimple *gs) print_gimple_stmt (stderr, gs, 0, TDF_VOPS|TDF_MEMSYMS); } + +/* Return formatted string of a VALUE probability + (biased by REG_BR_PROB_BASE). Returned string is allocated + by xstrdup_for_dump. */ + +static const char * +dump_probability (int value) +{ + 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) + return "[0.01%]"; + + char *buf; + asprintf (&buf, "[%.2f%%]", fvalue); + const char *ret = xstrdup_for_dump (buf); + free (buf); + + return ret; +} + /* Dump E probability to BUFFER. */ static void dump_edge_probability (pretty_printer *buffer, edge e) { - pp_scalar (buffer, " [%.1f%%]", - e->probability * 100.0 / REG_BR_PROB_BASE); + pp_scalar (buffer, " %s", dump_probability (e->probability)); } /* Print GIMPLE statement G to FILE using SPC indentation spaces and @@ -1032,8 +1054,7 @@ dump_gimple_label (pretty_printer *buffer, glabel *gs, int spc, int flags) dump_generic_node (buffer, label, spc, flags, false); basic_block bb = gimple_bb (gs); if (bb && !(flags & TDF_GIMPLE)) - pp_scalar (buffer, " [%.1f%%]", - bb->frequency * 100.0 / REG_BR_PROB_BASE); + pp_scalar (buffer, " %s", dump_probability (bb->frequency)); pp_colon (buffer); } if (flags & TDF_GIMPLE) @@ -2599,8 +2620,8 @@ dump_gimple_bb_header (FILE *outf, basic_block bb, int indent, int flags) if (flags & TDF_GIMPLE) fprintf (outf, "%*sbb_%d:\n", indent, "", bb->index); else - fprintf (outf, "%*s [%.1f%%]:\n", indent, "", bb->index, - bb->frequency * 100.0 / REG_BR_PROB_BASE); + fprintf (outf, "%*s %s:\n", + indent, "", bb->index, dump_probability (bb->frequency)); } } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 046aea62623..43cf4900f5a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-12-14 Martin Liska + + * gcc.dg/tree-ssa/20040703-1.c: Update scanned pattern. + * gcc.dg/tree-ssa/dump-2.c: Likewise. + 2016-12-14 Toma Tabacu * gcc.target/mips/msa-builtins-err.c (dg-options): Add diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c index 29800476852..eb9fb5640f7 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c @@ -9,4 +9,4 @@ float foo(float x) } /* We should *not* fold the arithmetic. */ -/* { dg-final { scan-tree-dump-times "0\\.0\[^%\]" 0 "dom2"} } */ +/* { dg-final { scan-tree-dump-times "0\\.0\[^%0\]" 0 "dom2"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/dump-2.c b/gcc/testsuite/gcc.dg/tree-ssa/dump-2.c index 11cde92a7e0..8a63af4e0ef 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/dump-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/dump-2.c @@ -6,4 +6,4 @@ int f(void) return 0; } -/* { dg-final { scan-tree-dump " \\\[100\\\.0%\\\]:" "optimized" } } */ +/* { dg-final { scan-tree-dump " \\\[100\\\.00%\\\]:" "optimized" } } */