Don't allow latch with phi in try_transform_to_exit_first_loop_alt

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.

	* gcc.dg/autopar/pr69109-2.c: New test.
	* gcc.dg/autopar/pr69109.c: New test.

From-SVN: r232212
This commit is contained in:
Tom de Vries 2016-01-11 09:38:28 +00:00 committed by Tom de Vries
parent 4f6403a8ce
commit d95167eef4
5 changed files with 24 additions and 0 deletions

View File

@ -1,3 +1,9 @@
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

View File

@ -1,3 +1,9 @@
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

View File

@ -0,0 +1,4 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-parallelize-loops=2 -funswitch-loops" } */
#include "../../gcc.c-torture/compile/pr32399.c"

View File

@ -0,0 +1,4 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-parallelize-loops=2 -funswitch-loops" } */
#include "../vect/unswitch-loops-pr26969.c"

View File

@ -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);