]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix PR47019: parameters of a SCoP are SCEV analyzable.
authorSebastian Pop <sebastian.pop@amd.com>
Wed, 22 Dec 2010 21:19:34 +0000 (21:19 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Wed, 22 Dec 2010 21:19:34 +0000 (21:19 +0000)
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

gcc/ChangeLog
gcc/sese.h
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/graphite/pr47019.f [new file with mode: 0644]

index 11dea2d503ea742088fbcfd099afee8cc99c99e1..6beaa7c5175afc0ffc9673fc4350cc1b5e7b5782 100644 (file)
@@ -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.
index 97807d820089ffb7bc9f2f56d4488327e8bd821a..d3b8958ce06cac512c14be85f04cc953a702c465 100644 (file)
@@ -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));
 }
index 906fc60ab4e7f2ec46b7d672bc5599a3e15dcd30..22b83bf675875fddde960fe190bff46a9860183e 100644 (file)
@@ -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 (file)
index 0000000..69067e9
--- /dev/null
@@ -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