From 1c5211b13cb66b65f92a8289d221e2c3f4a3dfe2 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 11 Jan 2016 12:08:38 +0000 Subject: [PATCH] Add missing phi args in create_parallel_loop 2016-01-11 Tom de Vries PR tree-optimization/69069 * tree-parloops.c (create_parallel_loop): Add missing phi args. From-SVN: r232221 --- gcc/ChangeLog | 5 +++++ gcc/tree-parloops.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e7202b6e4eb..5124d694aaac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-01-11 Tom de Vries + + PR tree-optimization/69069 + * tree-parloops.c (create_parallel_loop): Add missing phi args. + 2016-01-11 Yuri Rumyantsev PR rtl-optimization/68920 diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index 5afaaf8af13a..46d70ac56c1e 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 (def_stmt); def = PHI_ARG_DEF_FROM_EDGE (stmt, loop_preheader_edge (loop)); -- 2.47.2