diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-10-01 15:17:51 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-10-01 15:17:51 +0000 |
commit | 75f966f746563c5ea158c137b9135e3c384d1661 (patch) | |
tree | 691a0a7c19096f117538e9de6fd08e085859a1f2 /gcc/graphite-scop-detection.c | |
parent | 04009ada97c55121041815652a9d78a432c61c38 (diff) | |
download | gcc-75f966f746563c5ea158c137b9135e3c384d1661.tar.gz |
add recursion on the inner loops
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.pop@samsung.com>
Aditya Kumar <aditya.k7@samsung.com>
PR tree-optimization/67754
* graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
recursion on the inner loops.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228346 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-scop-detection.c')
-rw-r--r-- | gcc/graphite-scop-detection.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c index a498ddcdbfc..d95f527c619 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; } |