class DIEHash
Declaration
class DIEHash { /* full declaration omitted */ };
Description
An object containing the capability of hashing and adding hash attributes onto a DIE.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:26
Member Variables
- private llvm::MD5 Hash
- private llvm::AsmPrinter* AP
- private llvm::DwarfCompileUnit* CU
- private DenseMap<const llvm::DIE*, unsigned int> Numbering
Method Overview
- public DIEHash(llvm::AsmPrinter * A = nullptr, llvm::DwarfCompileUnit * CU = nullptr)
- private void addAttributes(const llvm::DIE & Die)
- private void addParentContext(const llvm::DIE & Parent)
- public void addSLEB128(int64_t Value)
- private void addString(llvm::StringRef Str)
- public void addULEB128(uint64_t Value)
- private void collectAttributes(const llvm::DIE & Die, llvm::DIEHash::DIEAttrs & Attrs)
- public uint64_t computeCUSignature(llvm::StringRef DWOName, const llvm::DIE & Die)
- private void computeHash(const llvm::DIE & Die)
- public uint64_t computeTypeSignature(const llvm::DIE & Die)
- private void hashAttribute(const llvm::DIEValue & Value, dwarf::Tag Tag)
- private void hashAttributes(const llvm::DIEHash::DIEAttrs & Attrs, dwarf::Tag Tag)
- private void hashBlockData(const DIE::const_value_range & Values)
- private void hashDIEEntry(dwarf::Attribute Attribute, dwarf::Tag Tag, const llvm::DIE & Entry)
- private void hashLocList(const llvm::DIELocList & LocList)
- private void hashNestedType(const llvm::DIE & Die, llvm::StringRef Name)
- public void hashRawTypeReference(const llvm::DIE & Entry)
- private void hashRepeatedTypeReference(dwarf::Attribute Attribute, unsigned int DieNumber)
- private void hashShallowTypeReference(dwarf::Attribute Attribute, const llvm::DIE & Entry, llvm::StringRef Name)
- public void update(uint8_t Value)
Methods
¶DIEHash(llvm::AsmPrinter* A = nullptr,
llvm::DwarfCompileUnit* CU = nullptr)
DIEHash(llvm::AsmPrinter* A = nullptr,
llvm::DwarfCompileUnit* CU = nullptr)
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:34
Parameters
- llvm::AsmPrinter* A = nullptr
- llvm::DwarfCompileUnit* CU = nullptr
¶void addAttributes(const llvm::DIE& Die)
void addAttributes(const llvm::DIE& Die)
Description
Adds the attributes of
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:49
Parameters
- const llvm::DIE& Die
- to the hash.
¶void addParentContext(const llvm::DIE& Parent)
void addParentContext(const llvm::DIE& Parent)
Description
Adds the parent context of
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:46
Parameters
- const llvm::DIE& Parent
- to the hash.
¶void addSLEB128(int64_t Value)
void addSLEB128(int64_t Value)
Description
Encodes and adds
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:63
Parameters
- int64_t Value
- to the hash as a SLEB128.
¶void addString(llvm::StringRef Str)
void addString(llvm::StringRef Str)
Description
Adds
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:69
Parameters
- llvm::StringRef Str
- to the hash and includes a NULL byte.
¶void addULEB128(uint64_t Value)
void addULEB128(uint64_t Value)
Description
Encodes and adds
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:60
Parameters
- uint64_t Value
- to the hash as a ULEB128.
¶void collectAttributes(
const llvm::DIE& Die,
llvm::DIEHash::DIEAttrs& Attrs)
void collectAttributes(
const llvm::DIE& Die,
llvm::DIEHash::DIEAttrs& Attrs)
Description
Collects the attributes of DIE
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:73
Parameters
- const llvm::DIE& Die
- into the
- llvm::DIEHash::DIEAttrs& Attrs
- structure.
¶uint64_t computeCUSignature(
llvm::StringRef DWOName,
const llvm::DIE& Die)
uint64_t computeCUSignature(
llvm::StringRef DWOName,
const llvm::DIE& Die)
Description
Computes the CU signature.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:38
Parameters
- llvm::StringRef DWOName
- const llvm::DIE& Die
¶void computeHash(const llvm::DIE& Die)
void computeHash(const llvm::DIE& Die)
Description
Computes the full DWARF4 7.27 hash of the DIE.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:52
Parameters
- const llvm::DIE& Die
¶uint64_t computeTypeSignature(
const llvm::DIE& Die)
uint64_t computeTypeSignature(
const llvm::DIE& Die)
Description
Computes the type signature.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:41
Parameters
- const llvm::DIE& Die
¶void hashAttribute(const llvm::DIEValue& Value,
dwarf::Tag Tag)
void hashAttribute(const llvm::DIEValue& Value,
dwarf::Tag Tag)
Description
Hashes an individual attribute.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:86
Parameters
- const llvm::DIEValue& Value
- dwarf::Tag Tag
¶void hashAttributes(
const llvm::DIEHash::DIEAttrs& Attrs,
dwarf::Tag Tag)
void hashAttributes(
const llvm::DIEHash::DIEAttrs& Attrs,
dwarf::Tag Tag)
Description
Hashes the attributes in
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:76
Parameters
- const llvm::DIEHash::DIEAttrs& Attrs
- in order.
- dwarf::Tag Tag
¶void hashBlockData(
const DIE::const_value_range& Values)
void hashBlockData(
const DIE::const_value_range& Values)
Description
Hashes the data in a block like DIEValue, e.g. DW_FORM_block or DW_FORM_exprloc.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:80
Parameters
- const DIE::const_value_range& Values
¶void hashDIEEntry(dwarf::Attribute Attribute,
dwarf::Tag Tag,
const llvm::DIE& Entry)
void hashDIEEntry(dwarf::Attribute Attribute,
dwarf::Tag Tag,
const llvm::DIE& Entry)
Description
Hashes an attribute that refers to another DIE.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:89
Parameters
- dwarf::Attribute Attribute
- dwarf::Tag Tag
- const llvm::DIE& Entry
¶void hashLocList(const llvm::DIELocList& LocList)
void hashLocList(const llvm::DIELocList& LocList)
Description
Hashes the contents pointed to in the .debug_loc section.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:83
Parameters
- const llvm::DIELocList& LocList
¶void hashNestedType(const llvm::DIE& Die,
llvm::StringRef Name)
void hashNestedType(const llvm::DIE& Die,
llvm::StringRef Name)
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:102
Parameters
- const llvm::DIE& Die
- llvm::StringRef Name
¶void hashRawTypeReference(const llvm::DIE& Entry)
void hashRawTypeReference(const llvm::DIE& Entry)
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:65
Parameters
- const llvm::DIE& Entry
¶void hashRepeatedTypeReference(
dwarf::Attribute Attribute,
unsigned int DieNumber)
void hashRepeatedTypeReference(
dwarf::Attribute Attribute,
unsigned int DieNumber)
Description
Hashes a reference to a previously referenced type DIE.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:99
Parameters
- dwarf::Attribute Attribute
- unsigned int DieNumber
¶void hashShallowTypeReference(
dwarf::Attribute Attribute,
const llvm::DIE& Entry,
llvm::StringRef Name)
void hashShallowTypeReference(
dwarf::Attribute Attribute,
const llvm::DIE& Entry,
llvm::StringRef Name)
Description
Hashes a reference to a named type in such a way that is independent of whether that type is described by a declaration or a definition.
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:95
Parameters
- dwarf::Attribute Attribute
- const llvm::DIE& Entry
- llvm::StringRef Name
¶void update(uint8_t Value)
void update(uint8_t Value)
Description
Adds
Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:57
Parameters
- uint8_t Value
- to the hash.