mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Make llvm::djbHash an inline function.
Differential Revision: https://reviews.llvm.org/D43644 llvm-svn: 326625
This commit is contained in:
parent
50d3f5be42
commit
b424396cdc
@ -19,7 +19,11 @@
|
||||
namespace llvm {
|
||||
|
||||
/// The Bernstein hash function used by the DWARF accelerator tables.
|
||||
uint32_t djbHash(StringRef Buffer, uint32_t H = 5381);
|
||||
inline uint32_t djbHash(StringRef Buffer, uint32_t H = 5381) {
|
||||
for (unsigned char C : Buffer.bytes())
|
||||
H = (H << 5) + H + C;
|
||||
return H;
|
||||
}
|
||||
|
||||
/// Computes the Bernstein hash after folding the input according to the Dwarf 5
|
||||
/// standard case folding rules.
|
||||
|
@ -19,16 +19,6 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
static inline uint32_t djbHashChar(unsigned char C, uint32_t H) {
|
||||
return (H << 5) + H + C;
|
||||
}
|
||||
|
||||
uint32_t llvm::djbHash(StringRef Buffer, uint32_t H) {
|
||||
for (unsigned char C : Buffer.bytes())
|
||||
H = djbHashChar(C, H);
|
||||
return H;
|
||||
}
|
||||
|
||||
static UTF32 chopOneUTF32(StringRef &Buffer) {
|
||||
UTF32 C;
|
||||
const UTF8 *const Begin8Const =
|
||||
@ -86,7 +76,7 @@ uint32_t llvm::caseFoldingDjbHash(StringRef Buffer, uint32_t H) {
|
||||
// This is by far the most common case, so handle this specially.
|
||||
if (C >= 'A' && C <= 'Z')
|
||||
C = 'a' + (C - 'A'); // fold uppercase into lowercase
|
||||
H = djbHashChar(C, H);
|
||||
H = (H << 5) + H + C;
|
||||
Buffer = Buffer.drop_front();
|
||||
continue;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user