summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Robinson <paul.robinson@sony.com>2018-11-12 16:55:11 +0000
committerPaul Robinson <paul.robinson@sony.com>2018-11-12 16:55:11 +0000
commit5b302bfc8e01cd61b2c5d09d402d02050b3421fa (patch)
tree2baca09b18323c27f59dc77927874acebf71b460
parentb2413ea9d358e09cb4f4678e1b10d99c2ee46849 (diff)
downloadbcm5719-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.cpp11
-rw-r--r--llvm/test/CodeGen/X86/dwarf-headers.ll9
-rw-r--r--llvm/test/CodeGen/X86/dwarf-split-line-1.ll4
-rw-r--r--llvm/test/CodeGen/X86/dwarf-split-line-2.ll3
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
OpenPOWER on IntegriCloud