OSDN Git Service

2009-10-09 Sebastian Pop <sebastian.pop@amd.com>
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Nov 2009 04:57:45 +0000 (04:57 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Nov 2009 04:57:45 +0000 (04:57 +0000)
* graphite-poly.h (lst_find_pbb): New.
(find_lst_loop): New.

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

gcc/ChangeLog.graphite
gcc/graphite-poly.h
gcc/graphite-sese-to-poly.c

index 4e816c6..a058e52 100644 (file)
@@ -1,5 +1,10 @@
 2009-10-09  Sebastian Pop  <sebastian.pop@amd.com>
 
+       * graphite-poly.h (lst_find_pbb): New.
+       (find_lst_loop): New.
+
+2009-10-09  Sebastian Pop  <sebastian.pop@amd.com>
+
        * graphite-poly.c (new_scop): Remove init of SCOP_DEP_GRAPH.
        * graphite-poly.h (struct scop): Remove dep_graph field.
        (SCOP_DEP_GRAPH): Removed.
index ab6dbbb..f059834 100644 (file)
@@ -724,6 +724,47 @@ lst_dewey_number (lst_p lst)
   return -1;
 }
 
+/* Return the LST node corresponding to PBB.  */
+
+static inline lst_p
+lst_find_pbb (lst_p lst, poly_bb_p pbb)
+{
+  int i;
+  lst_p l;
+
+  if (!lst)
+    return NULL;
+
+  if (LST_LOOP_P (lst))
+    for (i = 0; VEC_iterate (lst_p, LST_SEQ (lst), i, l); i++)
+      {
+       lst_p res = lst_find_pbb (l, pbb);
+       if (res)
+         return res;
+      }
+  else if (pbb == LST_PBB (lst))
+    return lst;
+
+  return NULL;
+}
+
+/* Return the LST node corresponding to the loop around STMT at depth
+   LOOP_DEPTH.  */
+
+static inline lst_p
+find_lst_loop (lst_p stmt, int loop_depth)
+{
+  lst_p loop = LST_LOOP_FATHER (stmt);
+
+  gcc_assert (loop_depth >= 0);
+
+  while (loop_depth < lst_depth (loop))
+    loop = LST_LOOP_FATHER (loop);
+
+  return loop;
+}
+
+
 /* A SCOP is a Static Control Part of the program, simple enough to be
    represented in polyhedral form.  */
 struct scop
index 1dea7fd..24e79cf 100644 (file)
@@ -1060,7 +1060,6 @@ gbb_from_bb (basic_block bb)
 static void
 build_loop_iteration_domains (scop_p scop, struct loop *loop,
                               ppl_Polyhedron_t outer_ph, int nb)
-
 {
   int i;
   ppl_Polyhedron_t ph;