aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-12-16 23:45:42 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2010-12-16 23:45:42 +0100
commit7470b8fc5ef3b74256ffe3ccc5d49bd003f375f9 (patch)
tree62c7310f14b47a35c409c8009d6c5ca5ed938cc5 /gcc
parent9c8cbc740a2c2314a28b739ad87a44b0341e18e3 (diff)
downloadgcc-7470b8fc5ef3b74256ffe3ccc5d49bd003f375f9.zip
gcc-7470b8fc5ef3b74256ffe3ccc5d49bd003f375f9.tar.gz
gcc-7470b8fc5ef3b74256ffe3ccc5d49bd003f375f9.tar.bz2
re PR tree-optimization/46966 (ICE: in execute_cse_reciprocals, at tree-ssa-math-opts.c:474 with -floop-interchange -fno-tree-copy-prop -fno-tree-loop-im)
PR tree-optimization/46966 * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for for bbs that are removed from SCOP_BBS vector. * gcc.dg/graphite/pr46966.c: New test. From-SVN: r167960
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/graphite-sese-to-poly.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr46966.c13
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 476d31e..9083edc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-12-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/46966
+ * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
+ for bbs that are removed from SCOP_BBS vector.
+
2010-12-16 Eric Botcazou <ebotcazou@adacore.com>
* tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 5036fba..202f028 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -1971,6 +1971,7 @@ build_scop_drs (scop_p scop)
for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb); i++)
if (VEC_empty (data_reference_p, GBB_DATA_REFS (PBB_BLACK_BOX (pbb))))
{
+ free_gimple_bb (PBB_BLACK_BOX (pbb));
VEC_ordered_remove (poly_bb_p, SCOP_BBS (scop), i);
i--;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 78ed8c6..a90d1ee 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-12-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/46966
+ * gcc.dg/graphite/pr46966.c: New test.
+
2010-12-16 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/opt13.adb: New test.
diff --git a/gcc/testsuite/gcc.dg/graphite/pr46966.c b/gcc/testsuite/gcc.dg/graphite/pr46966.c
new file mode 100644
index 0000000..ce2a93c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr46966.c
@@ -0,0 +1,13 @@
+/* PR tree-optimization/46966 */
+/* { dg-do compile } */
+/* { dg-options "-O -floop-interchange -ffast-math -fno-tree-copy-prop -fno-tree-loop-im" } */
+
+int a[1000][1000];
+
+void foo ()
+{
+ int i, j;
+ for (i = 0; i < 1000; i++)
+ for (j = 0; j < 1000; j++)
+ a[i][j] = 0;
+}