aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-iterator.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2010-06-22 18:21:25 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-06-22 18:21:25 +0000
commit8d2adc244b117d1560a75caf39b0698eeb6c96ef (patch)
treee85874c9f8f854e3483015176601bba12e52e10c /gcc/gimple-iterator.c
parentca3e07b4edd28f5c643dd4a601d51db135fde67b (diff)
downloadgcc-8d2adc244b117d1560a75caf39b0698eeb6c96ef.zip
gcc-8d2adc244b117d1560a75caf39b0698eeb6c96ef.tar.gz
gcc-8d2adc244b117d1560a75caf39b0698eeb6c96ef.tar.bz2
cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the new statement and adjust VDEF only if necessary.
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the new statement and adjust VDEF only if necessary. Remove superfluous call to maybe_clean_or_replace_eh_stmt. * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to copy the flags. * gimple-iterator.c (gsi_replace): Clear BB of old statement here... * tree-inline.c (copy_bb): ...and not there. From-SVN: r161221
Diffstat (limited to 'gcc/gimple-iterator.c')
-rw-r--r--gcc/gimple-iterator.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/gimple-iterator.c b/gcc/gimple-iterator.c
index 13b66b6..1402c0d 100644
--- a/gcc/gimple-iterator.c
+++ b/gcc/gimple-iterator.c
@@ -381,8 +381,12 @@ gsi_replace (gimple_stmt_iterator *gsi, gimple stmt, bool update_eh_info)
maybe_clean_or_replace_eh_stmt (orig_stmt, stmt);
gimple_duplicate_stmt_histograms (cfun, stmt, cfun, orig_stmt);
+
+ /* Free all the data flow information for ORIG_STMT. */
+ gimple_set_bb (orig_stmt, NULL);
gimple_remove_stmt_histograms (cfun, orig_stmt);
delink_stmt_imm_use (orig_stmt);
+
*gsi_stmt_ptr (gsi) = stmt;
gimple_set_modified (stmt, true);
update_modified_stmt (stmt);