[DebugInfo][DWARF][NFC] Refactor DWARFTypePrinter usages. Create functions to print type dies.

This patch creates functions which might be used to dump types.
This functionality was already implemented by  DWARFTypePrinter.
Now it could be reused. It will help D96035, which uses DWARFTypePrinter.

Differential Revision: https://reviews.llvm.org/D117134
This commit is contained in:
Alexey Lapshin 2022-01-12 18:42:48 +03:00
parent 96acdfa0de
commit 713c2b47a0
2 changed files with 19 additions and 2 deletions

View File

@ -470,6 +470,10 @@ inline std::reverse_iterator<DWARFDie::iterator> DWARFDie::rend() const {
return std::make_reverse_iterator(begin());
}
void dumpTypeQualifiedName(const DWARFDie &DIE, raw_ostream &OS);
void dumpTypeUnqualifiedName(const DWARFDie &DIE, raw_ostream &OS,
std::string *OriginalFullName = nullptr);
} // end namespace llvm
#endif // LLVM_DEBUGINFO_DWARF_DWARFDIE_H

View File

@ -772,7 +772,7 @@ static void dumpAttribute(raw_ostream &OS, const DWARFDie &Die,
DWARFDie D = resolveReferencedType(Die, FormValue);
if (D && !D.isNULL()) {
OS << Space << "\"";
DWARFTypePrinter(OS).appendQualifiedName(D);
dumpTypeQualifiedName(D, OS);
OS << '"';
}
} else if (Attr == DW_AT_APPLE_property_attribute) {
@ -808,7 +808,7 @@ void DWARFDie::getFullName(raw_string_ostream &OS,
return;
if (getTag() == DW_TAG_GNU_template_parameter_pack)
return;
DWARFTypePrinter(OS).appendUnqualifiedName(*this, OriginalFullName);
dumpTypeUnqualifiedName(*this, OS, OriginalFullName);
}
bool DWARFDie::isSubprogramDIE() const { return getTag() == DW_TAG_subprogram; }
@ -1270,3 +1270,16 @@ bool DWARFAttribute::mayHaveLocationExpr(dwarf::Attribute Attr) {
return false;
}
}
namespace llvm {
void dumpTypeQualifiedName(const DWARFDie &DIE, raw_ostream &OS) {
DWARFTypePrinter(OS).appendQualifiedName(DIE);
}
void dumpTypeUnqualifiedName(const DWARFDie &DIE, raw_ostream &OS,
std::string *OriginalFullName) {
DWARFTypePrinter(OS).appendUnqualifiedName(DIE, OriginalFullName);
}
} // namespace llvm