Don't cancel loop tree in parloops
authorTom de Vries <tom@codesourcery.com>
Fri, 31 Jul 2015 06:26:44 +0000 (06:26 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Fri, 31 Jul 2015 06:26:44 +0000 (06:26 +0000)
commite67d7a1ea15cb266edf4a9ae2315eae6b1e8003a
treed4527665684a78ac3e0d04736f8b19c537ed23a7
parent048e62c34ae4af6d84c2a95649caf6ca584ab71d
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.

From-SVN: r226427
gcc/ChangeLog
gcc/omp-low.c
gcc/tree-parloops.c