Patchwork Simple change in dot dumper -- Display profile count and branch probability

login
register
mail settings
Submitter Xinliang David Li
Date April 20, 2013, 10:47 p.m.
Message ID <CAAkRFZKApEq_vf1g_C-OejkiQjVNZXdye4JxxTMdtA+CkjGHOA@mail.gmail.com>
Download mbox | patch
Permalink /patch/238189/
State New
Headers show

Comments

Xinliang David Li - April 20, 2013, 10:47 p.m.
Hi, the graph dump file currently does not show any profile
information. The following simple patch fixed that.  Ok for trunk?

thanks,

David

2013-04-20  Xinliang David Li  <davidxl@google.com>

        * graph.c (draw_cfg_node): Add count and frequency info.
        (draw_cfg_node_succ_edges): Add branch probility as label.

 }
Steven Bosscher - April 20, 2013, 11:02 p.m.
On Sun, Apr 21, 2013 at 12:47 AM, Xinliang David Li wrote:
> Index: graph.c
> ===================================================================
> --- graph.c     (revision 198108)
> +++ graph.c     (working copy)
> @@ -110,6 +110,9 @@ draw_cfg_node (pretty_printer *pp, int f
>    else
>      {
>        pp_character (pp, '{');
> +      if (bb->count)
> +       pp_printf (pp, "COUNT:" HOST_WIDEST_INT_PRINT_DEC, bb->count);
> +      pp_printf (pp, " FREQ:%i |", bb->frequency);
>        pp_write_text_to_stream (pp);
>        dump_bb_for_graph (pp, bb);
>        pp_character (pp, '}');

This doesn't belong here, please put it in cfghooks.c:dump_bb_for_graph.

Otherwise, looks good me.

Ciao!
Steven

Patch

Index: graph.c
===================================================================
--- graph.c     (revision 198108)
+++ graph.c     (working copy)
@@ -110,6 +110,9 @@  draw_cfg_node (pretty_printer *pp, int f
   else
     {
       pp_character (pp, '{');
+      if (bb->count)
+       pp_printf (pp, "COUNT:" HOST_WIDEST_INT_PRINT_DEC, bb->count);
+      pp_printf (pp, " FREQ:%i |", bb->frequency);
       pp_write_text_to_stream (pp);
       dump_bb_for_graph (pp, bb);
       pp_character (pp, '}');
@@ -155,11 +158,12 @@  draw_cfg_node_succ_edges (pretty_printer

       pp_printf (pp,
                 "\tfn_%d_basic_block_%d:s -> fn_%d_basic_block_%d:n "
-                "[style=%s,color=%s,weight=%d,constraint=%s];\n",
+                "[style=%s,color=%s,weight=%d,constraint=%s,
label=\"[%i%%]\"];\n",
                 funcdef_no, e->src->index,
                 funcdef_no, e->dest->index,
                 style, color, weight,
-                (e->flags & (EDGE_FAKE | EDGE_DFS_BACK)) ? "false" : "true");
+                (e->flags & (EDGE_FAKE | EDGE_DFS_BACK)) ? "false" : "true",
+                e->probability * 100 / REG_BR_PROB_BASE);
     }
   pp_flush (pp);