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; } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits