diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4871476cc72..528ca321a56 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-03-06 Alexandre Oliva + + PR debug/42897 + * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug + uses of relevant DEFs that are dead outside the loop too. + 2010-03-06 Alexandre Oliva * var-tracking.c (dataflow_set_merge): Swap src and src2. diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 16aa242e7fe..afbd342fd1c 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -4236,13 +4236,12 @@ vect_transform_loop (loop_vec_info loop_vinfo) if (!stmt_info) continue; + if (MAY_HAVE_DEBUG_STMTS && !STMT_VINFO_LIVE_P (stmt_info)) + vect_loop_kill_debug_uses (loop, phi); + if (!STMT_VINFO_RELEVANT_P (stmt_info) && !STMT_VINFO_LIVE_P (stmt_info)) - { - if (MAY_HAVE_DEBUG_STMTS) - vect_loop_kill_debug_uses (loop, phi); - continue; - } + continue; if ((TYPE_VECTOR_SUBPARTS (STMT_VINFO_VECTYPE (stmt_info)) != (unsigned HOST_WIDE_INT) vectorization_factor) @@ -4279,11 +4278,12 @@ vect_transform_loop (loop_vec_info loop_vinfo) continue; } + if (MAY_HAVE_DEBUG_STMTS && !STMT_VINFO_LIVE_P (stmt_info)) + vect_loop_kill_debug_uses (loop, stmt); + if (!STMT_VINFO_RELEVANT_P (stmt_info) && !STMT_VINFO_LIVE_P (stmt_info)) { - if (MAY_HAVE_DEBUG_STMTS) - vect_loop_kill_debug_uses (loop, stmt); gsi_next (&si); continue; }