Don't cancel loop tree in parloops
commit86a932e05878fb21771747eb698941b4b5f392e7
authorvries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Jul 2015 06:26:44 +0000 (31 06:26 +0000)
committervries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Jul 2015 06:26:44 +0000 (31 06:26 +0000)
treed4527665684a78ac3e0d04736f8b19c537ed23a7
parent2aa16f1ee0a2abd656c6804afd4988ab14e66dfe
Don't cancel loop tree in parloops

2015-07-31  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/66846
* omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
(expand_omp_target) [ENABLE_CHECKING]: Same.
(execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
cfun if !LOOPS_NEED_FIXUP.
(expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
that omp_for already has its own loop struct.
* tree-parloops.c (create_phi_for_local_result)
(create_call_for_reduction): Handle simple latch bb.
(create_parallel_loop): Add simple latch bb to preserve
LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
(gen_parallel_loop): Remove call to cancel_loop_tree.
(parallelize_loops): Skip loops that are inner loops of parallelized
loops.
(pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
verify_loop_structure.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226427 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/omp-low.c
gcc/tree-parloops.c