diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lambda-code.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/loop-27.c | 14 |
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0d7c9dd..bfbde54 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-05-03 Zdenek Dvorak <dvorakz@suse.cz> + + PR tree-optimization/30565 + * lambda-code.c (perfect_nestify): Fix updating of dominators. + 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com> * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns. diff --git a/gcc/lambda-code.c b/gcc/lambda-code.c index ca07bdc..655c025 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 7a103a1..1f0e637 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-05-03 Zdenek Dvorak <dvorakz@suse.cz> + + PR tree-optimization/30565 + * gcc.dg/tree-ssa/loop-27.c: New test. + 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com> * 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 0000000..802b7c2 --- /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]; +} |