[Lldb-commits] [lldb] r326091 - Re-land: "[Support] Replace HashString with djbHash."
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Mon Feb 26 07:16:43 PST 2018
Author: jdevlieghere
Date: Mon Feb 26 07:16:42 2018
New Revision: 326091
URL: http://llvm.org/viewvc/llvm-project?rev=326091&view=rev
Log:
Re-land: "[Support] Replace HashString with djbHash."
This patch removes the HashString function from StringExtraces and
replaces its uses with calls to djbHash from DJB.h.
This change is *almost* NFC. While the algorithm is identical, the
djbHash implementation in StringExtras used 0 as its default seed while
the implementation in DJB uses 5381. The latter has been shown to result
in less collisions and improved avalanching and is used by the DWARF
accelerator tables.
Because some test were implicitly relying on the hash order, I've
reverted to using zero as a seed for the following two files:
lld/include/lld/Core/SymbolTable.h
llvm/lib/Support/StringMap.cpp
Differential revision: https://reviews.llvm.org/D43615
Modified:
lldb/trunk/source/Utility/ConstString.cpp
Modified: lldb/trunk/source/Utility/ConstString.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ConstString.cpp?rev=326091&r1=326090&r2=326091&view=diff
==============================================================================
--- lldb/trunk/source/Utility/ConstString.cpp (original)
+++ lldb/trunk/source/Utility/ConstString.cpp Mon Feb 26 07:16:42 2018
@@ -11,10 +11,10 @@
#include "lldb/Utility/Stream.h"
-#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/iterator.h" // for iterator_facade_base
#include "llvm/Support/Allocator.h" // for BumpPtrAllocator
+#include "llvm/Support/DJB.h" // for djbHash
#include "llvm/Support/FormatProviders.h" // for format_provider
#include "llvm/Support/RWMutex.h"
#include "llvm/Support/Threading.h"
@@ -171,7 +171,7 @@ public:
protected:
uint8_t hash(const llvm::StringRef &s) const {
- uint32_t h = llvm::HashString(s);
+ uint32_t h = llvm::djbHash(s);
return ((h >> 24) ^ (h >> 16) ^ (h >> 8) ^ h) & 0xff;
}
More information about the lldb-commits
mailing list