This removes iterating propagation of value-ids (I verified
it never needs iteration in practice - certainly it does not
need iteration by design).

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2012-11-30  Richard Biener  <rguent...@suse.de>

        * tree-ssa-sccvn.c (run_scc_vn): Remove iteration propagating
        value_ids.

Index: gcc/tree-ssa-sccvn.c
===================================================================
--- gcc/tree-ssa-sccvn.c        (revision 193932)
+++ gcc/tree-ssa-sccvn.c        (working copy)
@@ -3983,7 +3983,6 @@ run_scc_vn (vn_lookup_kind default_vn_wa
 {
   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_wa
        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 ();

Reply via email to