2015-10-07  Aditya Kumar  <aditya...@samsung.com>
                Sebastian Pop  <s....@samsung.com>

                * graphite-dependences.c (scop_get_dependences): Add dump of the
                data dependence graph.
                * graphite-poly.c (print_isl_union_map): New.
                (debug_isl_union_map): New.
                * graphite-poly.h (print_isl_union_map): Declare.
                (debug_isl_union_map): Declare.
---
 gcc/graphite-dependences.c |  7 +++++++
 gcc/graphite-poly.c        | 16 ++++++++++++++++
 gcc/graphite-poly.h        |  2 ++
 3 files changed, 25 insertions(+)

diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c
index e879429..aef29ac 100644
--- a/gcc/graphite-dependences.c
+++ b/gcc/graphite-dependences.c
@@ -355,6 +355,13 @@ scop_get_dependences (scop_p scop)
   dependences = isl_union_map_union (dependences,
                                     isl_union_map_copy (scop->may_waw));
 
+  if (dump_file)
+    {
+      fprintf (dump_file, "data dependences (\n");
+      print_isl_union_map (dump_file, dependences);
+      fprintf (dump_file, ")\n");
+    }
+
   return dependences;
 }
 
diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c
index c3a14c7..0d1dc63 100644
--- a/gcc/graphite-poly.c
+++ b/gcc/graphite-poly.c
@@ -595,6 +595,22 @@ debug_isl_map (isl_map *map)
 }
 
 void
+print_isl_union_map (FILE *f, isl_union_map *map)
+{
+  isl_printer *p = isl_printer_to_file (the_isl_ctx, f);
+  p = isl_printer_print_union_map (p, map);
+  p = isl_printer_print_str (p, "\n");
+  isl_printer_free (p);
+}
+
+DEBUG_FUNCTION void
+debug_isl_union_map (isl_union_map *map)
+{
+  print_isl_union_map (stderr, map);
+}
+
+
+void
 print_isl_aff (FILE *f, isl_aff *aff)
 {
   isl_printer *p = isl_printer_to_file (the_isl_ctx, f);
diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h
index 6b97b71..63fdb3b 100644
--- a/gcc/graphite-poly.h
+++ b/gcc/graphite-poly.h
@@ -298,10 +298,12 @@ extern void debug_iteration_domain (poly_bb_p);
 extern void debug_iteration_domains (scop_p);
 extern void print_isl_set (FILE *, isl_set *);
 extern void print_isl_map (FILE *, isl_map *);
+extern void print_isl_union_map (FILE *, isl_union_map *);
 extern void print_isl_aff (FILE *, isl_aff *);
 extern void print_isl_constraint (FILE *, isl_constraint *);
 extern void debug_isl_set (isl_set *);
 extern void debug_isl_map (isl_map *);
+extern void debug_isl_union_map (isl_union_map *);
 extern void debug_isl_aff (isl_aff *);
 extern void debug_isl_constraint (isl_constraint *);
 extern int scop_do_interchange (scop_p);
-- 
1.9.1

Reply via email to