aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/autopar/pr69109-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/autopar/pr69109.c4
-rw-r--r--gcc/tree-parloops.c4
5 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 43623dc..c0c3cec 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2016-01-11 Tom de Vries <tom@codesourcery.com>
+ PR tree-optimization/69109
+ * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
+ latch with phi.
+
+2016-01-11 Tom de Vries <tom@codesourcery.com>
+
PR tree-optimization/69108
* tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
res is not used in a phi.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ec4cd37..a160ed0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2016-01-11 Tom de Vries <tom@codesourcery.com>
+ PR tree-optimization/69109
+ * gcc.dg/autopar/pr69109-2.c: New test.
+ * gcc.dg/autopar/pr69109.c: New test.
+
+2016-01-11 Tom de Vries <tom@codesourcery.com>
+
PR tree-optimization/69108
* gcc.dg/autopar/pr69108.c: New test.
diff --git a/gcc/testsuite/gcc.dg/autopar/pr69109-2.c b/gcc/testsuite/gcc.dg/autopar/pr69109-2.c
new file mode 100644
index 0000000..0a3154b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/autopar/pr69109-2.c
@@ -0,0 +1,4 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -funswitch-loops" } */
+
+#include "../../gcc.c-torture/compile/pr32399.c"
diff --git a/gcc/testsuite/gcc.dg/autopar/pr69109.c b/gcc/testsuite/gcc.dg/autopar/pr69109.c
new file mode 100644
index 0000000..58f3a9f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/autopar/pr69109.c
@@ -0,0 +1,4 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -funswitch-loops" } */
+
+#include "../vect/unswitch-loops-pr26969.c"
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index d683704..5afaaf8 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -1769,6 +1769,10 @@ try_transform_to_exit_first_loop_alt (struct loop *loop,
if (!gimple_seq_nondebug_singleton_p (bb_seq (loop->latch)))
return false;
+ /* Check whether the latch contains no phis. */
+ if (phi_nodes (loop->latch) != NULL)
+ return false;
+
/* Check whether the latch contains the loop iv increment. */
edge back = single_succ_edge (loop->latch);
edge exit = single_dom_exit (loop);