|  | 
| template<typename T> | 
| std::enable_if_t< is_integral_or_enum< T >::value, hash_code > | llvm::hash_value (T value) | 
|  | Compute a hash_code for any integer value. 
 | 
| template<typename T> | 
| hash_code | llvm::hash_value (const T *ptr) | 
|  | Compute a hash_code for a pointer's address. 
 | 
| template<typename T, typename U> | 
| hash_code | llvm::hash_value (const std::pair< T, U > &arg) | 
|  | Compute a hash_code for a pair of objects. 
 | 
| template<typename... Ts> | 
| hash_code | llvm::hash_value (const std::tuple< Ts... > &arg) | 
|  | Compute a hash_code for a tuple. 
 | 
| template<typename T> | 
| hash_code | llvm::hash_value (const std::basic_string< T > &arg) | 
|  | Compute a hash_code for a standard string. 
 | 
| template<typename T> | 
| hash_code | llvm::hash_value (const std::optional< T > &arg) | 
|  | Compute a hash_code for a standard string. 
 | 
| uint64_t | llvm::hashing::detail::fetch64 (const char *p) | 
| uint32_t | llvm::hashing::detail::fetch32 (const char *p) | 
| uint64_t | llvm::hashing::detail::rotate (uint64_t val, size_t shift) | 
|  | Bitwise right rotate. 
 | 
| uint64_t | llvm::hashing::detail::shift_mix (uint64_t val) | 
| uint64_t | llvm::hashing::detail::hash_16_bytes (uint64_t low, uint64_t high) | 
| uint64_t | llvm::hashing::detail::hash_1to3_bytes (const char *s, size_t len, uint64_t seed) | 
| uint64_t | llvm::hashing::detail::hash_4to8_bytes (const char *s, size_t len, uint64_t seed) | 
| uint64_t | llvm::hashing::detail::hash_9to16_bytes (const char *s, size_t len, uint64_t seed) | 
| uint64_t | llvm::hashing::detail::hash_17to32_bytes (const char *s, size_t len, uint64_t seed) | 
| uint64_t | llvm::hashing::detail::hash_33to64_bytes (const char *s, size_t len, uint64_t seed) | 
| uint64_t | llvm::hashing::detail::hash_short (const char *s, size_t length, uint64_t seed) | 
| uint64_t | llvm::hashing::detail::get_execution_seed () | 
|  | In LLVM_ENABLE_ABI_BREAKING_CHECKS builds, the seed is non-deterministic per process (address of a function in LLVMSupport) to prevent having users depend on the particular hash values. 
 | 
| template<typename T> | 
| auto | llvm::hashing::detail::get_hashable_data (const T &value) | 
|  | Helper to get the hashable data representation for a type. 
 | 
| template<typename T> | 
| bool | llvm::hashing::detail::store_and_advance (char *&buffer_ptr, char *buffer_end, const T &value, size_t offset=0) | 
|  | Helper to store data from a value into a buffer and advance the pointer into that buffer. 
 | 
| template<typename InputIteratorT> | 
| hash_code | llvm::hashing::detail::hash_combine_range_impl (InputIteratorT first, InputIteratorT last) | 
|  | Implement the combining of integral values into a hash_code. 
 | 
| template<typename ValueT> | 
| std::enable_if_t< is_hashable_data< ValueT >::value, hash_code > | llvm::hashing::detail::hash_combine_range_impl (ValueT *first, ValueT *last) | 
|  | Implement the combining of integral values into a hash_code. 
 | 
| template<typename InputIteratorT> | 
| hash_code | llvm::hash_combine_range (InputIteratorT first, InputIteratorT last) | 
|  | Compute a hash_code for a sequence of values. 
 | 
| template<typename RangeT> | 
| hash_code | llvm::hash_combine_range (RangeT &&R) | 
| template<typename ... Ts> | 
| hash_code | llvm::hash_combine (const Ts &...args) | 
|  | Combine values into a single hash_code. 
 | 
| hash_code | llvm::hashing::detail::hash_integer_value (uint64_t value) | 
|  | Helper to hash the value of a single integer. 
 |