LLVM  14.0.0git
Classes | Namespaces | Typedefs | Functions
HashBuilder.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/type_traits.h"
#include <iterator>
#include <utility>
Include dependency graph for HashBuilder.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::hashbuilder_detail::IsHashableData< U >
 Trait to indicate whether a type's bits can be hashed directly (after endianness correction). More...
 
class  llvm::HashBuilderBase< HasherT >
 Declares the hasher member, and functions forwarding directly to the hasher. More...
 
class  llvm::HashBuilderImpl< HasherT, Endianness >
 Implementation of the HashBuilder interface. More...
 
class  llvm::hashbuilder_detail::HashCodeHasher
 

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 
 llvm::hashbuilder_detail
 

Typedefs

template<class HasherT , support::endianness Endianness>
using llvm::HashBuilder = HashBuilderImpl< HasherT,(Endianness==support::endianness::native ? support::endian::system_endianness() :Endianness)>
 Interface to help hash various types through a hasher type. More...
 
using llvm::hashbuilder_detail::HashCodeHashBuilder = HashBuilder< hashbuilder_detail::HashCodeHasher, support::endianness::native >
 

Functions

template<typename T >
std::enable_if_t< is_detected< hashbuilder_detail::HashCodeHashBuilder::HasAddHashT, T >::value, hash_code > llvm::hash_value (const T &Value)
 Provide a default implementation of hash_value when addHash(const T &) is supported. More...