45 using namespace support;
47 static uint64_t
rotl64(uint64_t
X,
size_t R) {
48 return (X << R) | (X >> (64 - R));
51 static const uint64_t
PRIME64_1 = 11400714785074694791ULL;
52 static const uint64_t
PRIME64_2 = 14029467366897019727ULL;
53 static const uint64_t
PRIME64_3 = 1609587929392839161ULL;
54 static const uint64_t
PRIME64_4 = 9650029242287828579ULL;
55 static const uint64_t
PRIME64_5 = 2870177450012600261ULL;
57 static uint64_t
round(uint64_t Acc, uint64_t Input) {
72 size_t Len = Data.
size();
74 const char *
P = Data.
data();
75 const char *
const BEnd = P + Len;
79 const char *
const Limit = BEnd - 32;
82 uint64_t V3 = Seed + 0;
106 H64 += (uint64_t)Len;
108 while (P + 8 <= BEnd) {
static const uint64_t PRIME64_4
static const uint64_t PRIME64_2
static cl::opt< unsigned long long > Seed("rng-seed", cl::value_desc("seed"), cl::desc("Seed for the random number generator"), cl::init(0))
static uint64_t rotl64(uint64_t X, size_t R)
uint64_t xxHash64(llvm::StringRef Data)
static uint64_t round(uint64_t Acc, uint64_t Input)
static const uint64_t PRIME64_1
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE size_t size() const
size - Get the string size.
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang","erlang-compatible garbage collector")
static uint64_t mergeRound(uint64_t Acc, uint64_t Val)
static const uint64_t PRIME64_5
uint64_t read64le(const void *P)
uint32_t read32le(const void *P)
static const uint64_t PRIME64_3
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE const char * data() const
data - Get a pointer to the start of the string (which may not be null terminated).
StringRef - Represent a constant reference to a string, i.e.