aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2010-12-22 21:19:34 +0000
committerSebastian Pop <spop@gcc.gnu.org>2010-12-22 21:19:34 +0000
commit9be8ba7e828bed6ebcbfdae4d2ca60333b8f6f28 (patch)
tree32d5c830a2180fbe8ee06f2e35048555cb35321d
parentf4da8dce7a9023cf147d1a7537c0b75fe41fecbf (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/sese.h3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/pr47019.f12
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.
diff --git a/gcc/sese.h b/gcc/sese.h
index 97807d8..d3b8958 100644
--- a/gcc/sese.h
+++ b/gcc/sese.h
@@ -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