diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2004-11-29 01:15:39 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2004-11-28 20:15:39 -0500 |
commit | 47023d1a43e5b5a1f53d09d7b05aec5ac94e79ce (patch) | |
tree | 1eb3291507d8b64d114e5f1bbf2532b0100e5cd1 | |
parent | 9390c347e9f2ac5dc3a97933f537c1576a310f4e (diff) | |
download | gcc-47023d1a43e5b5a1f53d09d7b05aec5ac94e79ce.zip gcc-47023d1a43e5b5a1f53d09d7b05aec5ac94e79ce.tar.gz gcc-47023d1a43e5b5a1f53d09d7b05aec5ac94e79ce.tar.bz2 |
PR/18662, also backported from tree-cleanup-branch.
* tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
always call maybe_clean_eh_stmt and modify_stmt.
Co-Authored-By: Diego Novillo <dnovillo@redhat.com>
From-SVN: r91451
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-ccp.c | 16 |
2 files changed, 16 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6472431..9b2dba2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,11 @@ 2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + Diego Novillo <dnovillo@redhat.com> + + PR/18662, also backported from tree-cleanup-branch. + * tree-ssa-ccp.c (substitute_and_fold): If replaced anything, + always call maybe_clean_eh_stmt and modify_stmt. + +2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> PR/18664 * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR): diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 911e573..c530ede 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -579,16 +579,18 @@ substitute_and_fold (void) { bool changed = fold_stmt (bsi_stmt_ptr (i)); stmt = bsi_stmt(i); + /* If we folded a builtin function, we'll likely need to rename VDEFs. */ if (replaced_address || changed) - { - mark_new_vars_to_rename (stmt, vars_to_rename); - if (maybe_clean_eh_stmt (stmt)) - tree_purge_dead_eh_edges (bb); - } - else - modify_stmt (stmt); + mark_new_vars_to_rename (stmt, vars_to_rename); + + /* If we cleaned up EH information from the statement, + remove EH edges. */ + if (maybe_clean_eh_stmt (stmt)) + tree_purge_dead_eh_edges (bb); + + modify_stmt (stmt); } if (dump_file && (dump_flags & TDF_DETAILS)) |