aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-dse.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-04-05 12:43:25 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-04-05 12:43:25 +0000
commiteaf6ca186f3f165d0b641e02461dcb57d9c0d04d (patch)
tree279b6798337398f8fc6927b17c8e073bb5706e70 /gcc/tree-ssa-dse.c
parent1bb940da3c96a2f6eb4ff2b3ca2077559e5481fa (diff)
downloadgcc-eaf6ca186f3f165d0b641e02461dcb57d9c0d04d.zip
gcc-eaf6ca186f3f165d0b641e02461dcb57d9c0d04d.tar.gz
gcc-eaf6ca186f3f165d0b641e02461dcb57d9c0d04d.tar.bz2
tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt basic-block before removing it.
2012-04-05 Richard Guenther <rguenther@suse.de> * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt basic-block before removing it. From-SVN: r186164
Diffstat (limited to 'gcc/tree-ssa-dse.c')
-rw-r--r--gcc/tree-ssa-dse.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 93ba425..1fdb26c 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -232,6 +232,8 @@ dse_optimize_stmt (gimple_stmt_iterator gsi)
gimple_get_lhs (use_stmt), 0)))
|| stmt_kills_ref_p (use_stmt, gimple_assign_lhs (stmt)))
{
+ basic_block bb;
+
/* If use_stmt is or might be a nop assignment, e.g. for
struct { ... } S a, b, *p; ...
b = a; b = b;
@@ -258,8 +260,9 @@ dse_optimize_stmt (gimple_stmt_iterator gsi)
unlink_stmt_vdef (stmt);
/* Remove the dead store. */
+ bb = gimple_bb (stmt);
if (gsi_remove (&gsi, true))
- bitmap_set_bit (need_eh_cleanup, gimple_bb (stmt)->index);
+ bitmap_set_bit (need_eh_cleanup, bb->index);
/* And release any SSA_NAMEs set in this statement back to the
SSA_NAME manager. */