LLVM: llvm::hashing::detail::hash_state Struct Reference (original) (raw)

The intermediate state used during hashing. More...

#include "[llvm/ADT/Hashing.h](Hashing%5F8h%5Fsource.html)"

Public Member Functions
void mix (const char *s)
Mix in a 64-byte buffer of data.
uint64_t finalize (size_t length)
Compute the final 64-bit hash code value based on the current state and the length of bytes hashed.
Static Public Member Functions
static hash_state create (const char *s, uint64_t seed)
Create a new hash_state structure and initialize it based on the seed and the first 64-byte chunk.
static void mix_32_bytes (const char *s, uint64_t &a, uint64_t &b)
Mix 32-bytes from the input sequence into the 16-bytes of 'a' and 'b', including whatever is already in 'a' and 'b'.
Public Attributes
uint64_t h0 = 0
uint64_t h1 = 0
uint64_t h2 = 0
uint64_t h3 = 0
uint64_t h4 = 0
uint64_t h5 = 0
uint64_t h6 = 0

The intermediate state used during hashing.

Currently, the algorithm for computing hash codes is based on CityHash and keeps 56 bytes of arbitrary state.

Definition at line 253 of file Hashing.h.

create()

finalize()

uint64_t llvm::hashing::detail::hash_state::finalize ( size_t length) inline

mix()

void llvm::hashing::detail::hash_state::mix ( const char * s) inline

Mix in a 64-byte buffer of data.

We mix all 64 bytes even when the chunk length is smaller, but we record the actual length.

Definition at line 287 of file Hashing.h.

References llvm::hashing::detail::fetch64(), h0, h1, h2, h3, h4, h5, h6, llvm::hashing::detail::k1, mix_32_bytes(), llvm::rotr(), and std::swap().

Referenced by create(), and llvm::hashing::detail::hash_combine_range_impl().

mix_32_bytes()

h0

uint64_t llvm::hashing::detail::hash_state::h0 = 0

h1

uint64_t llvm::hashing::detail::hash_state::h1 = 0

h2

uint64_t llvm::hashing::detail::hash_state::h2 = 0

h3

uint64_t llvm::hashing::detail::hash_state::h3 = 0

h4

uint64_t llvm::hashing::detail::hash_state::h4 = 0

h5

uint64_t llvm::hashing::detail::hash_state::h5 = 0

h6

uint64_t llvm::hashing::detail::hash_state::h6 = 0


The documentation for this struct was generated from the following file: