Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > b5e52bbfb4bb11a6cbed452927fba979 > files > 52

gcc-4.1.2-50.el5.src.rpm

2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/30565
	* lambda-code.c (perfect_nestify): Fix updating of dominators.

	* gcc.dg/tree-ssa/loop-27.c: New test.

--- gcc/lambda-code.c	(revision 124377)
+++ gcc/lambda-code.c	(revision 124378)
@@ -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");
--- gcc/testsuite/gcc.dg/tree-ssa/loop-27.c	(revision 0)
+++ gcc/testsuite/gcc.dg/tree-ssa/loop-27.c	(revision 124378)
@@ -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];
+}