+2009-10-13 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c (dot_deps_stmt_1): New.
+ (dot_deps_stmt): New.
+ * graphite-dependences.h (dot_deps_stmt): Declared.
+
2009-10-09 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence): Do
return false;
}
+/* Pretty print to FILE all the data dependences of SCoP in DOT
+ format. */
+
+static void
+dot_deps_stmt_1 (FILE *file, scop_p scop)
+{
+ int i, j, k, l;
+ poly_bb_p pbb1, pbb2;
+ poly_dr_p pdr1, pdr2;
+
+ fputs ("digraph all {\n", file);
+
+ for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb1); i++)
+ for (j = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), j, pbb2); j++)
+ {
+ for (k = 0; VEC_iterate (poly_dr_p, PBB_DRS (pbb1), k, pdr1); k++)
+ for (l = 0; VEC_iterate (poly_dr_p, PBB_DRS (pbb2), l, pdr2); l++)
+ if (pddr_original_scattering (pbb1, pbb2, pdr1, pdr2))
+ {
+ fprintf (file, "S%d -> S%d\n",
+ pbb_index (pbb1), pbb_index (pbb2));
+ goto done;
+ }
+ done:;
+ }
+
+ fputs ("}\n\n", file);
+}
+
/* Pretty print to FILE all the data dependences of SCoP in DOT
format. */
#endif
}
+/* Display all the statement dependences in SCoP using dotty. */
+
+void
+dot_deps_stmt (scop_p scop)
+{
+ /* When debugging, enable the following code. This cannot be used
+ in production compilers because it calls "system". */
+#if 0
+ int x;
+ FILE *stream = fopen ("/tmp/scopdeps.dot", "w");
+ gcc_assert (stream);
+
+ dot_deps_stmt_1 (stream, scop);
+ fclose (stream);
+
+ x = system ("dotty /tmp/scopdeps.dot");
+#else
+ dot_deps_1 (stderr, scop);
+#endif
+}
#endif