diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-12-22 21:19:34 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-12-22 21:19:34 +0000 |
commit | 9be8ba7e828bed6ebcbfdae4d2ca60333b8f6f28 (patch) | |
tree | 32d5c830a2180fbe8ee06f2e35048555cb35321d | |
parent | f4da8dce7a9023cf147d1a7537c0b75fe41fecbf (diff) | |
download | gcc-9be8ba7e828bed6ebcbfdae4d2ca60333b8f6f28.zip gcc-9be8ba7e828bed6ebcbfdae4d2ca60333b8f6f28.tar.gz gcc-9be8ba7e828bed6ebcbfdae4d2ca60333b8f6f28.tar.bz2 |
Fix PR47019: parameters of a SCoP are SCEV analyzable.
2010-12-22 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/47019
* sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable.
* gfortran.dg/graphite/pr47019.f: New.
From-SVN: r168182
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/sese.h | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/graphite/pr47019.f | 12 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 11dea2d..6beaa7c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-12-22 Sebastian Pop <sebastian.pop@amd.com> + + PR tree-optimization/47019 + * sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable. + 2010-12-22 Nathan Froyd <froydnj@codesourcery.com> * c-aux-info.c (gen_formal_list_for_type): Use prototype_p. @@ -413,7 +413,8 @@ scev_analyzable_p (tree def, sese region) scev = scalar_evolution_in_region (region, loop, def); return !chrec_contains_undetermined (scev) - && TREE_CODE (scev) != SSA_NAME + && (TREE_CODE (scev) != SSA_NAME + || !defined_in_sese_p (scev, region)) && (tree_does_not_contain_chrecs (scev) || evolution_function_is_affine_p (scev)); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 906fc60..22b83bf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-12-22 Sebastian Pop <sebastian.pop@amd.com> + + PR tree-optimization/47019 + * gfortran.dg/graphite/pr47019.f: New. + 2010-12-22 Jason Merrill <jason@redhat.com> * g++.dg/init/volatile2.C: New. diff --git a/gcc/testsuite/gfortran.dg/graphite/pr47019.f b/gcc/testsuite/gfortran.dg/graphite/pr47019.f new file mode 100644 index 0000000..69067e9 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/graphite/pr47019.f @@ -0,0 +1,12 @@ +! { dg-options "-O -ftree-pre -fgraphite-identity -fno-tree-copy-prop" } + + subroutine foo (ldmx,ldmy,v) + integer :: ldmx, ldmy, v, l, m + dimension v(5,ldmx,ldmy) + do m = 5, 1, -1 + do l = m+1, 5 + v(m,3,2) = v(1,3,2) + end do + v(m,3,2) = m + end do + end |