diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-parloops.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e7202b..5124d69 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-01-11 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/69069 + * tree-parloops.c (create_parallel_loop): Add missing phi args. + 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com> PR rtl-optimization/68920 diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index 5afaaf8..46d70ac 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -2086,7 +2086,12 @@ create_parallel_loop (struct loop *loop, tree loop_fn, tree data, value is not modified in the loop, and we're done with this phi. */ if (!(gimple_code (def_stmt) == GIMPLE_PHI && gimple_bb (def_stmt) == loop->header)) - continue; + { + locus = gimple_phi_arg_location_from_edge (phi, exit); + add_phi_arg (phi, def, guard, locus); + add_phi_arg (phi, def, end, locus); + continue; + } gphi *stmt = as_a <gphi *> (def_stmt); def = PHI_ARG_DEF_FROM_EDGE (stmt, loop_preheader_edge (loop)); |