LLVM
8.0.1
|
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) | |
uint64_t | computeCUSignature (StringRef DWOName, const DIE &Die) |
Computes the CU signature. More... | |
uint64_t | computeTypeSignature (const DIE &Die) |
Computes the type signature. More... | |
void | update (uint8_t Value) |
Adds. More... | |
void | addULEB128 (uint64_t Value) |
Encodes and adds. More... | |
void | addSLEB128 (int64_t Value) |
Encodes and adds. More... | |
An object containing the capability of hashing and adding hash attributes onto a DIE.
|
inline |
Definition at line 36 of file DIEHash.h.
References computeCUSignature(), and computeTypeSignature().
void DIEHash::addSLEB128 | ( | int64_t | Value | ) |
Encodes and adds.
Value | to the hash as a SLEB128. |
Definition at line 66 of file DIEHash.cpp.
References addULEB128(), assert(), llvm::dwarf::AttributeString(), llvm::AMDGPU::HSAMD::Kernel::Key::Attrs, C, llvm::DIE::children(), llvm::dbgs(), E, llvm::DwarfDebug::emitDebugLocEntry(), llvm::StringRef::empty(), llvm::DIEValue::getAttribute(), llvm::DwarfDebug::getDebugLocs(), getDIEStringAttr(), llvm::AsmPrinter::getDwarfDebug(), llvm::DebugLocStream::getEntries(), llvm::DIEValue::getForm(), llvm::DebugLocStream::getList(), llvm::DIE::getParent(), llvm::DIE::getTag(), llvm::DIEValue::getType(), llvm::DIELocList::getValue(), I, llvm::DIEValue::isNone, isType(), LLVM_DEBUG, llvm_unreachable, llvm::makeArrayRef(), Name, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorTemplateCommon< T >::rbegin(), llvm::SmallVectorTemplateCommon< T >::rend(), llvm::Tag, llvm::MD5::update(), and llvm::DIEValueList::values().
Referenced by llvm::HashingByteStreamer::EmitSLEB128(), and update().
void DIEHash::addULEB128 | ( | uint64_t | Value | ) |
Encodes and adds.
Adds the unsigned in Value
to the hash encoded as a ULEB128.
Value | to the hash as a ULEB128. |
Definition at line 55 of file DIEHash.cpp.
References llvm::dbgs(), LLVM_DEBUG, and llvm::MD5::update().
Referenced by addSLEB128(), llvm::HashingByteStreamer::EmitULEB128(), and update().
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 383 of file DIEHash.cpp.
References llvm::StringRef::empty(), llvm::MD5::final(), llvm::MD5::MD5Result::high(), and llvm::MD5::update().
Referenced by llvm::DwarfDebug::beginModule(), and DIEHash().
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 406 of file DIEHash.cpp.
References llvm::MD5::final(), llvm::DIE::getParent(), and llvm::MD5::MD5Result::high().
Referenced by DIEHash().
|
inline |
Adds.
Value | to the hash. |
Definition at line 58 of file DIEHash.h.
References addSLEB128(), addULEB128(), llvm::AMDGPU::HSAMD::Kernel::Key::Attrs, Name, Numbering, and llvm::Tag.
Referenced by llvm::HashingByteStreamer::EmitInt8().