LLVM 18.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 <optional>
#include <utility>

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

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  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.
 
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.