diff options
author | Paul Robinson <paul.robinson@sony.com> | 2018-11-12 16:55:11 +0000 |
---|---|---|
committer | Paul Robinson <paul.robinson@sony.com> | 2018-11-12 16:55:11 +0000 |
commit | 5b302bfc8e01cd61b2c5d09d402d02050b3421fa (patch) | |
tree | 2baca09b18323c27f59dc77927874acebf71b460 | |
parent | b2413ea9d358e09cb4f4678e1b10d99c2ee46849 (diff) | |
download | bcm5719-llvm-5b302bfc8e01cd61b2c5d09d402d02050b3421fa.tar.gz bcm5719-llvm-5b302bfc8e01cd61b2c5d09d402d02050b3421fa.zip |
[DWARFv5] Emit split type units in .debug_info.dwo.
Differential Revision: https://reviews.llvm.org/D54350
llvm-svn: 346674
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 11 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/dwarf-headers.ll | 9 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/dwarf-split-line-1.ll | 4 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/dwarf-split-line-2.ll | 3 |
4 files changed, 13 insertions, 14 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 5d50f34d77d..7f555a52fcf 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -2609,10 +2609,13 @@ void DwarfDebug::addDwarfTypeUnitType(DwarfCompileUnit &CU, NewTU.setTypeSignature(Signature); Ins.first->second = Signature; - if (useSplitDwarf()) - // FIXME: v5 split type units belong in .debug_info.dwo. - NewTU.setSection(Asm->getObjFileLowering().getDwarfTypesDWOSection()); - else { + if (useSplitDwarf()) { + MCSection *Section = + getDwarfVersion() <= 4 + ? Asm->getObjFileLowering().getDwarfTypesDWOSection() + : Asm->getObjFileLowering().getDwarfInfoDWOSection(); + NewTU.setSection(Section); + } else { MCSection *Section = getDwarfVersion() <= 4 ? Asm->getObjFileLowering().getDwarfTypesSection(Signature) diff --git a/llvm/test/CodeGen/X86/dwarf-headers.ll b/llvm/test/CodeGen/X86/dwarf-headers.ll index 2f20216ab0d..ef626ad7003 100644 --- a/llvm/test/CodeGen/X86/dwarf-headers.ll +++ b/llvm/test/CodeGen/X86/dwarf-headers.ll @@ -78,14 +78,11 @@ ; O-5: 0x00000014: DW_TAG_compile_unit ; ; DWO-5: .debug_info.dwo contents: -; DWO-5: 0x00000000: Compile Unit: {{.*}} version = 0x0005 unit_type = DW_UT_split_compile abbr_offset -; DWO-5-SAME: DWO_id = 0xccd7e58ef8bf4aa6 -; DWO-5: 0x00000014: DW_TAG_compile_unit -; -; FIXME: V5 wants type units in .debug_info.dwo not .debug_types.dwo. -; DWO-5: .debug_types.dwo contents: ; DWO-5: 0x00000000: Type Unit: {{.*}} version = 0x0005 unit_type = DW_UT_split_type abbr_offset ; DWO-5: 0x00000018: DW_TAG_type_unit +; DWO-5: 0x00000033: Compile Unit: {{.*}} version = 0x0005 unit_type = DW_UT_split_compile abbr_offset +; DWO-5-SAME: DWO_id = 0xccd7e58ef8bf4aa6 +; DWO-5: 0x00000047: DW_TAG_compile_unit ; ModuleID = 't.cpp' diff --git a/llvm/test/CodeGen/X86/dwarf-split-line-1.ll b/llvm/test/CodeGen/X86/dwarf-split-line-1.ll index 6a403668d73..cdc3e205b59 100644 --- a/llvm/test/CodeGen/X86/dwarf-split-line-1.ll +++ b/llvm/test/CodeGen/X86/dwarf-split-line-1.ll @@ -6,13 +6,13 @@ ; RUN: -filetype=obj -O0 -mtriple=x86_64-unknown-linux-gnu < %s ; RUN: llvm-dwarfdump -v %t.dwo | FileCheck %s -; FIXME: V5 wants type units in .debug_info.dwo not .debug_types.dwo. ; CHECK-NOT: .debug_line.dwo -; CHECK: .debug_types.dwo contents: +; CHECK: .debug_info.dwo contents: ; CHECK: 0x00000000: Type Unit: {{.*}} version = 0x0005 unit_type = DW_UT_split_type abbr_offset ; CHECK: 0x00000018: DW_TAG_type_unit ; CHECK-NOT: DW_AT_stmt_list ; CHECK-NOT: DW_AT_decl_file +; CHECK: Compile Unit: ; CHECK-NOT: .debug_line.dwo ; ModuleID = 't.cpp' diff --git a/llvm/test/CodeGen/X86/dwarf-split-line-2.ll b/llvm/test/CodeGen/X86/dwarf-split-line-2.ll index 3cdad4ddac8..d8a2d9b4bc7 100644 --- a/llvm/test/CodeGen/X86/dwarf-split-line-2.ll +++ b/llvm/test/CodeGen/X86/dwarf-split-line-2.ll @@ -8,8 +8,7 @@ ; RUN: llvm-dwarfdump -v %t.dwo | FileCheck %s ; Currently the no-source-location type comes out first. -; FIXME: V5 wants type units in .debug_info.dwo not .debug_types.dwo. -; CHECK: .debug_types.dwo contents: +; CHECK: .debug_info.dwo contents: ; CHECK: 0x00000000: Type Unit: {{.*}} name = 'S' ; CHECK-SAME: (next unit at [[TU2:0x[0-9a-f]+]]) ; CHECK: DW_TAG_type_unit |