From: Andi Kleen <a...@linux.intel.com> gcc/:
2014-07-25 Andi Kleen <a...@linux.intel.com> * ipa-devirt.c (polymorphic_call_target_hasher::hash): Convert to inchash. --- gcc/ipa-devirt.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c index 127d58d..5f529a9 100644 --- a/gcc/ipa-devirt.c +++ b/gcc/ipa-devirt.c @@ -1633,17 +1633,15 @@ struct polymorphic_call_target_hasher inline hashval_t polymorphic_call_target_hasher::hash (const value_type *odr_query) { - hashval_t hash; - - hash = iterative_hash_host_wide_int - (odr_query->otr_token, - odr_query->type->id); - hash = iterative_hash_hashval_t (TYPE_UID (odr_query->context.outer_type), - hash); - hash = iterative_hash_host_wide_int (odr_query->context.offset, hash); - return iterative_hash_hashval_t - (((int)odr_query->context.maybe_in_construction << 1) - | (int)odr_query->context.maybe_derived_type, hash); + inchash hstate (odr_query->otr_token); + + hstate.add_wide_int (odr_query->type->id); + hstate.add_wide_int (TYPE_UID (odr_query->context.outer_type)); + hstate.add_wide_int (odr_query->context.offset); + hstate.add_flag (odr_query->context.maybe_in_construction); + hstate.add_flag (odr_query->context.maybe_derived_type); + hstate.commit_flag (); + return hstate.end (); } /* Compare cache entries T1 and T2. */ -- 2.0.1