[llvm] [ADT] Update hash function of uint64_t for DenseMap (PR #95734)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 17 00:56:03 PDT 2024


================
@@ -151,7 +151,7 @@ template<> struct DenseMapInfo<unsigned long long> {
   static inline unsigned long long getTombstoneKey() { return ~0ULL - 1ULL; }
 
   static unsigned getHashValue(const unsigned long long& Val) {
-    return (unsigned)(Val * 37ULL);
+    return DenseMapInfo<unsigned>(Val) ^ DenseMapInfo<unsigned>(Val >> 32);
----------------
alexfh wrote:

I concur with the suggestion to use llvm::hash_value from ADT/Hashing.h. It implements a murmur-like algorithm, which mixes bits enough.

https://github.com/llvm/llvm-project/pull/95734


More information about the llvm-commits mailing list