add a note

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32962 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-01-06 23:19:38 +00:00
parent 15c91887e4
commit 38742b9603
2 changed files with 8 additions and 2 deletions

View File

@ -33,8 +33,11 @@ CStringMapImpl::CStringMapImpl(unsigned InitSize, unsigned itemSize) {
/// HashString - Compute a hash code for the specified string. /// HashString - Compute a hash code for the specified string.
/// ///
static unsigned HashString(const char *Start, const char *End) { static unsigned HashString(const char *Start, const char *End) {
// Bernstein hash function.
unsigned int Result = 0; 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) while (Start != End)
Result = Result * 33 + *Start++; Result = Result * 33 + *Start++;
Result = Result + (Result >> 5); Result = Result + (Result >> 5);

View File

@ -33,8 +33,11 @@ CStringMapImpl::CStringMapImpl(unsigned InitSize, unsigned itemSize) {
/// HashString - Compute a hash code for the specified string. /// HashString - Compute a hash code for the specified string.
/// ///
static unsigned HashString(const char *Start, const char *End) { static unsigned HashString(const char *Start, const char *End) {
// Bernstein hash function.
unsigned int Result = 0; 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) while (Start != End)
Result = Result * 33 + *Start++; Result = Result * 33 + *Start++;
Result = Result + (Result >> 5); Result = Result + (Result >> 5);