aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
authorRichard Biener <rguenth@gcc.gnu.org>2012-11-30 10:58:22 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-11-30 10:58:22 +0000
commitbb35348a1be9cba6ae65b4af0bf2b592112c330c (patch)
treee6cb670f41b458c70ead4151e5eb34aa0986a493 /gcc/tree-ssa-sccvn.c
parent7dcdcbc0a63aa00be14b2b200b56557e6fb33fa6 (diff)
downloadgcc-bb35348a1be9cba6ae65b4af0bf2b592112c330c.zip
gcc-bb35348a1be9cba6ae65b4af0bf2b592112c330c.tar.gz
gcc-bb35348a1be9cba6ae65b4af0bf2b592112c330c.tar.bz2
tree-ssa-sccvn.c (run_scc_vn): Remove iteration propagating value_ids.
2012-11-30 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.c (run_scc_vn): Remove iteration propagating value_ids. From-SVN: r193992
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc/tree-ssa-sccvn.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index a7f0f9a..279637f 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -3983,7 +3983,6 @@ run_scc_vn (vn_lookup_kind default_vn_walk_kind_)
{
size_t i;
tree param;
- bool changed = true;
default_vn_walk_kind = default_vn_walk_kind_;
@@ -4028,25 +4027,18 @@ run_scc_vn (vn_lookup_kind default_vn_walk_kind_)
info->value_id = get_or_alloc_constant_value_id (info->valnum);
}
- /* Propagate until they stop changing. */
- while (changed)
+ /* Propagate. */
+ for (i = 1; i < num_ssa_names; ++i)
{
- changed = false;
- for (i = 1; i < num_ssa_names; ++i)
- {
- tree name = ssa_name (i);
- vn_ssa_aux_t info;
- if (!name)
- continue;
- info = VN_INFO (name);
- if (TREE_CODE (info->valnum) == SSA_NAME
- && info->valnum != name
- && info->value_id != VN_INFO (info->valnum)->value_id)
- {
- changed = true;
- info->value_id = VN_INFO (info->valnum)->value_id;
- }
- }
+ tree name = ssa_name (i);
+ vn_ssa_aux_t info;
+ if (!name)
+ continue;
+ info = VN_INFO (name);
+ if (TREE_CODE (info->valnum) == SSA_NAME
+ && info->valnum != name
+ && info->value_id != VN_INFO (info->valnum)->value_id)
+ info->value_id = VN_INFO (info->valnum)->value_id;
}
set_hashtable_value_ids ();