blob: bb7870764c508db39edb5c638775d3383fd9107c [file] [log] [blame]
Manman Ren620e9782013-07-29 20:18:19 +00001; RUN: llc < %s | FileCheck %s
Devang Pateldc9cbaa2011-08-03 01:25:46 +00002
3; Check debug info output for merged global.
4; DW_AT_location
5; DW_OP_addr
6; DW_OP_plus
7; .long __MergedGlobals
8; DW_OP_constu
9; offset
10
David Blaikiee5a2f702013-03-08 00:23:31 +000011;CHECK: .long Lset8
Devang Pateldc9cbaa2011-08-03 01:25:46 +000012;CHECK-NEXT: @ DW_AT_type
13;CHECK-NEXT: @ DW_AT_decl_file
14;CHECK-NEXT: @ DW_AT_decl_line
15;CHECK-NEXT: @ DW_AT_location
16;CHECK-NEXT: .byte 3
17;CHECK-NEXT: .long __MergedGlobals
18;CHECK-NEXT: .byte 16
19; 4 is byte offset of x2 in __MergedGobals
20;CHECK-NEXT: .byte 4
21;CHECK-NEXT: .byte 34
22
23
24target 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"
25target triple = "thumbv7-apple-macosx10.7.0"
26
27@x1 = internal unnamed_addr global i32 1, align 4
28@x2 = internal unnamed_addr global i32 2, align 4
29@x3 = internal unnamed_addr global i32 3, align 4
30@x4 = internal unnamed_addr global i32 4, align 4
31@x5 = global i32 0, align 4
32
33define i32 @get1(i32 %a) nounwind optsize ssp {
34 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !10), !dbg !30
35 %1 = load i32* @x1, align 4, !dbg !31
36 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !11), !dbg !31
37 store i32 %a, i32* @x1, align 4, !dbg !31
38 ret i32 %1, !dbg !31
39}
40
41define i32 @get2(i32 %a) nounwind optsize ssp {
42 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !13), !dbg !32
43 %1 = load i32* @x2, align 4, !dbg !33
44 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !14), !dbg !33
45 store i32 %a, i32* @x2, align 4, !dbg !33
46 ret i32 %1, !dbg !33
47}
48
49define i32 @get3(i32 %a) nounwind optsize ssp {
50 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !16), !dbg !34
51 %1 = load i32* @x3, align 4, !dbg !35
52 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !17), !dbg !35
53 store i32 %a, i32* @x3, align 4, !dbg !35
54 ret i32 %1, !dbg !35
55}
56
57define i32 @get4(i32 %a) nounwind optsize ssp {
58 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !19), !dbg !36
59 %1 = load i32* @x4, align 4, !dbg !37
60 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !20), !dbg !37
61 store i32 %a, i32* @x4, align 4, !dbg !37
62 ret i32 %1, !dbg !37
63}
64
65define i32 @get5(i32 %a) nounwind optsize ssp {
66 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !27), !dbg !38
67 %1 = load i32* @x5, align 4, !dbg !39
68 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !28), !dbg !39
69 store i32 %a, i32* @x5, align 4, !dbg !39
70 ret i32 %1, !dbg !39
71}
72
73declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
74
75!llvm.dbg.cu = !{!0}
Manman Ren409558f2013-11-22 21:49:45 +000076!llvm.module.flags = !{!49}
Devang Pateldc9cbaa2011-08-03 01:25:46 +000077
Manman Ren921382e2013-07-27 01:26:08 +000078!0 = metadata !{i32 786449, metadata !47, i32 12, metadata !"clang", i1 true, metadata !"", i32 0, metadata !48, metadata !48, metadata !40, metadata !41, metadata !41, null} ; [ DW_TAG_compile_unit ]
Manman Rendeeafd82013-09-06 21:03:58 +000079!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 +000080!2 = metadata !{i32 786473, metadata !47} ; [ DW_TAG_file_type ]
Manman Rendeeafd82013-09-06 21:03:58 +000081!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 +000082!4 = metadata !{metadata !5}
David Blaikie5692e722013-03-28 02:44:59 +000083!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 +000084!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]
85!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]
86!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]
87!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 +000088!10 = metadata !{i32 786689, metadata !1, metadata !"a", metadata !2, i32 16777221, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
89!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 +000090!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 +000091!13 = metadata !{i32 786689, metadata !6, metadata !"a", metadata !2, i32 16777224, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
92!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 +000093!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 +000094!16 = metadata !{i32 786689, metadata !7, metadata !"a", metadata !2, i32 16777227, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
95!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 +000096!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 +000097!19 = metadata !{i32 786689, metadata !8, metadata !"a", metadata !2, i32 16777230, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
98!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 +000099!21 = metadata !{i32 786443, metadata !47, metadata !8, i32 14, i32 19, i32 3} ; [ DW_TAG_lexical_block ]
David Blaikie47922fb2013-03-11 22:37:40 +0000100!22 = metadata !{i32 786484, i32 0, metadata !0, metadata !"x5", metadata !"x5", metadata !"", metadata !2, i32 16, metadata !5, i32 0, i32 1, i32* @x5, null} ; [ DW_TAG_variable ]
101!23 = metadata !{i32 786484, i32 0, metadata !0, metadata !"x4", metadata !"x4", metadata !"", metadata !2, i32 13, metadata !5, i32 1, i32 1, i32* @x4, null} ; [ DW_TAG_variable ]
102!24 = metadata !{i32 786484, i32 0, metadata !0, metadata !"x3", metadata !"x3", metadata !"", metadata !2, i32 10, metadata !5, i32 1, i32 1, i32* @x3, null} ; [ DW_TAG_variable ]
103!25 = 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 ]
104!26 = 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 ]
David Blaikiee5a2f702013-03-08 00:23:31 +0000105!27 = metadata !{i32 786689, metadata !9, metadata !"a", metadata !2, i32 16777233, metadata !5, i32 0, null} ; [ DW_TAG_arg_variable ]
106!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 +0000107!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 +0000108!30 = metadata !{i32 5, i32 16, metadata !1, null}
109!31 = metadata !{i32 5, i32 32, metadata !12, null}
110!32 = metadata !{i32 8, i32 14, metadata !6, null}
111!33 = metadata !{i32 8, i32 29, metadata !15, null}
112!34 = metadata !{i32 11, i32 16, metadata !7, null}
113!35 = metadata !{i32 11, i32 32, metadata !18, null}
114!36 = metadata !{i32 14, i32 16, metadata !8, null}
115!37 = metadata !{i32 14, i32 32, metadata !21, null}
116!38 = metadata !{i32 17, i32 16, metadata !9, null}
117!39 = metadata !{i32 17, i32 32, metadata !29, null}
David Blaikie8fb82242013-03-17 21:13:55 +0000118!40 = metadata !{metadata !1, metadata !6, metadata !7, metadata !8, metadata !9}
119!41 = metadata !{metadata !22, metadata !23, metadata !24, metadata !25, metadata !26}
120!42 = metadata !{metadata !10, metadata !11}
121!43 = metadata !{metadata !13, metadata !14}
122!44 = metadata !{metadata !16, metadata !17}
123!45 = metadata !{metadata !19, metadata !20}
124!46 = metadata !{metadata !27, metadata !28}
125!47 = metadata !{metadata !"ss3.c", metadata !"/private/tmp"}
Manman Ren921382e2013-07-27 01:26:08 +0000126!48 = metadata !{i32 0}
Manman Ren409558f2013-11-22 21:49:45 +0000127!49 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}