]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/39007 (-ftree-loop-distribution ICEs)
authorKazu Hirata <kazu@codesourcery.com>
Thu, 29 Jan 2009 18:23:21 +0000 (18:23 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Thu, 29 Jan 2009 18:23:21 +0000 (18:23 +0000)
gcc/
PR tree-optimization/39007
* tree-loop-distribution.c (generate_builtin): Use
recompute_dominator to compute the immediate dominator of the
basic block just after the loop.

gcc/testsuite/
PR tree-optimization/39007
* gcc.dg/tree-ssa/pr39007.c: New.

From-SVN: r143767

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr39007.c [new file with mode: 0644]
gcc/tree-loop-distribution.c

index a7fc861c11535be8543a059135a3cecd5f8bd677..1194f97cf0ce0854d640ba744709bcb52da117d8 100644 (file)
@@ -1,3 +1,10 @@
+2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/39007
+       * tree-loop-distribution.c (generate_builtin): Use
+       recompute_dominator to compute the immediate dominator of the
+       basic block just after the loop.
+
 2008-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
index 942a033f40f910a7924261bad14c73a1bc8f6165..a52ad85a5d84da4d944e9a3cf1242eab842d266a 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/39007
+       * gcc.dg/tree-ssa/pr39007.c: New.
+
 2009-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        PR middle-end/35854
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr39007.c b/gcc/testsuite/gcc.dg/tree-ssa/pr39007.c
new file mode 100644 (file)
index 0000000..94b2443
--- /dev/null
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-loop-distribution" } */
+
+void
+foo (int *__restrict__ p, int *__restrict__ q, int count)
+{
+  int i;
+  for (i = 0; i < count; i++)
+    {
+      *p++ = 0;
+      *q++ = 0;
+    }
+}
index 1463bee93d3b58ca64fc9b63b815911542e6f05d..8eca7c021666bb3e6b70f6636e7a3183e0d3ac63 100644 (file)
@@ -439,11 +439,13 @@ generate_builtin (struct loop *loop, bitmap partition, bool copy_p)
       basic_block dest = single_exit (loop)->dest;
       prop_phis (dest);
       make_edge (src, dest, EDGE_FALLTHRU);
-      set_immediate_dominator (CDI_DOMINATORS, dest, src);
       cancel_loop_tree (loop);
 
       for (i = 0; i < nbbs; i++)
        delete_basic_block (bbs[i]);
+
+      set_immediate_dominator (CDI_DOMINATORS, dest,
+                              recompute_dominator (CDI_DOMINATORS, dest));
     }
 
  end: