diff options
author | Richard Guenther <rguenther@suse.de> | 2012-04-05 12:43:25 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-04-05 12:43:25 +0000 |
commit | eaf6ca186f3f165d0b641e02461dcb57d9c0d04d (patch) | |
tree | 279b6798337398f8fc6927b17c8e073bb5706e70 /gcc/tree-ssa-dse.c | |
parent | 1bb940da3c96a2f6eb4ff2b3ca2077559e5481fa (diff) | |
download | gcc-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.c | 5 |
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. */ |