LLVM 20.0.0git
Public Types | Public Member Functions | Protected Member Functions | List of all members
llvm::HashBuilderBase< HasherT > Class Template Reference

Declares the hasher member, and functions forwarding directly to the hasher. More...

#include "llvm/Support/HashBuilder.h"

Inheritance diagram for llvm::HashBuilderBase< HasherT >:
Inheritance graph
[legend]

Public Types

template<typename HasherT_ = HasherT>
using HashResultTy = decltype(std::declval< HasherT_ & >().final())
 

Public Member Functions

HasherT & getHasher ()
 
void update (ArrayRef< uint8_t > Data)
 Forward to HasherT::update(ArrayRef<uint8_t>).
 
void update (StringRef Data)
 Forward to HasherT::update(ArrayRef<uint8_t>).
 
template<typename HasherT_ = HasherT>
HashResultTy< HasherT_ > final ()
 Forward to HasherT::final() if available.
 
template<typename HasherT_ = HasherT>
HashResultTy< HasherT_ > result ()
 Forward to HasherT::result() if available.
 

Protected Member Functions

 HashBuilderBase (HasherT &Hasher)
 
template<typename... ArgTypes>
 HashBuilderBase (ArgTypes &&...Args)
 

Detailed Description

template<typename HasherT>
class llvm::HashBuilderBase< HasherT >

Declares the hasher member, and functions forwarding directly to the hasher.

Definition at line 41 of file HashBuilder.h.

Member Typedef Documentation

◆ HashResultTy

template<typename HasherT >
template<typename HasherT_ = HasherT>
using llvm::HashBuilderBase< HasherT >::HashResultTy = decltype(std::declval<HasherT_ &>().final())

Definition at line 44 of file HashBuilder.h.

Constructor & Destructor Documentation

◆ HashBuilderBase() [1/2]

template<typename HasherT >
llvm::HashBuilderBase< HasherT >::HashBuilderBase ( HasherT &  Hasher)
inlineexplicitprotected

Definition at line 76 of file HashBuilder.h.

◆ HashBuilderBase() [2/2]

template<typename HasherT >
template<typename... ArgTypes>
llvm::HashBuilderBase< HasherT >::HashBuilderBase ( ArgTypes &&...  Args)
inlineexplicitprotected

Definition at line 79 of file HashBuilder.h.

Member Function Documentation

◆ final()

template<typename HasherT >
template<typename HasherT_ = HasherT>
HashResultTy< HasherT_ > llvm::HashBuilderBase< HasherT >::final ( )
inline

Forward to HasherT::final() if available.

Definition at line 66 of file HashBuilder.h.

References llvm::HashBuilderBase< HasherT >::getHasher().

Referenced by computeFullStackId(), computeStackId(), and llvm::memprof::hashCallStack().

◆ getHasher()

template<typename HasherT >
HasherT & llvm::HashBuilderBase< HasherT >::getHasher ( )
inline

◆ result()

template<typename HasherT >
template<typename HasherT_ = HasherT>
HashResultTy< HasherT_ > llvm::HashBuilderBase< HasherT >::result ( )
inline

Forward to HasherT::result() if available.

Definition at line 71 of file HashBuilder.h.

References llvm::HashBuilderBase< HasherT >::getHasher().

◆ update() [1/2]

template<typename HasherT >
void llvm::HashBuilderBase< HasherT >::update ( ArrayRef< uint8_t >  Data)
inline

Forward to HasherT::update(ArrayRef<uint8_t>).

This may not take the size of Data into account. Users of this function should pay attention to respect endianness contraints.

Definition at line 53 of file HashBuilder.h.

References llvm::HashBuilderBase< HasherT >::getHasher().

Referenced by llvm::HashBuilder< HasherT, Endianness >::add(), llvm::HashBuilder< HasherT, Endianness >::adjustForEndiannessAndAdd(), and llvm::HashBuilderBase< HasherT >::update().

◆ update() [2/2]

template<typename HasherT >
void llvm::HashBuilderBase< HasherT >::update ( StringRef  Data)
inline

Forward to HasherT::update(ArrayRef<uint8_t>).

This may not take the size of Data into account. Users of this function should pay attention to respect endianness contraints.

Definition at line 60 of file HashBuilder.h.

References llvm::Data, and llvm::HashBuilderBase< HasherT >::update().


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