OSDN Git Service

Add back dot_rdg.
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Sep 2010 21:39:19 +0000 (21:39 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Sep 2010 21:39:19 +0000 (21:39 +0000)
2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>

Revert commit: 2009-12-16  Ben Elliston  <bje@au.ibm.com>
* tree-data-ref.c (dot_rdg_1): Added back.
(dot_rdg): Same.  Added "#if 0" around system call.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164380 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-data-ref.c

index dcfc7e6..ff81b02 100644 (file)
@@ -1,3 +1,9 @@
+2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
+
+       Revert commit: 2009-12-16  Ben Elliston  <bje@au.ibm.com>
+       * tree-data-ref.c (dot_rdg_1): Added back.
+       (dot_rdg): Same.  Added "#if 0" around system call.
+
 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
            Richard Henderson  <rth@redhat.com>
 
index e1d2dfc..06b36e9 100644 (file)
@@ -4709,6 +4709,76 @@ debug_rdg (struct graph *rdg)
   dump_rdg (stderr, rdg);
 }
 
+static void
+dot_rdg_1 (FILE *file, struct graph *rdg)
+{
+  int i;
+
+  fprintf (file, "digraph RDG {\n");
+
+  for (i = 0; i < rdg->n_vertices; i++)
+    {
+      struct vertex *v = &(rdg->vertices[i]);
+      struct graph_edge *e;
+
+      /* Highlight reads from memory.  */
+      if (RDG_MEM_READS_STMT (rdg, i))
+       fprintf (file, "%d [style=filled, fillcolor=green]\n", i);
+
+      /* Highlight stores to memory.  */
+      if (RDG_MEM_WRITE_STMT (rdg, i))
+       fprintf (file, "%d [style=filled, fillcolor=red]\n", i);
+
+      if (v->succ)
+       for (e = v->succ; e; e = e->succ_next)
+         switch (RDGE_TYPE (e))
+           {
+           case input_dd:
+             fprintf (file, "%d -> %d [label=input] \n", i, e->dest);
+             break;
+
+           case output_dd:
+             fprintf (file, "%d -> %d [label=output] \n", i, e->dest);
+             break;
+
+           case flow_dd:
+             /* These are the most common dependences: don't print these. */
+             fprintf (file, "%d -> %d \n", i, e->dest);
+             break;
+
+           case anti_dd:
+             fprintf (file, "%d -> %d [label=anti] \n", i, e->dest);
+             break;
+
+           default:
+             gcc_unreachable ();
+           }
+    }
+
+  fprintf (file, "}\n\n");
+}
+
+/* Display the Reduced Dependence Graph using dotty.  */
+extern void dot_rdg (struct graph *);
+
+DEBUG_FUNCTION void
+dot_rdg (struct graph *rdg)
+{
+  /* When debugging, enable the following code.  This cannot be used
+     in production compilers because it calls "system".  */
+#if 0
+  FILE *file = fopen ("/tmp/rdg.dot", "w");
+  gcc_assert (file != NULL);
+
+  dot_rdg_1 (file, rdg);
+  fclose (file);
+
+  system ("dotty /tmp/rdg.dot &");
+#else
+  dot_rdg_1 (stderr, rdg);
+#endif
+}
+
 /* This structure is used for recording the mapping statement index in
    the RDG.  */