aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2018-07-25 11:55:59 +0000
committerPavel Labath <labath@google.com>2018-07-25 11:55:59 +0000
commit7a59e3bf3775ca3ae33501a4c36ab8b66843eba9 (patch)
tree497a2d13ed0e9e5c64f0636a1590db122721dc50 /llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
parent374af8070eb8f1174d813c21a2d6eb2f25fa8406 (diff)
downloadllvm-7a59e3bf3775ca3ae33501a4c36ab8b66843eba9.zip
llvm-7a59e3bf3775ca3ae33501a4c36ab8b66843eba9.tar.gz
llvm-7a59e3bf3775ca3ae33501a4c36ab8b66843eba9.tar.bz2
dwarfgen: Add support for generating the debug_str_offsets section
Summary: The motivation for this is D49493, where we'd like to test details of debug_str_offsets behavior which is difficult to trigger from a traditional test. This adds the plubming necessary for dwarfgen to generate this section. The more interesting changes are: - I've moved emitStringOffsetsTableHeader function from DwarfFile to DwarfStringPool, so I can generate the section header more easily from the unit test. - added a new addAttribute overload taking an MCExpr*. This is used to generate the DW_AT_str_offsets_base, which links a compile unit to the offset table. I've also added a basic test for reading and writing DW_form_strx forms. Reviewers: dblaikie, JDevlieghere, probinson Subscribers: llvm-commits, aprantl Differential Revision: https://reviews.llvm.org/D49670 llvm-svn: 337910
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp20
1 files changed, 0 insertions, 20 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
index f3a3cbd..c90bd56 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
@@ -28,26 +28,6 @@ void DwarfFile::addUnit(std::unique_ptr<DwarfCompileUnit> U) {
CUs.push_back(std::move(U));
}
-void DwarfFile::emitStringOffsetsTableHeader(MCSection *Section) {
- if (StrPool.empty())
- return;
- Asm->OutStreamer->SwitchSection(Section);
- unsigned EntrySize = 4;
- // FIXME: DWARF64
- // We are emitting the header for a contribution to the string offsets
- // table. The header consists of an entry with the contribution's
- // size (not including the size of the length field), the DWARF version and
- // 2 bytes of padding.
- Asm->emitInt32(StrPool.size() * EntrySize + 4);
- Asm->emitInt16(Asm->getDwarfVersion());
- Asm->emitInt16(0);
- // Define the symbol that marks the start of the contribution. It is
- // referenced by most unit headers via DW_AT_str_offsets_base.
- // Split units do not use the attribute.
- if (StringOffsetsStartSym)
- Asm->OutStreamer->EmitLabel(StringOffsetsStartSym);
-}
-
// Emit the various dwarf units to the unit section USection with
// the abbreviations going into ASection.
void DwarfFile::emitUnits(bool UseOffsets) {