diff options
| author | David Blaikie <dblaikie@gmail.com> | 2014-03-18 01:17:26 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2014-03-18 01:17:26 +0000 |
| commit | 4a2f95f60ee386dc87d29d5f763fa4fb046550ff (patch) | |
| tree | 4dc2f624e58e405c9fb6e133613d6d1ee8000a27 /llvm/test | |
| parent | cf9e671f5c909334ae5f6e0402e33162282c82fd (diff) | |
| download | bcm5719-llvm-4a2f95f60ee386dc87d29d5f763fa4fb046550ff.tar.gz bcm5719-llvm-4a2f95f60ee386dc87d29d5f763fa4fb046550ff.zip | |
DebugInfo: Implement debug_line.dwo for file names used in type units during -gsplit-dwarf
This removes an attribute (and more importantly, a relocation) from
skeleton type units and removes some unnecessary file names from the
debug_line section that remains in the .o (and linked executable) file.
There's still a few places we could shave off some more space here:
* use compilation dir of the underlying compilation unit (since all the
type units share that compilation dir - though this would be more
complicated in LTO cases where they don't (keep a map of compilation
dir->line table header?))
* Remove some of the unnecessary header fields from the line table since
they're not needed in this situation (about 12 bytes per table).
llvm-svn: 204099
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/DebugInfo/X86/generate-odr-hash.ll | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/llvm/test/DebugInfo/X86/generate-odr-hash.ll b/llvm/test/DebugInfo/X86/generate-odr-hash.ll index 64a428e2d52..e01863d76c3 100644 --- a/llvm/test/DebugInfo/X86/generate-odr-hash.ll +++ b/llvm/test/DebugInfo/X86/generate-odr-hash.ll @@ -76,9 +76,9 @@ ; FISSION-NOT: type_signature ; FISSION-LABEL: type_signature = 0x1d02f3be30cc5688 ; FISSION: DW_TAG_type_unit -; FISSION: DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000) -; FISSION: DW_AT_GNU_dwo_name{{.*}}"bar.dwo" -; FISSION: DW_AT_comp_dir{{.*}}"/tmp/dbginfo" +; FISSION-NEXT: DW_AT_GNU_dwo_name{{.*}}"bar.dwo" +; FISSION-NEXT: DW_AT_GNU_addr_base +; FISSION-NEXT: DW_AT_comp_dir{{.*}}"/tmp/dbginfo" ; FISSION-NOT: type_signature ; FISSION-LABEL: type_signature = 0xb04af47397402e77 ; FISSION-NOT: type_signature @@ -120,8 +120,7 @@ ; CHECK-NOT: type_signature ; CHECK-LABEL: type_signature = 0xe94f6d3843e62d6b ; CHECK: DW_TAG_type_unit -; SINGLE: DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000) -; FISSION-NOT: DW_AT_stmt_list +; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000) ; CHECK-NOT: NULL ; CHECK-NOT: DW_AT_GNU_odr_signature ; CHECK: DW_TAG_structure_type @@ -136,9 +135,17 @@ ; CHECK-LABEL: .debug_line contents: ; CHECK: Line table prologue ; CHECK-NOT: file_names[ -; CHECK: file_names{{.*}} bar.h +; SINGLE: file_names{{.*}} bar.h ; CHECK: file_names{{.*}} bar.cpp ; CHECK-NOT: file_names[ + +; CHECK-LABEL: .debug_line.dwo contents: +; FISSION: Line table prologue +; FISSION-NOT: file_names[ +; FISSION: file_names{{.*}} bar.h +; FISSION: file_names{{.*}} bar.cpp +; FISSION-NOT: file_names[ + ; CHECK-LABEL: .debug_str contents: ; Use the unit size as a rough hash/identifier for the unit we're dealing with |

