mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-12 13:30:51 +00:00
AsmPrinter: Split out non-DIE printing from DIE::print(), NFC
Split out a helper `printValues()` for printing `DIEBlock` and `DIELoc`, instead of relying on `DIE::print()`. The shared code was actually fairly small there. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243856 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
69e4c2fc86
commit
94404e8097
@ -145,35 +145,33 @@ DIEValue DIE::findAttribute(dwarf::Attribute Attribute) const {
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
static void printValues(raw_ostream &O, const DIEValueList &Values,
|
||||
StringRef Type, unsigned Size, unsigned IndentCount) {
|
||||
O << Type << ": Size: " << Size << "\n";
|
||||
|
||||
unsigned I = 0;
|
||||
const std::string Indent(IndentCount, ' ');
|
||||
for (const auto &V : Values.values()) {
|
||||
O << Indent;
|
||||
O << "Blk[" << I++ << "]";
|
||||
O << " " << dwarf::FormEncodingString(V.getForm()) << " ";
|
||||
V.print(O);
|
||||
O << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
void DIE::print(raw_ostream &O, unsigned IndentCount) const {
|
||||
const std::string Indent(IndentCount, ' ');
|
||||
bool isBlock = getTag() == 0;
|
||||
O << Indent << "Die: " << format("0x%lx", (long)(intptr_t) this)
|
||||
<< ", Offset: " << Offset << ", Size: " << Size << "\n";
|
||||
|
||||
if (!isBlock) {
|
||||
O << Indent
|
||||
<< "Die: "
|
||||
<< format("0x%lx", (long)(intptr_t)this)
|
||||
<< ", Offset: " << Offset
|
||||
<< ", Size: " << Size << "\n";
|
||||
|
||||
O << Indent
|
||||
<< dwarf::TagString(getTag())
|
||||
<< " "
|
||||
O << Indent << dwarf::TagString(getTag()) << " "
|
||||
<< dwarf::ChildrenString(hasChildren()) << "\n";
|
||||
} else {
|
||||
O << "Size: " << Size << "\n";
|
||||
}
|
||||
|
||||
IndentCount += 2;
|
||||
unsigned I = 0;
|
||||
for (const auto &V : values()) {
|
||||
O << Indent;
|
||||
|
||||
if (!isBlock)
|
||||
O << dwarf::AttributeString(V.getAttribute());
|
||||
else
|
||||
O << "Blk[" << I++ << "]";
|
||||
|
||||
O << " " << dwarf::FormEncodingString(V.getForm()) << " ";
|
||||
V.print(O);
|
||||
O << "\n";
|
||||
@ -183,7 +181,7 @@ void DIE::print(raw_ostream &O, unsigned IndentCount) const {
|
||||
for (const auto &Child : children())
|
||||
Child.print(O, IndentCount + 4);
|
||||
|
||||
if (!isBlock) O << "\n";
|
||||
O << "\n";
|
||||
}
|
||||
|
||||
void DIE::dump() {
|
||||
@ -547,8 +545,7 @@ unsigned DIELoc::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
|
||||
#ifndef NDEBUG
|
||||
void DIELoc::print(raw_ostream &O) const {
|
||||
O << "ExprLoc: ";
|
||||
DIE::print(O, 5);
|
||||
printValues(O, *this, "ExprLoc", Size, 5);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -596,8 +593,7 @@ unsigned DIEBlock::SizeOf(const AsmPrinter *AP, dwarf::Form Form) const {
|
||||
|
||||
#ifndef NDEBUG
|
||||
void DIEBlock::print(raw_ostream &O) const {
|
||||
O << "Blk: ";
|
||||
DIE::print(O, 5);
|
||||
printValues(O, *this, "Blk", Size, 5);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user