This patch moves the DJB hash to support. This is consistent with other hashing algorithms living there. The hash is used by the DWARF accelerator tables. We're doing this now because the hashing function is needed by dsymutil and we don't want to link against libBinaryFormat. Differential revision: https://reviews.llvm.org/D42594 llvm-svn: 323616
21 lines
655 B
C++
21 lines
655 B
C++
//===-- Support/DJB.cpp ---DJB Hash -----------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains support for the DJ Bernstein hash function.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/Support/DJB.h"
|
|
|
|
uint32_t llvm::djbHash(StringRef Buffer, uint32_t H) {
|
|
for (char C : Buffer.bytes())
|
|
H = ((H << 5) + H) + C;
|
|
return H;
|
|
}
|