[llvm] [ADT] Update hash function of uint64_t for DenseMap (PR #95734)
Chuanqi Xu via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 16 22:18:37 PDT 2024
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/95734
>From c7b23d8d31776b123b2b786bf7f1cf60b7234c38 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: Mon, 17 Jun 2024 11:37:25 +0800
Subject: [PATCH 1/2] [ADT] Update hash function of uint64_t for DenseMap
---
llvm/include/llvm/ADT/DenseMapInfo.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/include/llvm/ADT/DenseMapInfo.h b/llvm/include/llvm/ADT/DenseMapInfo.h
index 5b7dce7b53c62..61869d8e7fbb0 100644
--- a/llvm/include/llvm/ADT/DenseMapInfo.h
+++ b/llvm/include/llvm/ADT/DenseMapInfo.h
@@ -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);
}
static bool isEqual(const unsigned long long& LHS,
>From 773ade75191b0a8e988ce38e57de3416f1610ae4 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: Mon, 17 Jun 2024 13:17:49 +0800
Subject: [PATCH 2/2] Update
---
llvm/include/llvm/ADT/DenseMapInfo.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/llvm/include/llvm/ADT/DenseMapInfo.h b/llvm/include/llvm/ADT/DenseMapInfo.h
index 61869d8e7fbb0..0def1dccdf4c3 100644
--- a/llvm/include/llvm/ADT/DenseMapInfo.h
+++ b/llvm/include/llvm/ADT/DenseMapInfo.h
@@ -151,7 +151,8 @@ template<> struct DenseMapInfo<unsigned long long> {
static inline unsigned long long getTombstoneKey() { return ~0ULL - 1ULL; }
static unsigned getHashValue(const unsigned long long& Val) {
- return DenseMapInfo<unsigned>(Val) ^ DenseMapInfo<unsigned>(Val >> 32);
+ return DenseMapInfo<unsigned>::getHashValue(Val) ^
+ DenseMapInfo<unsigned>::getHashValue(Val >> 32);
}
static bool isEqual(const unsigned long long& LHS,
More information about the llvm-commits
mailing list