From e604f56c8f802145e244871cbbf667c683d1b964 Mon Sep 17 00:00:00 2001 From: Zdenek Dvorak Date: Thu, 3 May 2007 15:27:26 +0200 Subject: [PATCH] re PR tree-optimization/30565 (ICE with -O1 -ftree-pre -ftree-loop-linear) PR tree-optimization/30565 * lambda-code.c (perfect_nestify): Fix updating of dominators. * gcc.dg/tree-ssa/loop-27.c: New test. From-SVN: r124378 --- gcc/ChangeLog | 5 +++++ gcc/lambda-code.c | 3 ++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/tree-ssa/loop-27.c | 14 ++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/loop-27.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0d7c9ddd0d7..bfbde545dd2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-05-03 Zdenek Dvorak + + PR tree-optimization/30565 + * lambda-code.c (perfect_nestify): Fix updating of dominators. + 2007-05-03 Bernd Schmidt * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns. diff --git a/gcc/lambda-code.c b/gcc/lambda-code.c index ca07bdc2f04..655c0258230 100644 --- a/gcc/lambda-code.c +++ b/gcc/lambda-code.c @@ -2521,7 +2521,8 @@ perfect_nestify (struct loop *loop, set_immediate_dominator (CDI_DOMINATORS, preheaderbb, single_exit (loop)->src); set_immediate_dominator (CDI_DOMINATORS, latchbb, bodybb); - set_immediate_dominator (CDI_DOMINATORS, olddest, bodybb); + set_immediate_dominator (CDI_DOMINATORS, olddest, + recount_dominator (CDI_DOMINATORS, olddest)); /* Create the new iv. */ oldivvar = VEC_index (tree, loopivs, 0); ivvar = create_tmp_var (TREE_TYPE (oldivvar), "perfectiv"); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7a103a1dd22..1f0e63713c5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-05-03 Zdenek Dvorak + + PR tree-optimization/30565 + * gcc.dg/tree-ssa/loop-27.c: New test. + 2007-05-03 Bernd Schmidt * gcc.target/bfin/frmul.c (__v2hi): Use short as base type, not itn. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-27.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-27.c new file mode 100644 index 00000000000..802b7c2aa2b --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-27.c @@ -0,0 +1,14 @@ +/* PR tree-optimization/30565 */ + +/* { dg-do compile } */ +/* { dg-options "-O1 -ftree-pre -ftree-loop-linear" } */ + +static double snrdef[32]; +void psycho_n1(double ltmin[2][32], int stereo) +{ + int i, k; + + for (k = 0; k < stereo; k++) + for (i = 0; i < 32; i++) + ltmin[k][i] = snrdef[i]; +} -- 2.30.2