Home | History | Annotate | Download | only in AsmPrinter

Lines Matching refs:Die

20 #include "llvm/CodeGen/DIE.h"
33 static StringRef getDIEStringAttr(const DIE &Die, uint16_t Attr) {
36 for (const auto &V : Die.values())
81 void DIEHash::addParentContext(const DIE &Parent) {
87 SmallVector<const DIE *, 1> Parents;
88 const DIE *Cur = &Parent;
98 for (SmallVectorImpl<const DIE *>::reverse_iterator I = Parents.rbegin(),
101 const DIE &Die = **I;
107 addULEB128(Die.getTag());
110 StringRef Name = getDIEStringAttr(Die, dwarf::DW_AT_name);
117 // Collect all of the attributes for a particular DIE in single structure.
118 void DIEHash::collectAttributes(const DIE &Die, DIEAttrs &Attrs) {
124 for (const auto &V : Die.values()) {
185 const DIE &Entry, StringRef Name) {
193 if (const DIE *Parent = Entry.getParent())
224 const DIE &Entry) {
266 void DIEHash::hashBlockData(const DIE::const_value_range &Values) {
422 // Add all of the attributes for \param Die to the hash.
423 void DIEHash::addAttributes(const DIE &Die) {
425 collectAttributes(Die, Attrs);
426 hashAttributes(Attrs, Die.getTag());
429 void DIEHash::hashNestedType(const DIE &Die, StringRef Name) {
435 addULEB128(Die.getTag());
441 // Compute the hash of a DIE. This is based on the type signature computation
443 // flattened description of the DIE.
444 void DIEHash::computeHash(const DIE &Die) {
445 // Append the letter 'D', followed by the DWARF tag of the DIE.
447 addULEB128(Die.getTag());
449 // Add each of the attributes of the DIE.
450 addAttributes(Die);
452 // Then hash each of the children of the DIE.
453 for (auto &C : Die.children()) {
472 DIE
475 uint64_t DIEHash::computeCUSignature(const DIE &Die) {
477 Numbering[&Die] = 1;
479 // Hash the DIE.
480 computeHash(Die);
493 /// DWARF4 standard. It is an md5 hash of the flattened description of the DIE
496 uint64_t DIEHash::computeTypeSignature(const DIE &Die) {
498 Numbering[&Die] = 1;
500 if (const DIE *Parent = Die.getParent())
503 // Hash the DIE.
504 computeHash(Die);