diff options
author | Eric Christopher <echristo@gmail.com> | 2012-11-27 22:43:42 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2012-11-27 22:43:42 +0000 |
commit | 95198f50353451c9534e000212ac967250a36268 (patch) | |
tree | 1be2196e013f3263376cd2f29ec14dea7b94abc2 /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | |
parent | b4ac423ed487179f5d063f261d9d1bec2d57ccb0 (diff) | |
download | bcm5719-llvm-95198f50353451c9534e000212ac967250a36268.tar.gz bcm5719-llvm-95198f50353451c9534e000212ac967250a36268.zip |
Reapply section moving, make sure string section is output last.
llvm-svn: 168736
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 78 |
1 files changed, 54 insertions, 24 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 97f61e86101..aacd839c9ad 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -903,11 +903,60 @@ void DwarfDebug::endModule() { // Emit initial sections. emitSectionLabels(); - // Emit all the DIEs into a debug info section - emitDebugInfo(); + if (!useDwarfFission()) { + // Emit all the DIEs into a debug info section. + emitDebugInfo(); - // Corresponding abbreviations into a abbrev section. - emitAbbreviations(); + // Corresponding abbreviations into a abbrev section. + emitAbbreviations(); + + // Emit info into a debug loc section. + emitDebugLoc(); + + // Emit info into a debug aranges section. + emitDebugARanges(); + + // Emit info into a debug ranges section. + emitDebugRanges(); + + // Emit info into a debug macinfo section. + emitDebugMacInfo(); + + // Emit inline info. + // TODO: When we don't need the option anymore we + // can remove all of the code that this section + // depends upon. + if (useDarwinGDBCompat()) + emitDebugInlineInfo(); + } else { + // TODO: Fill this in for Fission sections and separate + // out information into new sections. + + // Emit all the DIEs into a debug info section. + emitDebugInfo(); + + // Corresponding abbreviations into a abbrev section. + emitAbbreviations(); + + // Emit info into a debug loc section. + emitDebugLoc(); + + // Emit info into a debug aranges section. + emitDebugARanges(); + + // Emit info into a debug ranges section. + emitDebugRanges(); + + // Emit info into a debug macinfo section. + emitDebugMacInfo(); + + // Emit inline info. + // TODO: When we don't need the option anymore we + // can remove all of the code that this section + // depends upon. + if (useDarwinGDBCompat()) + emitDebugInlineInfo(); + } // Emit info into the dwarf accelerator table sections. if (useDwarfAccelTables()) { @@ -923,26 +972,7 @@ void DwarfDebug::endModule() { if (useDarwinGDBCompat()) emitDebugPubTypes(); - // Emit info into a debug loc section. - emitDebugLoc(); - - // Emit info into a debug aranges section. - emitDebugARanges(); - - // Emit info into a debug ranges section. - emitDebugRanges(); - - // Emit info into a debug macinfo section. - emitDebugMacInfo(); - - // Emit inline info. - // TODO: When we don't need the option anymore we - // can remove all of the code that this section - // depends upon. - if (useDarwinGDBCompat()) - emitDebugInlineInfo(); - - // Emit info into a debug str section. + // Finally emit string information into a string table. emitDebugStr(); // clean up. |