re PR tree-optimization/46966 (ICE: in execute_cse_reciprocals, at tree-ssa-math...
authorJakub Jelinek <jakub@redhat.com>
Thu, 16 Dec 2010 22:45:42 +0000 (23:45 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 16 Dec 2010 22:45:42 +0000 (23:45 +0100)
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

gcc/ChangeLog
gcc/graphite-sese-to-poly.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/graphite/pr46966.c [new file with mode: 0644]

index 476d31ed83ad8106c9922deabf35e18842d58b7a..9083edc1a07824fb399ebae3d4bc2ac574ef5831 100644 (file)
@@ -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
index 5036fba4195aaef94f92f80d51861a1309f01360..202f02861be32e29532b3fb88d29d09e6995f0c9 100644 (file)
@@ -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--;
       }
index 78ed8c6a589f0cf0ed4f758447cd179e243a742f..a90d1ee4240103880891311086f6decc98e5d077 100644 (file)
@@ -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 (file)
index 0000000..ce2a93c
--- /dev/null
@@ -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;
+}