diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-10-17 18:21:06 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-10-17 18:21:06 +0000 |
commit | baa7e86d8243c7fa92e72f97035339bb59412aaf (patch) | |
tree | 9cab4086d71a65bc16259b5a2653a2ba56bf9680 /lib/Support | |
parent | bd35458c807abf6a887ee7983639d2ebe5a9736b (diff) | |
download | external_llvm-baa7e86d8243c7fa92e72f97035339bb59412aaf.zip external_llvm-baa7e86d8243c7fa92e72f97035339bb59412aaf.tar.gz external_llvm-baa7e86d8243c7fa92e72f97035339bb59412aaf.tar.bz2 |
Move StringMap's string has function into StringExtras.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84344 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support')
-rw-r--r-- | lib/Support/StringMap.cpp | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/lib/Support/StringMap.cpp b/lib/Support/StringMap.cpp index 040308b..a729d3d 100644 --- a/lib/Support/StringMap.cpp +++ b/lib/Support/StringMap.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "llvm/ADT/StringMap.h" +#include "llvm/ADT/StringExtras.h" #include <cassert> using namespace llvm; @@ -46,20 +47,6 @@ void StringMapImpl::init(unsigned InitSize) { } -/// HashString - Compute a hash code for the specified string. -/// -static unsigned HashString(const char *Start, const char *End) { - // Bernstein hash function. - unsigned int Result = 0; - // TODO: investigate whether a modified bernstein hash function performs - // better: http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx - // X*33+c -> X*33^c - while (Start != End) - Result = Result * 33 + *Start++; - Result = Result + (Result >> 5); - return Result; -} - /// LookupBucketFor - Look up the bucket that the specified string should end /// up in. If it already exists as a key in the map, the Item pointer for the /// specified bucket will be non-null. Otherwise, it will be null. In either @@ -71,7 +58,7 @@ unsigned StringMapImpl::LookupBucketFor(const StringRef &Name) { init(16); HTSize = NumBuckets; } - unsigned FullHashValue = HashString(Name.begin(), Name.end()); + unsigned FullHashValue = HashString(Name); unsigned BucketNo = FullHashValue & (HTSize-1); unsigned ProbeAmt = 1; @@ -126,7 +113,7 @@ unsigned StringMapImpl::LookupBucketFor(const StringRef &Name) { int StringMapImpl::FindKey(const StringRef &Key) const { unsigned HTSize = NumBuckets; if (HTSize == 0) return -1; // Really empty table? - unsigned FullHashValue = HashString(Key.begin(), Key.end()); + unsigned FullHashValue = HashString(Key); unsigned BucketNo = FullHashValue & (HTSize-1); unsigned ProbeAmt = 1; |