LLVM 22.0.0git
llvm::DIEHash Class Reference

An object containing the capability of hashing and adding hash attributes onto a DIE. More...

#include "CodeGen/AsmPrinter/DIEHash.h"

Public Member Functions

 DIEHash (AsmPrinter *A=nullptr, DwarfCompileUnit *CU=nullptr)
uint64_t computeCUSignature (StringRef DWOName, const DIE &Die)
 Computes the CU signature.
LLVM_ABI_FOR_TEST uint64_t computeTypeSignature (const DIE &Die)
 Computes the type signature.
void update (uint8_t Value)
 Adds.
void addULEB128 (uint64_t Value)
 Encodes and adds.
void addSLEB128 (int64_t Value)
 Encodes and adds.
void hashRawTypeReference (const DIE &Entry)

Detailed Description

An object containing the capability of hashing and adding hash attributes onto a DIE.

Definition at line 27 of file DIEHash.h.

Constructor & Destructor Documentation

◆ DIEHash()

llvm::DIEHash::DIEHash ( AsmPrinter * A = nullptr,
DwarfCompileUnit * CU = nullptr )
inline

Definition at line 35 of file DIEHash.h.

References A().

Member Function Documentation

◆ addSLEB128()

void DIEHash::addSLEB128 ( int64_t Value)

Encodes and adds.

Parameters
Valueto the hash as a SLEB128.

Definition at line 63 of file DIEHash.cpp.

References llvm::dbgs(), and LLVM_DEBUG.

◆ addULEB128()

void DIEHash::addULEB128 ( uint64_t Value)

Encodes and adds.

Adds the unsigned in Value to the hash encoded as a ULEB128.

Parameters
Valueto the hash as a ULEB128.

Definition at line 52 of file DIEHash.cpp.

References llvm::dbgs(), and LLVM_DEBUG.

Referenced by hashRawTypeReference().

◆ computeCUSignature()

uint64_t DIEHash::computeCUSignature ( StringRef DWOName,
const DIE & Die )

Computes the CU signature.

This is based on the type signature computation given in section 7.27 of the DWARF4 standard.

It is an md5 hash of the flattened description of the DIE with the inclusion of the full CU and all top level CU entities.

Definition at line 399 of file DIEHash.cpp.

References llvm::StringRef::empty().

◆ computeTypeSignature()

uint64_t DIEHash::computeTypeSignature ( const DIE & Die)

Computes the type signature.

This is based on the type signature computation given in section 7.27 of the DWARF4 standard.

It is an md5 hash of the flattened description of the DIE with the inclusion of additional forms not specifically called out in the standard.

Definition at line 422 of file DIEHash.cpp.

References llvm::DIE::getParent().

◆ hashRawTypeReference()

void DIEHash::hashRawTypeReference ( const DIE & Entry)

Definition at line 209 of file DIEHash.cpp.

References addULEB128().

◆ update()

void llvm::DIEHash::update ( uint8_t Value)
inline

Adds.

Parameters
Valueto the hash.

Definition at line 58 of file DIEHash.h.


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