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 3229bfe50d894273c53c709fc2213a3f75a1a874..6cd3745946c23e9d39a2e26714e5c9c63bdfed5a 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 3229bfe50d894273c53c709fc2213a3f75a1a874..6cd3745946c23e9d39a2e26714e5c9c63bdfed5a 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);