OSDN Git Service

add a note
authorChris Lattner <sabre@nondot.org>
Sat, 6 Jan 2007 23:19:38 +0000 (23:19 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 6 Jan 2007 23:19:38 +0000 (23:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32962 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/CStringMap.cpp
lib/Support/StringMap.cpp

index 3229bfe..6cd3745 100644 (file)
@@ -33,8 +33,11 @@ CStringMapImpl::CStringMapImpl(unsigned InitSize, unsigned itemSize) {
 /// 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;
-  // Perl hash function.
+  // TODO: investigate whether a modified bernstein hash function performs
+  // better: http://eternallyconfuzzled.com/tuts/hashing.html#existing
+  //   X*33+c -> X*33^c
   while (Start != End)
     Result = Result * 33 + *Start++;
   Result = Result + (Result >> 5);
index 3229bfe..6cd3745 100644 (file)
@@ -33,8 +33,11 @@ CStringMapImpl::CStringMapImpl(unsigned InitSize, unsigned itemSize) {
 /// 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;
-  // Perl hash function.
+  // TODO: investigate whether a modified bernstein hash function performs
+  // better: http://eternallyconfuzzled.com/tuts/hashing.html#existing
+  //   X*33+c -> X*33^c
   while (Start != End)
     Result = Result * 33 + *Start++;
   Result = Result + (Result >> 5);