We now check that all data references in the current loop and inner loops
contained within loop are valid in an outer region before declaring that the
outer loop is a valid scop.

2015-09-30  Sebastian Pop  <s....@samsung.com>
            Aditya Kumar  <aditya...@samsung.com>

        PR tree-optimization/67754
        * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
        recursion on the inner loops.
---
 gcc/graphite-scop-detection.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c
index a498ddc..d95f527 100644
--- a/gcc/graphite-scop-detection.c
+++ b/gcc/graphite-scop-detection.c
@@ -805,6 +805,18 @@ loop_body_is_valid_scop (loop_p loop, sese_l scop)
        return false;
     }
   free (bbs);
+
+  if (loop->inner)
+    {
+      loop = loop->inner;
+      while (loop)
+       {
+         if (!loop_body_is_valid_scop (loop, scop))
+           return false;
+         loop = loop->next;
+       }
+    }
+
   return true;
 }
 
-- 
2.1.0.243.g30d45f7

Reply via email to