https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66846
--- Comment #6 from vries at gcc dot gnu.org --- Author: vries Date: Fri Jul 31 06:26:44 2015 New Revision: 226427 URL: https://gcc.gnu.org/viewcvs?rev=226427&root=gcc&view=rev Log: Don't cancel loop tree in parloops 2015-07-31 Tom de Vries <t...@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. Modified: trunk/gcc/ChangeLog trunk/gcc/omp-low.c trunk/gcc/tree-parloops.c