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:
parent
4f6403a8ce
commit
d95167eef4
@ -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
|
||||
|
@ -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
|
||||
|
4
gcc/testsuite/gcc.dg/autopar/pr69109-2.c
Normal file
4
gcc/testsuite/gcc.dg/autopar/pr69109-2.c
Normal file
@ -0,0 +1,4 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -ftree-parallelize-loops=2 -funswitch-loops" } */
|
||||
|
||||
#include "../../gcc.c-torture/compile/pr32399.c"
|
4
gcc/testsuite/gcc.dg/autopar/pr69109.c
Normal file
4
gcc/testsuite/gcc.dg/autopar/pr69109.c
Normal file
@ -0,0 +1,4 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -ftree-parallelize-loops=2 -funswitch-loops" } */
|
||||
|
||||
#include "../vect/unswitch-loops-pr26969.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);
|
||||
|
Loading…
Reference in New Issue
Block a user