diff options
| author | Alexey Bataev <a.bataev@hotmail.com> | 2018-08-01 19:38:20 +0000 |
|---|---|---|
| committer | Alexey Bataev <a.bataev@hotmail.com> | 2018-08-01 19:38:20 +0000 |
| commit | d4dd7215f62eac518bdee21bba64622134dfa637 (patch) | |
| tree | 2b7a895f9d8107a94f96abe130cd98b7eabb1852 /llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp | |
| parent | 11f14904d3c13342c4ecc0f4a408c3a98b087ddf (diff) | |
| download | bcm5719-llvm-d4dd7215f62eac518bdee21bba64622134dfa637.tar.gz bcm5719-llvm-d4dd7215f62eac518bdee21bba64622134dfa637.zip | |
[DEBUGINFO] Disable emission of the dwarf sections, but allow directives.
Summary:
Added an option that allows to emit only '.loc' and '.file' kind debug
directives, but disables emission of the DWARF sections. Required for
NVPTX target to support profiling. It requires '.loc' and '.file'
directives, but does not require any DWARF sections for the profiler.
Reviewers: probinson, echristo, dblaikie
Subscribers: aprantl, JDevlieghere, llvm-commits
Differential Revision: https://reviews.llvm.org/D46021
llvm-svn: 338616
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp index 049f349b009..96149fd63f1 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp @@ -36,6 +36,9 @@ void DwarfFile::emitUnits(bool UseOffsets) { } void DwarfFile::emitUnit(DwarfUnit *TheU, bool UseOffsets) { + if (TheU->getCUNode()->isDebugDirectivesOnly()) + return; + DIE &Die = TheU->getUnitDie(); MCSection *USection = TheU->getSection(); Asm->OutStreamer->SwitchSection(USection); @@ -53,6 +56,9 @@ void DwarfFile::computeSizeAndOffsets() { // Iterate over each compile unit and set the size and offsets for each // DIE within each compile unit. All offsets are CU relative. for (const auto &TheU : CUs) { + if (TheU->getCUNode()->isDebugDirectivesOnly()) + continue; + TheU->setDebugSectionOffset(SecOffset); SecOffset += computeSizeAndOffsetsForUnit(TheU.get()); } |

