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

Methods

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:102

Parameters

const llvm::DIE& Die
llvm::StringRef Name

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)

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)

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)

Description

Adds

Declared at: llvm/lib/CodeGen/AsmPrinter/DIEHash.h:57

Parameters

uint8_t Value
to the hash.