graphite-poly.c (loop_to_lst): Fix LST creation.
authorSebastian Pop <sebastian.pop@amd.com>
Wed, 25 Nov 2009 05:03:58 +0000 (05:03 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Wed, 25 Nov 2009 05:03:58 +0000 (05:03 +0000)
2009-10-14  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-poly.c (loop_to_lst): Fix LST creation.

From-SVN: r154581

gcc/ChangeLog.graphite
gcc/graphite-poly.c

index 5d53275..e58bf04 100644 (file)
@@ -1,3 +1,7 @@
+2009-10-14  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-poly.c (loop_to_lst): Fix LST creation.
+
 2009-10-14  Tobias Grosser  <grosser@fim.uni-passau.de>
 
        * testsuite/gcc.dg/graphite/id-15.c: (8 * 8) replaced with
index 659839d..6373337 100644 (file)
@@ -834,22 +834,19 @@ loop_to_lst (loop_p loop, VEC (poly_bb_p, heap) *bbs, int *i)
 
       if (bb->loop_father == loop)
        stmt = new_lst_stmt (pbb);
-      else
+      else if (flow_bb_inside_loop_p (loop, bb))
        {
-         if (flow_bb_inside_loop_p (loop, bb))
-           stmt = loop_to_lst (loop->inner, bbs, i);
-         else
-           {
-             loop_p next = loop;
+         loop_p next = loop->inner;
 
-             while ((next = next->next)
-                    && !flow_bb_inside_loop_p (next, bb));
+         while (next && !flow_bb_inside_loop_p (next, bb))
+           next = next->next;
 
-             if (!next)
-               return new_lst_loop (seq);
-
-             stmt = loop_to_lst (next, bbs, i);
-           }
+         stmt = loop_to_lst (next, bbs, i);
+       }
+      else
+       {
+         (*i)--;
+         return new_lst_loop (seq);
        }
 
       VEC_safe_push (lst_p, heap, seq, stmt);