diff options
author | Manman Ren <mren@apple.com> | 2013-02-05 21:52:47 +0000 |
---|---|---|
committer | Manman Ren <mren@apple.com> | 2013-02-05 21:52:47 +0000 |
commit | 43213cf1ac05b4198fcf9fa85d7da85477daafd1 (patch) | |
tree | ac7b63c63e3625771d1e2d94492927a6d5682320 /test | |
parent | baabdecbb9bf5b32fa81b1e2830ab13076d549f1 (diff) |
Dwarf: support for LTO where a single object file can have multiple line tables
We generate one line table for each compilation unit in the object file.
Reviewed by Eric and Kevin.
rdar://problem/13067005
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174445 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/X86/2010-12-02-MC-Set.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/X86/dbg-value-location.ll | 2 | ||||
-rw-r--r-- | test/DebugInfo/X86/stmt-list-multiple-compile-units.ll | 62 | ||||
-rw-r--r-- | test/DebugInfo/X86/stmt-list.ll | 2 | ||||
-rw-r--r-- | test/DebugInfo/X86/stringpool.ll | 4 |
8 files changed, 70 insertions, 8 deletions
diff --git a/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll b/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll index ca88eedcea..dba2af0883 100644 --- a/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll +++ b/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll @@ -17,7 +17,7 @@ target triple = "thumbv7-apple-darwin10" ; DW_OP_constu ; offset -;CHECK: .long Lset6 +;CHECK: .long Lset7 ;CHECK-NEXT: @ DW_AT_type ;CHECK-NEXT: @ DW_AT_decl_file ;CHECK-NEXT: @ DW_AT_decl_line diff --git a/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll b/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll index f2b0c5d7d0..52b57e83e3 100644 --- a/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll +++ b/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll @@ -8,7 +8,7 @@ ; DW_OP_constu ; offset -;CHECK: .long Lset33 +;CHECK: .long Lset34 ;CHECK-NEXT: @ DW_AT_type ;CHECK-NEXT: @ DW_AT_decl_file ;CHECK-NEXT: @ DW_AT_decl_line diff --git a/test/CodeGen/X86/2010-12-02-MC-Set.ll b/test/CodeGen/X86/2010-12-02-MC-Set.ll index 31446786ec..cf406249af 100644 --- a/test/CodeGen/X86/2010-12-02-MC-Set.ll +++ b/test/CodeGen/X86/2010-12-02-MC-Set.ll @@ -18,5 +18,5 @@ entry: ; CHECK: .subsections_via_symbols ; CHECK-NEXT: __debug_line -; CHECK-NEXT: Ltmp +; CHECK-NEXT: Lline_table_start0 ; CHECK-NEXT: Ltmp{{[0-9]}} = (Ltmp diff --git a/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll b/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll index 166dcf2599..ef37919f4a 100644 --- a/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll +++ b/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll @@ -4,7 +4,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 target triple = "x86_64-apple-darwin10.0.0" ; Check debug info for variable z_s -;CHECK: .long Lset13 +;CHECK: .long Lset14 ;CHECK-NEXT: ## DW_AT_decl_file ;CHECK-NEXT: ## DW_AT_decl_line ;CHECK-NEXT: ## DW_AT_type diff --git a/test/CodeGen/X86/dbg-value-location.ll b/test/CodeGen/X86/dbg-value-location.ll index 05e29ecff0..198cd20150 100644 --- a/test/CodeGen/X86/dbg-value-location.ll +++ b/test/CodeGen/X86/dbg-value-location.ll @@ -4,7 +4,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 target triple = "x86_64-apple-darwin10.0.0" ;Radar 8950491 -;CHECK: .long Lset5 +;CHECK: .long Lset6 ;CHECK-NEXT: ## DW_AT_decl_file ;CHECK-NEXT: ## DW_AT_decl_line ;CHECK-NEXT: ## DW_AT_type diff --git a/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll b/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll new file mode 100644 index 0000000000..601d08f114 --- /dev/null +++ b/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll @@ -0,0 +1,62 @@ +; RUN: llc -O0 %s -mtriple=x86_64-apple-darwin -filetype=obj -o %t +; RUN: llvm-dwarfdump %t | FileCheck %s + +; rdar://13067005 +; CHECK: .debug_info contents: +; CHECK: DW_TAG_compile_unit +; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) +; CHECK: DW_AT_stmt_list [DW_FORM_data4] (0x00000000) + +; CHECK: DW_TAG_compile_unit +; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) +; CHECK: DW_AT_stmt_list [DW_FORM_data4] (0x00000049) + +; CHECK: .debug_line contents: +; CHECK-NEXT: Line table prologue: +; CHECK-NEXT: total_length: 0x00000045 +; CHECK: Line table prologue: +; CHECK: total_length: 0x00000047 + +define i32 @test(i32 %a) nounwind uwtable ssp { +entry: + %a.addr = alloca i32, align 4 + store i32 %a, i32* %a.addr, align 4 + call void @llvm.dbg.declare(metadata !{i32* %a.addr}, metadata !15), !dbg !16 + %0 = load i32* %a.addr, align 4, !dbg !17 + %call = call i32 @fn(i32 %0), !dbg !17 + ret i32 %call, !dbg !17 +} + +declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone + +define i32 @fn(i32 %a) nounwind uwtable ssp { +entry: + %a.addr = alloca i32, align 4 + store i32 %a, i32* %a.addr, align 4 + call void @llvm.dbg.declare(metadata !{i32* %a.addr}, metadata !19), !dbg !20 + %0 = load i32* %a.addr, align 4, !dbg !21 + ret i32 %0, !dbg !21 +} + +!llvm.dbg.cu = !{!0, !10} +!0 = metadata !{i32 786449, i32 0, i32 12, metadata !"simple.c", metadata !"/private/tmp", metadata !"clang version 3.3", i1 true, i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1} ; [ DW_TAG_compile_unit ] +!1 = metadata !{metadata !2} +!2 = metadata !{i32 0} +!3 = metadata !{metadata !5} +!5 = metadata !{i32 786478, i32 0, metadata !6, metadata !"test", metadata !"test", metadata !"", metadata !6, i32 2, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32)* @test, null, null, metadata !1, i32 3} ; [ DW_TAG_subprogram ] [line 2] [def] [scope 3] [test] +!6 = metadata !{i32 786473, metadata !"simple.c", metadata !"/private/tmp", null} ; [ DW_TAG_file_type ] +!7 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!8 = metadata !{metadata !9, metadata !9} +!9 = metadata !{i32 786468, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed] +!10 = metadata !{i32 786449, i32 0, i32 12, metadata !"simple2.c", metadata !"/private/tmp", metadata !"clang version 3.3 (trunk 172862)", i1 true, i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !11, metadata !1} ; [ DW_TAG_compile_unit ] +!11 = metadata !{metadata !13} +!13 = metadata !{i32 786478, i32 0, metadata !14, metadata !"fn", metadata !"fn", metadata !"", metadata !14, i32 1, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32)* @fn, null, null, metadata !1, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [fn] +!14 = metadata !{i32 786473, metadata !"simple2.c", metadata !"/private/tmp", null} ; [ DW_TAG_file_type ] +!15 = metadata !{i32 786689, metadata !5, metadata !"a", metadata !6, i32 16777218, metadata !9, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [a] [line 2] +!16 = metadata !{i32 2, i32 0, metadata !5, null} +!17 = metadata !{i32 4, i32 0, metadata !18, null} +!18 = metadata !{i32 786443, metadata !5, i32 3, i32 0, metadata !6, i32 0} ; [ DW_TAG_lexical_block ] +!19 = metadata !{i32 786689, metadata !13, metadata !"a", metadata !14, i32 16777217, metadata !9, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [a] [line 1] +!20 = metadata !{i32 1, i32 0, metadata !13, null} +!21 = metadata !{i32 2, i32 0, metadata !22, null} +!22 = metadata !{i32 786443, metadata !13, i32 1, i32 0, metadata !14, i32 0} ; [ DW_TAG_lexical_block ] diff --git a/test/DebugInfo/X86/stmt-list.ll b/test/DebugInfo/X86/stmt-list.ll index 145649bf45..8213c1b2af 100644 --- a/test/DebugInfo/X86/stmt-list.ll +++ b/test/DebugInfo/X86/stmt-list.ll @@ -3,7 +3,7 @@ ; CHECK: .section .debug_line,"",@progbits ; CHECK-NEXT: .Lsection_line: -; CHECK: .long .Lsection_line # DW_AT_stmt_list +; CHECK: .long .Lline_table_start0 # DW_AT_stmt_list define void @f() { entry: diff --git a/test/DebugInfo/X86/stringpool.ll b/test/DebugInfo/X86/stringpool.ll index 1e08d546e2..4e2a2a2b03 100644 --- a/test/DebugInfo/X86/stringpool.ll +++ b/test/DebugInfo/X86/stringpool.ll @@ -23,8 +23,8 @@ ; LINUX-NEXT: .quad yyyy ; Verify that we refer to 'yyyy' without a relocation. -; DARWIN: Lset5 = Linfo_string3-Linfo_string ## DW_AT_name -; DARWIN-NEXT: .long Lset5 +; DARWIN: Lset6 = Linfo_string3-Linfo_string ## DW_AT_name +; DARWIN-NEXT: .long Lset6 ; DARWIN-NEXT: .long 39 ## DW_AT_type ; DARWIN-NEXT: .byte 1 ## DW_AT_external ; DARWIN-NEXT: .byte 1 ## DW_AT_decl_file |