diff options
author | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-11 17:50:53 +0000 |
---|---|---|
committer | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-11 17:50:53 +0000 |
commit | 17889f9dfc42f96a098ba28020fbe427b1686000 (patch) | |
tree | c10c3e1e438be55ec7fabae41f6449845ab479fc /gcc/tree-scalar-evolution.c | |
parent | c69b8abd763922046e43393b2d7f02fd8ed269fe (diff) | |
download | gcc-17889f9dfc42f96a098ba28020fbe427b1686000.tar.gz |
* tree-scalar-evolution.c (scev_const_prop):
* tree-phinodes.c (remove_phi_node): Add argument
RELEASE_LHS_P. If given, release the SSA name on the LHS of
the PHI node.
Update all users.
* tree-ssa-dce.c: Remove forward declarations for static
functions. Re-arrange functions bodies as needed.
(find_obviously_necessary_stmts): Never mark PHI nodes as
obviously necessary.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119740 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-scalar-evolution.c')
-rw-r--r-- | gcc/tree-scalar-evolution.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index 10d5da5d271..bd47befd679 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -2929,8 +2929,9 @@ scev_const_prop (void) } } - /* Remove the ssa names that were replaced by constants. We do not remove them - directly in the previous cycle, since this invalidates scev cache. */ + /* Remove the ssa names that were replaced by constants. We do not + remove them directly in the previous cycle, since this + invalidates scev cache. */ if (ssa_names_to_remove) { bitmap_iterator bi; @@ -2941,7 +2942,7 @@ scev_const_prop (void) phi = SSA_NAME_DEF_STMT (name); gcc_assert (TREE_CODE (phi) == PHI_NODE); - remove_phi_node (phi, NULL); + remove_phi_node (phi, NULL, true); } BITMAP_FREE (ssa_names_to_remove); @@ -2998,11 +2999,10 @@ scev_const_prop (void) || contains_abnormal_ssa_name_p (def)) continue; - /* Eliminate the phi node and replace it by a computation outside + /* Eliminate the PHI node and replace it by a computation outside the loop. */ def = unshare_expr (def); - SET_PHI_RESULT (phi, NULL_TREE); - remove_phi_node (phi, NULL_TREE); + remove_phi_node (phi, NULL_TREE, false); ass = build2 (GIMPLE_MODIFY_STMT, void_type_node, rslt, NULL_TREE); SSA_NAME_DEF_STMT (rslt) = ass; |