From 7470b8fc5ef3b74256ffe3ccc5d49bd003f375f9 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 16 Dec 2010 23:45:42 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/graphite-sese-to-poly.c | 1 + gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/graphite/pr46966.c | 13 +++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/graphite/pr46966.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 476d31ed83a..9083edc1a07 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-12-16 Jakub Jelinek + + 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 * 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 5036fba4195..202f02861be 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 78ed8c6a589..a90d1ee4240 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-12-16 Jakub Jelinek + + PR tree-optimization/46966 + * gcc.dg/graphite/pr46966.c: New test. + 2010-12-16 Eric Botcazou * 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 00000000000..ce2a93ca968 --- /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; +} -- 2.30.2