aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2007-05-03 15:27:26 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2007-05-03 13:27:26 +0000
commite604f56c8f802145e244871cbbf667c683d1b964 (patch)
treeb993a189f6be21f7bb002d0d9b6148b9b75960cb /gcc
parente119f74e24c295b1210ff77b626af0937da85177 (diff)
downloadgcc-e604f56c8f802145e244871cbbf667c683d1b964.zip
gcc-e604f56c8f802145e244871cbbf667c683d1b964.tar.gz
gcc-e604f56c8f802145e244871cbbf667c683d1b964.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/lambda-code.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-27.c14
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];
+}