blob: 0b5b31f975ad17ece25647d42af38021c9f50277 [file] [log] [blame]
David Blaikiecabf54a2014-08-05 23:57:31 +00001; RUN: llc -filetype=obj < %s | llvm-dwarfdump -debug-dump=info - | FileCheck %s
Devang Pateldc9cbaa2011-08-03 01:25:46 +00002
3; Check debug info output for merged global.
4; DW_AT_location
David Blaikiecabf54a2014-08-05 23:57:31 +00005; 0x03 DW_OP_addr
6; 0x.. .long __MergedGlobals
7; 0x10 DW_OP_constu
8; 0x.. offset
9; 0x22 DW_OP_plus
Devang Pateldc9cbaa2011-08-03 01:25:46 +000010
David Blaikiecabf54a2014-08-05 23:57:31 +000011; CHECK: DW_TAG_variable
12; CHECK-NOT: DW_TAG
13; CHECK: DW_AT_name {{.*}} "x1"
14; CHECK-NOT: {{DW_TAG|NULL}}
15; CHECK: DW_AT_location [DW_FORM_exprloc] (<0x8> 03 [[ADDR:.. .. .. ..]] 10 00 22 )
16; CHECK: DW_TAG_variable
17; CHECK-NOT: DW_TAG
18; CHECK: DW_AT_name {{.*}} "x2"
19; CHECK-NOT: {{DW_TAG|NULL}}
20; CHECK: DW_AT_location [DW_FORM_exprloc] (<0x8> 03 [[ADDR]] 10 04 22 )
Devang Pateldc9cbaa2011-08-03 01:25:46 +000021
22target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32"
23target triple = "thumbv7-apple-macosx10.7.0"
24
25@x1 = internal unnamed_addr global i32 1, align 4
26@x2 = internal unnamed_addr global i32 2, align 4
27@x3 = internal unnamed_addr global i32 3, align 4
28@x4 = internal unnamed_addr global i32 4, align 4
29@x5 = global i32 0, align 4
30
31define i32 @get1(i32 %a) nounwind optsize ssp {
Adrian Prantl87b7eb92014-10-01 18:55:02 +000032 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !10, metadata !{i32 786690}), !dbg !30
Devang Pateldc9cbaa2011-08-03 01:25:46 +000033 %1 = load i32* @x1, align 4, !dbg !31
Adrian Prantl87b7eb92014-10-01 18:55:02 +000034 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !11, metadata !{i32 786690}), !dbg !31
Devang Pateldc9cbaa2011-08-03 01:25:46 +000035 store i32 %a, i32* @x1, align 4, !dbg !31
36 ret i32 %1, !dbg !31
37}
38
39define i32 @get2(i32 %a) nounwind optsize ssp {
Adrian Prantl87b7eb92014-10-01 18:55:02 +000040 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !13, metadata !{i32 786690}), !dbg !32
Devang Pateldc9cbaa2011-08-03 01:25:46 +000041 %1 = load i32* @x2, align 4, !dbg !33
Adrian Prantl87b7eb92014-10-01 18:55:02 +000042 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !14, metadata !{i32 786690}), !dbg !33
Devang Pateldc9cbaa2011-08-03 01:25:46 +000043 store i32 %a, i32* @x2, align 4, !dbg !33
44 ret i32 %1, !dbg !33
45}
46
47define i32 @get3(i32 %a) nounwind optsize ssp {
Adrian Prantl87b7eb92014-10-01 18:55:02 +000048 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !16, metadata !{i32 786690}), !dbg !34
Devang Pateldc9cbaa2011-08-03 01:25:46 +000049 %1 = load i32* @x3, align 4, !dbg !35
Adrian Prantl87b7eb92014-10-01 18:55:02 +000050 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !17, metadata !{i32 786690}), !dbg !35
Devang Pateldc9cbaa2011-08-03 01:25:46 +000051 store i32 %a, i32* @x3, align 4, !dbg !35
52 ret i32 %1, !dbg !35
53}
54
55define i32 @get4(i32 %a) nounwind optsize ssp {
Adrian Prantl87b7eb92014-10-01 18:55:02 +000056 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !19, metadata !{i32 786690}), !dbg !36
Devang Pateldc9cbaa2011-08-03 01:25:46 +000057 %1 = load i32* @x4, align 4, !dbg !37
Adrian Prantl87b7eb92014-10-01 18:55:02 +000058 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !20, metadata !{i32 786690}), !dbg !37
Devang Pateldc9cbaa2011-08-03 01:25:46 +000059 store i32 %a, i32* @x4, align 4, !dbg !37
60 ret i32 %1, !dbg !37
61}
62
63define i32 @get5(i32 %a) nounwind optsize ssp {
Adrian Prantl87b7eb92014-10-01 18:55:02 +000064 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !27, metadata !{i32 786690}), !dbg !38
Devang Pateldc9cbaa2011-08-03 01:25:46 +000065 %1 = load i32* @x5, align 4, !dbg !39
Adrian Prantl87b7eb92014-10-01 18:55:02 +000066 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !28, metadata !{i32 786690}), !dbg !39
Devang Pateldc9cbaa2011-08-03 01:25:46 +000067 store i32 %a, i32* @x5, align 4, !dbg !39
68 ret i32 %1, !dbg !39
69}
70
Adrian Prantl87b7eb92014-10-01 18:55:02 +000071declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnone
Devang Pateldc9cbaa2011-08-03 01:25:46 +000072
73!llvm.dbg.cu = !{!0}
Manman Ren409558f2013-11-22 21:49:45 +000074!llvm.module.flags = !{!49}
Devang Pateldc9cbaa2011-08-03 01:25:46 +000075
David Blaikiecabf54a2014-08-05 23:57:31 +000076!0 = metadata !{i32 786449, metadata !47, i32 12, metadata !"clang", i1 true, metadata !"", i32 0, metadata !48, metadata !48, metadata !40, metadata !41, metadata !48, null, i32 1} ; [ DW_TAG_compile_unit ]
Manman Rendeeafd82013-09-06 21:03:58 +000077!1 = metadata !{i32 786478, metadata !47, metadata !2, metadata !"get1", metadata !"get1", metadata !"", i32 5, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 (i32)* @get1, null, null, metadata !42, i32 5} ; [ DW_TAG_subprogram ] [line 5] [def] [get1]
David Blaikie5692e722013-03-28 02:44:59 +000078!2 = metadata !{i32 786473, metadata !47} ; [ DW_TAG_file_type ]
Manman Rendeeafd82013-09-06 21:03:58 +000079!3 = metadata !{i32 786453, metadata !47, metadata !2, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
Devang Pateldc9cbaa2011-08-03 01:25:46 +000080!4 = metadata !{metadata !5}
David Blaikie5692e722013-03-28 02:44:59 +000081!5 = metadata !{i32 786468, null, metadata !0, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
Manman Rendeeafd82013-09-06 21:03:58 +000082!6 = metadata !{i32 786478, metadata !47, metadata !2, metadata !"get2", metadata !"get2", metadata !"", i32 8, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 (i32)* @get2, null, null, metadata !43, i32 8} ; [ DW_TAG_subprogram ] [line 8] [def] [get2]
83!7 = metadata !{i32 786478, metadata !47, metadata !2, metadata !"get3", metadata !"get3", metadata !"", i32 11, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 (i32)* @get3, null, null, metadata !44, i32 11} ; [ DW_TAG_subprogram ] [line 11] [def] [get3]
84!8 = metadata !{i32 786478, metadata !47, metadata !2, metadata !"get4", metadata !"get4", metadata !"", i32 14, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 (i32)* @get4, null, null, metadata !45, i32 14} ; [ DW_TAG_subprogram ] [line 14] [def] [get4]
85!9 = metadata !{i32 786478, metadata !47, metadata !2, metadata !"get5", metadata !"get5", metadata !"", i32 17, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 (i32)* @get5, null, null, metadata !46, i32 17} ; [ DW_TAG_subprogram ] [line 17] [def] [get5]
David Blaikiee5a2f702013-03-08 00:23:31 +000086!10 = metadata !{i32 786689, metadata !1, metadata !"a", metadata !2, i32 16777221, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
87!11 = metadata !{i32 786688, metadata !12, metadata !"b", metadata !2, i32 5, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
Manman Ren921382e2013-07-27 01:26:08 +000088!12 = metadata !{i32 786443, metadata !47, metadata !1, i32 5, i32 19, i32 0} ; [ DW_TAG_lexical_block ]
David Blaikiee5a2f702013-03-08 00:23:31 +000089!13 = metadata !{i32 786689, metadata !6, metadata !"a", metadata !2, i32 16777224, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
90!14 = metadata !{i32 786688, metadata !15, metadata !"b", metadata !2, i32 8, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
Manman Ren921382e2013-07-27 01:26:08 +000091!15 = metadata !{i32 786443, metadata !47, metadata !6, i32 8, i32 17, i32 1} ; [ DW_TAG_lexical_block ]
David Blaikiee5a2f702013-03-08 00:23:31 +000092!16 = metadata !{i32 786689, metadata !7, metadata !"a", metadata !2, i32 16777227, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
93!17 = metadata !{i32 786688, metadata !18, metadata !"b", metadata !2, i32 11, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
Manman Ren921382e2013-07-27 01:26:08 +000094!18 = metadata !{i32 786443, metadata !47, metadata !7, i32 11, i32 19, i32 2} ; [ DW_TAG_lexical_block ]
David Blaikiee5a2f702013-03-08 00:23:31 +000095!19 = metadata !{i32 786689, metadata !8, metadata !"a", metadata !2, i32 16777230, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
96!20 = metadata !{i32 786688, metadata !21, metadata !"b", metadata !2, i32 14, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
Manman Ren921382e2013-07-27 01:26:08 +000097!21 = metadata !{i32 786443, metadata !47, metadata !8, i32 14, i32 19, i32 3} ; [ DW_TAG_lexical_block ]
David Blaikiecabf54a2014-08-05 23:57:31 +000098!25 = metadata !{i32 786484, i32 0, metadata !0, metadata !"x1", metadata !"x1", metadata !"", metadata !2, i32 4, metadata !5, i32 1, i32 1, i32* @x1, null} ; [ DW_TAG_variable ]
99!26 = metadata !{i32 786484, i32 0, metadata !0, metadata !"x2", metadata !"x2", metadata !"", metadata !2, i32 7, metadata !5, i32 1, i32 1, i32* @x2, null} ; [ DW_TAG_variable ]
David Blaikiee5a2f702013-03-08 00:23:31 +0000100!27 = metadata !{i32 786689, metadata !9, metadata !"a", metadata !2, i32 16777233, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
101!28 = metadata !{i32 786688, metadata !29, metadata !"b", metadata !2, i32 17, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ]
Manman Ren921382e2013-07-27 01:26:08 +0000102!29 = metadata !{i32 786443, metadata !47, metadata !9, i32 17, i32 19, i32 4} ; [ DW_TAG_lexical_block ]
Devang Pateldc9cbaa2011-08-03 01:25:46 +0000103!30 = metadata !{i32 5, i32 16, metadata !1, null}
104!31 = metadata !{i32 5, i32 32, metadata !12, null}
105!32 = metadata !{i32 8, i32 14, metadata !6, null}
106!33 = metadata !{i32 8, i32 29, metadata !15, null}
107!34 = metadata !{i32 11, i32 16, metadata !7, null}
108!35 = metadata !{i32 11, i32 32, metadata !18, null}
109!36 = metadata !{i32 14, i32 16, metadata !8, null}
110!37 = metadata !{i32 14, i32 32, metadata !21, null}
111!38 = metadata !{i32 17, i32 16, metadata !9, null}
112!39 = metadata !{i32 17, i32 32, metadata !29, null}
David Blaikie8fb82242013-03-17 21:13:55 +0000113!40 = metadata !{metadata !1, metadata !6, metadata !7, metadata !8, metadata !9}
David Blaikiecabf54a2014-08-05 23:57:31 +0000114!41 = metadata !{metadata !25, metadata !26}
David Blaikie8fb82242013-03-17 21:13:55 +0000115!42 = metadata !{metadata !10, metadata !11}
116!43 = metadata !{metadata !13, metadata !14}
117!44 = metadata !{metadata !16, metadata !17}
118!45 = metadata !{metadata !19, metadata !20}
119!46 = metadata !{metadata !27, metadata !28}
120!47 = metadata !{metadata !"ss3.c", metadata !"/private/tmp"}
David Blaikie5e390e42014-02-04 01:23:52 +0000121!48 = metadata !{}
Manman Ren409558f2013-11-22 21:49:45 +0000122!49 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}