From: Andi Kleen <a...@linux.intel.com>

gcc/:

2014-07-25  Andi Kleen  <a...@linux.intel.com>

        * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
---
 gcc/tree-ssa-tail-merge.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
index 9600e28..a27af5b 100644
--- a/gcc/tree-ssa-tail-merge.c
+++ b/gcc/tree-ssa-tail-merge.c
@@ -451,7 +451,7 @@ stmt_update_dep_bb (gimple stmt)
 static hashval_t
 same_succ_hash (const_same_succ e)
 {
-  hashval_t hashval = bitmap_hash (e->succs);
+  inchash hstate (bitmap_hash (e->succs));
   int flags;
   unsigned int i;
   unsigned int first = bitmap_first_set_bit (e->bbs);
@@ -472,37 +472,35 @@ same_succ_hash (const_same_succ e)
        continue;
       size++;
 
-      hashval = iterative_hash_hashval_t (gimple_code (stmt), hashval);
+      hstate.add_int (gimple_code (stmt));
       if (is_gimple_assign (stmt))
-       hashval = iterative_hash_hashval_t (gimple_assign_rhs_code (stmt),
-                                           hashval);
+       hstate.add_int (gimple_assign_rhs_code (stmt));
       if (!is_gimple_call (stmt))
        continue;
       if (gimple_call_internal_p (stmt))
-       hashval = iterative_hash_hashval_t
-         ((hashval_t) gimple_call_internal_fn (stmt), hashval);
+        hstate.add_int (gimple_call_internal_fn (stmt));
       else
        {
-         hashval = iterative_hash_expr (gimple_call_fn (stmt), hashval);
+         iterative_hstate_expr (gimple_call_fn (stmt), hstate);
          if (gimple_call_chain (stmt))
-           hashval = iterative_hash_expr (gimple_call_chain (stmt), hashval);
+           iterative_hstate_expr (gimple_call_chain (stmt), hstate);
        }
       for (i = 0; i < gimple_call_num_args (stmt); i++)
        {
          arg = gimple_call_arg (stmt, i);
          arg = vn_valueize (arg);
-         hashval = iterative_hash_expr (arg, hashval);
+         iterative_hstate_expr (arg, hstate);
        }
     }
 
-  hashval = iterative_hash_hashval_t (size, hashval);
+  hstate.add_int (size);
   BB_SIZE (bb) = size;
 
   for (i = 0; i < e->succ_flags.length (); ++i)
     {
       flags = e->succ_flags[i];
       flags = flags & ~(EDGE_TRUE_VALUE | EDGE_FALSE_VALUE);
-      hashval = iterative_hash_hashval_t (flags, hashval);
+      hstate.add_int (flags);
     }
 
   EXECUTE_IF_SET_IN_BITMAP (e->succs, 0, s, bs)
@@ -521,7 +519,7 @@ same_succ_hash (const_same_succ e)
        }
     }
 
-  return hashval;
+  return hstate.end ();
 }
 
 /* Returns true if E1 and E2 have 2 successors, and if the successor flags
-- 
2.0.1

Reply via email to