aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2010-03-06 20:28:04 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2010-03-06 20:28:04 +0000
commitaba09491c27cb6e9a908ebc2fde41a41a1f0ee5b (patch)
tree094a0a83ba7bbad79abdcda20bb19b8498813e4f /gcc
parent60d7a09b0671c2167248e0a6afee6920a18108ab (diff)
downloadgcc-aba09491c27cb6e9a908ebc2fde41a41a1f0ee5b.zip
gcc-aba09491c27cb6e9a908ebc2fde41a41a1f0ee5b.tar.gz
gcc-aba09491c27cb6e9a908ebc2fde41a41a1f0ee5b.tar.bz2
re PR debug/42897 (yet another ice in verify_ssa)
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. From-SVN: r157258
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-vect-loop.c14
2 files changed, 13 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4871476..528ca32 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-03-06 Alexandre Oliva <aoliva@redhat.com>
+
+ 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 <aoliva@redhat.com>
* 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 16aa242..afbd342 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;
}