llvm.org GIT mirror llvm / baefea4
Move x86 specific tests into test/CodeGen/X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110372 91177308-0d34-0410-b5e6-96231b3b80d8 Devang Patel 10 years ago
10 changed file(s) with 417 addition(s) and 421 deletion(s). Raw diff Collapse all Expand all
0 ; RUN: llc -O0 < %s | FileCheck %s
1 ; Currently, dbg.declare generates a DEBUG_VALUE comment. Eventually it will
2 ; generate DWARF and this test will need to be modified or removed.
3
4
5 %struct.Pt = type { double, double }
6 %struct.Rect = type { %struct.Pt, %struct.Pt }
7
8 define double @foo(%struct.Rect* byval %my_r0) nounwind ssp {
9 entry:
10 ;CHECK: DEBUG_VALUE
11 %retval = alloca double ; [#uses=2]
12 %0 = alloca double ; [#uses=2]
13 %"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
14 call void @llvm.dbg.declare(metadata !{%struct.Rect* %my_r0}, metadata !0), !dbg !15
15 %1 = getelementptr inbounds %struct.Rect* %my_r0, i32 0, i32 0, !dbg !16 ; <%struct.Pt*> [#uses=1]
16 %2 = getelementptr inbounds %struct.Pt* %1, i32 0, i32 0, !dbg !16 ; [#uses=1]
17 %3 = load double* %2, align 8, !dbg !16 ; [#uses=1]
18 store double %3, double* %0, align 8, !dbg !16
19 %4 = load double* %0, align 8, !dbg !16 ; [#uses=1]
20 store double %4, double* %retval, align 8, !dbg !16
21 br label %return, !dbg !16
22
23 return: ; preds = %entry
24 %retval1 = load double* %retval, !dbg !16 ; [#uses=1]
25 ret double %retval1, !dbg !16
26 }
27
28 declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
29
30 !0 = metadata !{i32 524545, metadata !1, metadata !"my_r0", metadata !2, i32 11, metadata !7} ; [ DW_TAG_arg_variable ]
31 !1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 11, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false} ; [ DW_TAG_subprogram ]
32 !2 = metadata !{i32 524329, metadata !"b2.c", metadata !"/tmp/", metadata !3} ; [ DW_TAG_file_type ]
33 !3 = metadata !{i32 524305, i32 0, i32 1, metadata !"b2.c", metadata !"/tmp/", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
34 !4 = metadata !{i32 524309, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
35 !5 = metadata !{metadata !6, metadata !7}
36 !6 = metadata !{i32 524324, metadata !2, metadata !"double", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
37 !7 = metadata !{i32 524307, metadata !2, metadata !"Rect", metadata !2, i32 6, i64 256, i64 64, i64 0, i32 0, null, metadata !8, i32 0, null} ; [ DW_TAG_structure_type ]
38 !8 = metadata !{metadata !9, metadata !14}
39 !9 = metadata !{i32 524301, metadata !7, metadata !"P1", metadata !2, i32 7, i64 128, i64 64, i64 0, i32 0, metadata !10} ; [ DW_TAG_member ]
40 !10 = metadata !{i32 524307, metadata !2, metadata !"Pt", metadata !2, i32 1, i64 128, i64 64, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_structure_type ]
41 !11 = metadata !{metadata !12, metadata !13}
42 !12 = metadata !{i32 524301, metadata !10, metadata !"x", metadata !2, i32 2, i64 64, i64 64, i64 0, i32 0, metadata !6} ; [ DW_TAG_member ]
43 !13 = metadata !{i32 524301, metadata !10, metadata !"y", metadata !2, i32 3, i64 64, i64 64, i64 64, i32 0, metadata !6} ; [ DW_TAG_member ]
44 !14 = metadata !{i32 524301, metadata !7, metadata !"P2", metadata !2, i32 8, i64 128, i64 64, i64 128, i32 0, metadata !10} ; [ DW_TAG_member ]
45 !15 = metadata !{i32 11, i32 0, metadata !1, null}
46 !16 = metadata !{i32 12, i32 0, metadata !17, null}
47 !17 = metadata !{i32 524299, metadata !1, i32 11, i32 0} ; [ DW_TAG_lexical_block ]
0 ; RUN: llc -O1 < %s
1 ; ModuleID = 'pr6157.bc'
2 ; formerly crashed in SelectionDAGBuilder
3
4 %tart.reflect.ComplexType = type { double, double }
5
6 @.type.SwitchStmtTest = constant %tart.reflect.ComplexType { double 3.0, double 2.0 }
7
8 define i32 @"main(tart.core.String[])->int32"(i32 %args) {
9 entry:
10 tail call void @llvm.dbg.value(metadata !14, i64 0, metadata !8)
11 tail call void @"tart.reflect.ComplexType.create->tart.core.Object"(%tart.reflect.ComplexType* @.type.SwitchStmtTest) ; <%tart.core.Object*> [#uses=2]
12 ret i32 3
13 }
14
15 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
16 declare void @"tart.reflect.ComplexType.create->tart.core.Object"(%tart.reflect.ComplexType*) nounwind readnone
17
18 !0 = metadata !{i32 458769, i32 0, i32 1, metadata !"sm.c", metadata !"/Volumes/MacOS9/tests/", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
19 !1 = metadata !{i32 458790, metadata !0, metadata !"", metadata !0, i32 0, i64 192, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_const_type ]
20 !2 = metadata !{i32 458771, metadata !0, metadata !"C", metadata !0, i32 1, i64 192, i64 64, i64 0, i32 0, null, metadata !3, i32 0, null} ; [ DW_TAG_structure_type ]
21 !3 = metadata !{metadata !4, metadata !6, metadata !7}
22 !4 = metadata !{i32 458765, metadata !2, metadata !"x", metadata !0, i32 1, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ]
23 !5 = metadata !{i32 458788, metadata !0, metadata !"double", metadata !0, i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
24 !6 = metadata !{i32 458765, metadata !2, metadata !"y", metadata !0, i32 1, i64 64, i64 64, i64 64, i32 0, metadata !5} ; [ DW_TAG_member ]
25 !7 = metadata !{i32 458765, metadata !2, metadata !"z", metadata !0, i32 1, i64 64, i64 64, i64 128, i32 0, metadata !5} ; [ DW_TAG_member ]
26 !8 = metadata !{i32 459008, metadata !9, metadata !"t", metadata !0, i32 5, metadata !2} ; [ DW_TAG_auto_variable ]
27 !9 = metadata !{i32 458763, metadata !10} ; [ DW_TAG_lexical_block ]
28 !10 = metadata !{i32 458798, i32 0, metadata !0, metadata !"foo", metadata !"foo", metadata !"foo", metadata !0, i32 4, metadata !11, i1 false, i1 true, i32 0, i32 0, null} ; [ DW_TAG_subprogram ]
29 !11 = metadata !{i32 458773, metadata !0, metadata !"", metadata !0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !12, i32 0, null} ; [ DW_TAG_subroutine_type ]
30 !12 = metadata !{metadata !13}
31 !13 = metadata !{i32 458788, metadata !0, metadata !"int", metadata !0, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
32 !14 = metadata !{%tart.reflect.ComplexType* @.type.SwitchStmtTest}
0 ; RUN: llc -O2 < %s | grep debug_loc12
1 ; Test to check .debug_loc support. This test case emits 13 debug_loc entries.
2
3 %0 = type { double }
4
5 define hidden %0 @__divsc3(float %a, float %b, float %c, float %d) nounwind readnone {
6 entry:
7 tail call void @llvm.dbg.value(metadata !{float %a}, i64 0, metadata !0)
8 tail call void @llvm.dbg.value(metadata !{float %b}, i64 0, metadata !11)
9 tail call void @llvm.dbg.value(metadata !{float %c}, i64 0, metadata !12)
10 tail call void @llvm.dbg.value(metadata !{float %d}, i64 0, metadata !13)
11 %0 = tail call float @fabsf(float %c) nounwind readnone, !dbg !19 ; [#uses=1]
12 %1 = tail call float @fabsf(float %d) nounwind readnone, !dbg !19 ; [#uses=1]
13 %2 = fcmp olt float %0, %1, !dbg !19 ; [#uses=1]
14 br i1 %2, label %bb, label %bb1, !dbg !19
15
16 bb: ; preds = %entry
17 %3 = fdiv float %c, %d, !dbg !20 ; [#uses=3]
18 tail call void @llvm.dbg.value(metadata !{float %3}, i64 0, metadata !16), !dbg !20
19 %4 = fmul float %3, %c, !dbg !21 ; [#uses=1]
20 %5 = fadd float %4, %d, !dbg !21 ; [#uses=2]
21 tail call void @llvm.dbg.value(metadata !{float %5}, i64 0, metadata !14), !dbg !21
22 %6 = fmul float %3, %a, !dbg !22 ; [#uses=1]
23 %7 = fadd float %6, %b, !dbg !22 ; [#uses=1]
24 %8 = fdiv float %7, %5, !dbg !22 ; [#uses=1]
25 tail call void @llvm.dbg.value(metadata !{float %8}, i64 0, metadata !17), !dbg !22
26 %9 = fmul float %3, %b, !dbg !23 ; [#uses=1]
27 %10 = fsub float %9, %a, !dbg !23 ; [#uses=1]
28 %11 = fdiv float %10, %5, !dbg !23 ; [#uses=1]
29 tail call void @llvm.dbg.value(metadata !{float %11}, i64 0, metadata !18), !dbg !23
30 br label %bb2, !dbg !23
31
32 bb1: ; preds = %entry
33 %12 = fdiv float %d, %c, !dbg !24 ; [#uses=3]
34 tail call void @llvm.dbg.value(metadata !{float %12}, i64 0, metadata !16), !dbg !24
35 %13 = fmul float %12, %d, !dbg !25 ; [#uses=1]
36 %14 = fadd float %13, %c, !dbg !25 ; [#uses=2]
37 tail call void @llvm.dbg.value(metadata !{float %14}, i64 0, metadata !14), !dbg !25
38 %15 = fmul float %12, %b, !dbg !26 ; [#uses=1]
39 %16 = fadd float %15, %a, !dbg !26 ; [#uses=1]
40 %17 = fdiv float %16, %14, !dbg !26 ; [#uses=1]
41 tail call void @llvm.dbg.value(metadata !{float %17}, i64 0, metadata !17), !dbg !26
42 %18 = fmul float %12, %a, !dbg !27 ; [#uses=1]
43 %19 = fsub float %b, %18, !dbg !27 ; [#uses=1]
44 %20 = fdiv float %19, %14, !dbg !27 ; [#uses=1]
45 tail call void @llvm.dbg.value(metadata !{float %20}, i64 0, metadata !18), !dbg !27
46 br label %bb2, !dbg !27
47
48 bb2: ; preds = %bb1, %bb
49 %y.0 = phi float [ %11, %bb ], [ %20, %bb1 ] ; [#uses=5]
50 %x.0 = phi float [ %8, %bb ], [ %17, %bb1 ] ; [#uses=5]
51 %21 = fcmp uno float %x.0, 0.000000e+00, !dbg !28 ; [#uses=1]
52 %22 = fcmp uno float %y.0, 0.000000e+00, !dbg !28 ; [#uses=1]
53 %or.cond = and i1 %21, %22 ; [#uses=1]
54 br i1 %or.cond, label %bb4, label %bb46, !dbg !28
55
56 bb4: ; preds = %bb2
57 %23 = fcmp une float %c, 0.000000e+00, !dbg !29 ; [#uses=1]
58 %24 = fcmp une float %d, 0.000000e+00, !dbg !29 ; [#uses=1]
59 %or.cond93 = or i1 %23, %24 ; [#uses=1]
60 br i1 %or.cond93, label %bb9, label %bb6, !dbg !29
61
62 bb6: ; preds = %bb4
63 %25 = fcmp uno float %a, 0.000000e+00, !dbg !29 ; [#uses=1]
64 %26 = fcmp uno float %b, 0.000000e+00, !dbg !29 ; [#uses=1]
65 %or.cond94 = and i1 %25, %26 ; [#uses=1]
66 br i1 %or.cond94, label %bb9, label %bb8, !dbg !29
67
68 bb8: ; preds = %bb6
69 %27 = tail call float @copysignf(float 0x7FF0000000000000, float %c) nounwind readnone, !dbg !30 ; [#uses=2]
70 %28 = fmul float %27, %a, !dbg !30 ; [#uses=1]
71 tail call void @llvm.dbg.value(metadata !{float %28}, i64 0, metadata !17), !dbg !30
72 %29 = fmul float %27, %b, !dbg !31 ; [#uses=1]
73 tail call void @llvm.dbg.value(metadata !{float %29}, i64 0, metadata !18), !dbg !31
74 br label %bb46, !dbg !31
75
76 bb9: ; preds = %bb6, %bb4
77 %30 = fcmp ord float %a, 0.000000e+00 ; [#uses=1]
78 %31 = fsub float %a, %a, !dbg !32 ; [#uses=3]
79 %32 = fcmp uno float %31, 0.000000e+00 ; [#uses=1]
80 %33 = and i1 %30, %32, !dbg !32 ; [#uses=2]
81 br i1 %33, label %bb14, label %bb11, !dbg !32
82
83 bb11: ; preds = %bb9
84 %34 = fcmp ord float %b, 0.000000e+00 ; [#uses=1]
85 %35 = fsub float %b, %b, !dbg !32 ; [#uses=1]
86 %36 = fcmp uno float %35, 0.000000e+00 ; [#uses=1]
87 %37 = and i1 %34, %36, !dbg !32 ; [#uses=1]
88 br i1 %37, label %bb14, label %bb27, !dbg !32
89
90 bb14: ; preds = %bb11, %bb9
91 %38 = fsub float %c, %c, !dbg !32 ; [#uses=1]
92 %39 = fcmp ord float %38, 0.000000e+00 ; [#uses=1]
93 br i1 %39, label %bb15, label %bb27, !dbg !32
94
95 bb15: ; preds = %bb14
96 %40 = fsub float %d, %d, !dbg !32 ; [#uses=1]
97 %41 = fcmp ord float %40, 0.000000e+00 ; [#uses=1]
98 br i1 %41, label %bb16, label %bb27, !dbg !32
99
100 bb16: ; preds = %bb15
101 %iftmp.0.0 = select i1 %33, float 1.000000e+00, float 0.000000e+00 ; [#uses=1]
102 %42 = tail call float @copysignf(float %iftmp.0.0, float %a) nounwind readnone, !dbg !33 ; [#uses=2]
103 tail call void @llvm.dbg.value(metadata !{float %42}, i64 0, metadata !0), !dbg !33
104 %43 = fcmp ord float %b, 0.000000e+00 ; [#uses=1]
105 %44 = fsub float %b, %b, !dbg !34 ; [#uses=1]
106 %45 = fcmp uno float %44, 0.000000e+00 ; [#uses=1]
107 %46 = and i1 %43, %45, !dbg !34 ; [#uses=1]
108 %iftmp.1.0 = select i1 %46, float 1.000000e+00, float 0.000000e+00 ; [#uses=1]
109 %47 = tail call float @copysignf(float %iftmp.1.0, float %b) nounwind readnone, !dbg !34 ; [#uses=2]
110 tail call void @llvm.dbg.value(metadata !{float %47}, i64 0, metadata !11), !dbg !34
111 %48 = fmul float %42, %c, !dbg !35 ; [#uses=1]
112 %49 = fmul float %47, %d, !dbg !35 ; [#uses=1]
113 %50 = fadd float %48, %49, !dbg !35 ; [#uses=1]
114 %51 = fmul float %50, 0x7FF0000000000000, !dbg !35 ; [#uses=1]
115 tail call void @llvm.dbg.value(metadata !{float %51}, i64 0, metadata !17), !dbg !35
116 %52 = fmul float %47, %c, !dbg !36 ; [#uses=1]
117 %53 = fmul float %42, %d, !dbg !36 ; [#uses=1]
118 %54 = fsub float %52, %53, !dbg !36 ; [#uses=1]
119 %55 = fmul float %54, 0x7FF0000000000000, !dbg !36 ; [#uses=1]
120 tail call void @llvm.dbg.value(metadata !{float %55}, i64 0, metadata !18), !dbg !36
121 br label %bb46, !dbg !36
122
123 bb27: ; preds = %bb15, %bb14, %bb11
124 %56 = fcmp ord float %c, 0.000000e+00 ; [#uses=1]
125 %57 = fsub float %c, %c, !dbg !37 ; [#uses=1]
126 %58 = fcmp uno float %57, 0.000000e+00 ; [#uses=1]
127 %59 = and i1 %56, %58, !dbg !37 ; [#uses=2]
128 br i1 %59, label %bb33, label %bb30, !dbg !37
129
130 bb30: ; preds = %bb27
131 %60 = fcmp ord float %d, 0.000000e+00 ; [#uses=1]
132 %61 = fsub float %d, %d, !dbg !37 ; [#uses=1]
133 %62 = fcmp uno float %61, 0.000000e+00 ; [#uses=1]
134 %63 = and i1 %60, %62, !dbg !37 ; [#uses=1]
135 %64 = fcmp ord float %31, 0.000000e+00 ; [#uses=1]
136 %or.cond95 = and i1 %63, %64 ; [#uses=1]
137 br i1 %or.cond95, label %bb34, label %bb46, !dbg !37
138
139 bb33: ; preds = %bb27
140 %.old = fcmp ord float %31, 0.000000e+00 ; [#uses=1]
141 br i1 %.old, label %bb34, label %bb46, !dbg !37
142
143 bb34: ; preds = %bb33, %bb30
144 %65 = fsub float %b, %b, !dbg !37 ; [#uses=1]
145 %66 = fcmp ord float %65, 0.000000e+00 ; [#uses=1]
146 br i1 %66, label %bb35, label %bb46, !dbg !37
147
148 bb35: ; preds = %bb34
149 %iftmp.2.0 = select i1 %59, float 1.000000e+00, float 0.000000e+00 ; [#uses=1]
150 %67 = tail call float @copysignf(float %iftmp.2.0, float %c) nounwind readnone, !dbg !38 ; [#uses=2]
151 tail call void @llvm.dbg.value(metadata !{float %67}, i64 0, metadata !12), !dbg !38
152 %68 = fcmp ord float %d, 0.000000e+00 ; [#uses=1]
153 %69 = fsub float %d, %d, !dbg !39 ; [#uses=1]
154 %70 = fcmp uno float %69, 0.000000e+00 ; [#uses=1]
155 %71 = and i1 %68, %70, !dbg !39 ; [#uses=1]
156 %iftmp.3.0 = select i1 %71, float 1.000000e+00, float 0.000000e+00 ; [#uses=1]
157 %72 = tail call float @copysignf(float %iftmp.3.0, float %d) nounwind readnone, !dbg !39 ; [#uses=2]
158 tail call void @llvm.dbg.value(metadata !{float %72}, i64 0, metadata !13), !dbg !39
159 %73 = fmul float %67, %a, !dbg !40 ; [#uses=1]
160 %74 = fmul float %72, %b, !dbg !40 ; [#uses=1]
161 %75 = fadd float %73, %74, !dbg !40 ; [#uses=1]
162 %76 = fmul float %75, 0.000000e+00, !dbg !40 ; [#uses=1]
163 tail call void @llvm.dbg.value(metadata !{float %76}, i64 0, metadata !17), !dbg !40
164 %77 = fmul float %67, %b, !dbg !41 ; [#uses=1]
165 %78 = fmul float %72, %a, !dbg !41 ; [#uses=1]
166 %79 = fsub float %77, %78, !dbg !41 ; [#uses=1]
167 %80 = fmul float %79, 0.000000e+00, !dbg !41 ; [#uses=1]
168 tail call void @llvm.dbg.value(metadata !{float %80}, i64 0, metadata !18), !dbg !41
169 br label %bb46, !dbg !41
170
171 bb46: ; preds = %bb35, %bb34, %bb33, %bb30, %bb16, %bb8, %bb2
172 %y.1 = phi float [ %80, %bb35 ], [ %y.0, %bb34 ], [ %y.0, %bb33 ], [ %y.0, %bb30 ], [ %55, %bb16 ], [ %29, %bb8 ], [ %y.0, %bb2 ] ; [#uses=2]
173 %x.1 = phi float [ %76, %bb35 ], [ %x.0, %bb34 ], [ %x.0, %bb33 ], [ %x.0, %bb30 ], [ %51, %bb16 ], [ %28, %bb8 ], [ %x.0, %bb2 ] ; [#uses=1]
174 %81 = fmul float %y.1, 0.000000e+00, !dbg !42 ; [#uses=1]
175 %82 = fadd float %y.1, 0.000000e+00, !dbg !42 ; [#uses=1]
176 %tmpr = fadd float %x.1, %81, !dbg !42 ; [#uses=1]
177 %tmp89 = bitcast float %tmpr to i32 ; [#uses=1]
178 %tmp90 = zext i32 %tmp89 to i64 ; [#uses=1]
179 %tmp85 = bitcast float %82 to i32 ; [#uses=1]
180 %tmp86 = zext i32 %tmp85 to i64 ; [#uses=1]
181 %tmp87 = shl i64 %tmp86, 32 ; [#uses=1]
182 %ins = or i64 %tmp90, %tmp87 ; [#uses=1]
183 %tmp84 = bitcast i64 %ins to double ; [#uses=1]
184 %mrv75 = insertvalue %0 undef, double %tmp84, 0, !dbg !42 ; <%0> [#uses=1]
185 ret %0 %mrv75, !dbg !42
186 }
187
188 declare float @fabsf(float)
189
190 declare float @copysignf(float, float) nounwind readnone
191
192 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
193
194 !llvm.dbg.lv = !{!0, !11, !12, !13, !14, !16, !17, !18}
195
196 !0 = metadata !{i32 524545, metadata !1, metadata !"a", metadata !2, i32 1921, metadata !9} ; [ DW_TAG_arg_variable ]
197 !1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"__divsc3", metadata !"__divsc3", metadata !"__divsc3", metadata !2, i32 1922, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
198 !2 = metadata !{i32 524329, metadata !"libgcc2.c", metadata !"/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc", metadata !3} ; [ DW_TAG_file_type ]
199 !3 = metadata !{i32 524305, i32 0, i32 1, metadata !"libgcc2.c", metadata !"/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 true, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
200 !4 = metadata !{i32 524309, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
201 !5 = metadata !{metadata !6, metadata !9, metadata !9, metadata !9, metadata !9}
202 !6 = metadata !{i32 524310, metadata !7, metadata !"SCtype", metadata !7, i32 170, i64 0, i64 0, i64 0, i32 0, metadata !8} ; [ DW_TAG_typedef ]
203 !7 = metadata !{i32 524329, metadata !"libgcc2.h", metadata !"/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc", metadata !3} ; [ DW_TAG_file_type ]
204 !8 = metadata !{i32 524324, metadata !2, metadata !"complex float", metadata !2, i32 0, i64 64, i64 32, i64 0, i32 0, i32 3} ; [ DW_TAG_base_type ]
205 !9 = metadata !{i32 524310, metadata !7, metadata !"SFtype", metadata !7, i32 167, i64 0, i64 0, i64 0, i32 0, metadata !10} ; [ DW_TAG_typedef ]
206 !10 = metadata !{i32 524324, metadata !2, metadata !"float", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
207 !11 = metadata !{i32 524545, metadata !1, metadata !"b", metadata !2, i32 1921, metadata !9} ; [ DW_TAG_arg_variable ]
208 !12 = metadata !{i32 524545, metadata !1, metadata !"c", metadata !2, i32 1921, metadata !9} ; [ DW_TAG_arg_variable ]
209 !13 = metadata !{i32 524545, metadata !1, metadata !"d", metadata !2, i32 1921, metadata !9} ; [ DW_TAG_arg_variable ]
210 !14 = metadata !{i32 524544, metadata !15, metadata !"denom", metadata !2, i32 1923, metadata !9} ; [ DW_TAG_auto_variable ]
211 !15 = metadata !{i32 524299, metadata !1, i32 1922, i32 0} ; [ DW_TAG_lexical_block ]
212 !16 = metadata !{i32 524544, metadata !15, metadata !"ratio", metadata !2, i32 1923, metadata !9} ; [ DW_TAG_auto_variable ]
213 !17 = metadata !{i32 524544, metadata !15, metadata !"x", metadata !2, i32 1923, metadata !9} ; [ DW_TAG_auto_variable ]
214 !18 = metadata !{i32 524544, metadata !15, metadata !"y", metadata !2, i32 1923, metadata !9} ; [ DW_TAG_auto_variable ]
215 !19 = metadata !{i32 1929, i32 0, metadata !15, null}
216 !20 = metadata !{i32 1931, i32 0, metadata !15, null}
217 !21 = metadata !{i32 1932, i32 0, metadata !15, null}
218 !22 = metadata !{i32 1933, i32 0, metadata !15, null}
219 !23 = metadata !{i32 1934, i32 0, metadata !15, null}
220 !24 = metadata !{i32 1938, i32 0, metadata !15, null}
221 !25 = metadata !{i32 1939, i32 0, metadata !15, null}
222 !26 = metadata !{i32 1940, i32 0, metadata !15, null}
223 !27 = metadata !{i32 1941, i32 0, metadata !15, null}
224 !28 = metadata !{i32 1946, i32 0, metadata !15, null}
225 !29 = metadata !{i32 1948, i32 0, metadata !15, null}
226 !30 = metadata !{i32 1950, i32 0, metadata !15, null}
227 !31 = metadata !{i32 1951, i32 0, metadata !15, null}
228 !32 = metadata !{i32 1953, i32 0, metadata !15, null}
229 !33 = metadata !{i32 1955, i32 0, metadata !15, null}
230 !34 = metadata !{i32 1956, i32 0, metadata !15, null}
231 !35 = metadata !{i32 1957, i32 0, metadata !15, null}
232 !36 = metadata !{i32 1958, i32 0, metadata !15, null}
233 !37 = metadata !{i32 1960, i32 0, metadata !15, null}
234 !38 = metadata !{i32 1962, i32 0, metadata !15, null}
235 !39 = metadata !{i32 1963, i32 0, metadata !15, null}
236 !40 = metadata !{i32 1964, i32 0, metadata !15, null}
237 !41 = metadata !{i32 1965, i32 0, metadata !15, null}
238 !42 = metadata !{i32 1969, i32 0, metadata !15, null}
0 ; RUN: llc -mtriple=x86_64-apple-darwin < %s | FileCheck %s
1 ; Test to check separate label for inlined function argument.
2
3 define i32 @foo(i32 %y) nounwind optsize ssp {
4 entry:
5 tail call void @llvm.dbg.value(metadata !{i32 %y}, i64 0, metadata !0)
6 %0 = tail call i32 (...)* @zoo(i32 %y) nounwind, !dbg !9 ; [#uses=1]
7 ret i32 %0, !dbg !9
8 }
9
10 declare i32 @zoo(...)
11
12 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
13
14 define i32 @bar(i32 %x) nounwind optsize ssp {
15 entry:
16 tail call void @llvm.dbg.value(metadata !{i32 %x}, i64 0, metadata !7)
17 tail call void @llvm.dbg.value(metadata !11, i64 0, metadata !0) nounwind
18 %0 = tail call i32 (...)* @zoo(i32 1) nounwind, !dbg !12 ; [#uses=1]
19 %1 = add nsw i32 %0, %x, !dbg !13 ; [#uses=1]
20 ret i32 %1, !dbg !13
21 }
22
23 !llvm.dbg.lv = !{!0, !7}
24
25 !0 = metadata !{i32 524545, metadata !1, metadata !"y", metadata !2, i32 2, metadata !6} ; [ DW_TAG_arg_variable ]
26 !1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 2, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
27 !2 = metadata !{i32 524329, metadata !"f.c", metadata !"/tmp", metadata !3} ; [ DW_TAG_file_type ]
28 !3 = metadata !{i32 524305, i32 0, i32 1, metadata !"f.c", metadata !"/tmp", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 true, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
29 !4 = metadata !{i32 524309, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
30 !5 = metadata !{metadata !6, metadata !6}
31 !6 = metadata !{i32 524324, metadata !2, metadata !"int", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
32 !7 = metadata !{i32 524545, metadata !8, metadata !"x", metadata !2, i32 6, metadata !6} ; [ DW_TAG_arg_variable ]
33 !8 = metadata !{i32 524334, i32 0, metadata !2, metadata !"bar", metadata !"bar", metadata !"bar", metadata !2, i32 6, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
34 !9 = metadata !{i32 3, i32 0, metadata !10, null}
35 !10 = metadata !{i32 524299, metadata !1, i32 2, i32 0} ; [ DW_TAG_lexical_block ]
36 !11 = metadata !{i32 1}
37 !12 = metadata !{i32 3, i32 0, metadata !10, metadata !13}
38 !13 = metadata !{i32 7, i32 0, metadata !14, null}
39 !14 = metadata !{i32 524299, metadata !8, i32 6, i32 0} ; [ DW_TAG_lexical_block ]
40
41 ;CHECK: DEBUG_VALUE: bar:x <- EBX+0
42 ;CHECK-NEXT:Ltmp
43 ;CHECK-NEXT: DEBUG_VALUE: foo:y <- 1+0
0 ; RUN: llc -O2 < %s | FileCheck %s
1 ; Test to check that unused argument 'this' is not undefined in debug info.
2
3 target triple = "x86_64-apple-darwin10.2"
4 %struct.foo = type { i32 }
5
6 @llvm.used = appending global [1 x i8*] [i8* bitcast (i32 (%struct.foo*, i32)* @_ZN3foo3bazEi to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
7
8 define i32 @_ZN3foo3bazEi(%struct.foo* nocapture %this, i32 %x) nounwind readnone optsize noinline ssp align 2 {
9 ;CHECK: DEBUG_VALUE: baz:this <- RDI+0
10 entry:
11 tail call void @llvm.dbg.value(metadata !{%struct.foo* %this}, i64 0, metadata !15)
12 tail call void @llvm.dbg.value(metadata !{i32 %x}, i64 0, metadata !16)
13 %0 = mul nsw i32 %x, 7, !dbg !29 ; [#uses=1]
14 %1 = add nsw i32 %0, 1, !dbg !29 ; [#uses=1]
15 ret i32 %1, !dbg !29
16 }
17
18 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
19
20 !llvm.dbg.lv = !{!0, !14, !15, !16, !17, !24, !25, !28}
21
22 !0 = metadata !{i32 524545, metadata !1, metadata !"this", metadata !3, i32 11, metadata !12} ; [ DW_TAG_arg_variable ]
23 !1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"bar", metadata !"bar", metadata !"_ZN3foo3barEi", metadata !3, i32 11, metadata !9, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
24 !2 = metadata !{i32 524307, metadata !3, metadata !"foo", metadata !3, i32 3, i64 32, i64 32, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_structure_type ]
25 !3 = metadata !{i32 524329, metadata !"foo.cp", metadata !"/tmp/", metadata !4} ; [ DW_TAG_file_type ]
26 !4 = metadata !{i32 524305, i32 0, i32 4, metadata !"foo.cp", metadata !"/tmp/", metadata !"4.2.1 LLVM build", i1 true, i1 true, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
27 !5 = metadata !{metadata !6, metadata !1, metadata !8}
28 !6 = metadata !{i32 524301, metadata !2, metadata !"y", metadata !3, i32 8, i64 32, i64 32, i64 0, i32 0, metadata !7} ; [ DW_TAG_member ]
29 !7 = metadata !{i32 524324, metadata !3, metadata !"int", metadata !3, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
30 !8 = metadata !{i32 524334, i32 0, metadata !2, metadata !"baz", metadata !"baz", metadata !"_ZN3foo3bazEi", metadata !3, i32 15, metadata !9, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
31 !9 = metadata !{i32 524309, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !10, i32 0, null} ; [ DW_TAG_subroutine_type ]
32 !10 = metadata !{metadata !7, metadata !11, metadata !7}
33 !11 = metadata !{i32 524303, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !2} ; [ DW_TAG_pointer_type ]
34 !12 = metadata !{i32 524326, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !13} ; [ DW_TAG_const_type ]
35 !13 = metadata !{i32 524303, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_pointer_type ]
36 !14 = metadata !{i32 524545, metadata !1, metadata !"x", metadata !3, i32 11, metadata !7} ; [ DW_TAG_arg_variable ]
37 !15 = metadata !{i32 524545, metadata !8, metadata !"this", metadata !3, i32 15, metadata !12} ; [ DW_TAG_arg_variable ]
38 !16 = metadata !{i32 524545, metadata !8, metadata !"x", metadata !3, i32 15, metadata !7} ; [ DW_TAG_arg_variable ]
39 !17 = metadata !{i32 524545, metadata !18, metadata !"argc", metadata !3, i32 19, metadata !7} ; [ DW_TAG_arg_variable ]
40 !18 = metadata !{i32 524334, i32 0, metadata !3, metadata !"main", metadata !"main", metadata !"main", metadata !3, i32 19, metadata !19, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
41 !19 = metadata !{i32 524309, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !20, i32 0, null} ; [ DW_TAG_subroutine_type ]
42 !20 = metadata !{metadata !7, metadata !7, metadata !21}
43 !21 = metadata !{i32 524303, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !22} ; [ DW_TAG_pointer_type ]
44 !22 = metadata !{i32 524303, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !23} ; [ DW_TAG_pointer_type ]
45 !23 = metadata !{i32 524324, metadata !3, metadata !"char", metadata !3, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
46 !24 = metadata !{i32 524545, metadata !18, metadata !"argv", metadata !3, i32 19, metadata !21} ; [ DW_TAG_arg_variable ]
47 !25 = metadata !{i32 524544, metadata !26, metadata !"a", metadata !3, i32 20, metadata !2} ; [ DW_TAG_auto_variable ]
48 !26 = metadata !{i32 524299, metadata !27, i32 19, i32 0} ; [ DW_TAG_lexical_block ]
49 !27 = metadata !{i32 524299, metadata !18, i32 19, i32 0} ; [ DW_TAG_lexical_block ]
50 !28 = metadata !{i32 524544, metadata !26, metadata !"b", metadata !3, i32 21, metadata !7} ; [ DW_TAG_auto_variable ]
51 !29 = metadata !{i32 16, i32 0, metadata !30, null}
52 !30 = metadata !{i32 524299, metadata !8, i32 15, i32 0} ; [ DW_TAG_lexical_block ]
+0
-51
test/DebugInfo/2010-01-18-DbgValue.ll less more
None ; RUN: llc -O0 < %s | FileCheck %s
1 ; ModuleID = 'try.c'
2 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
3 target triple = "i386-apple-darwin9.8"
4 ; Currently, dbg.declare generates a DEBUG_VALUE comment. Eventually it will
5 ; generate DWARF and this test will need to be modified or removed.
6
7
8 %struct.Pt = type { double, double }
9 %struct.Rect = type { %struct.Pt, %struct.Pt }
10
11 define double @foo(%struct.Rect* byval %my_r0) nounwind ssp {
12 entry:
13 ;CHECK: DEBUG_VALUE
14 %retval = alloca double ; [#uses=2]
15 %0 = alloca double ; [#uses=2]
16 %"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
17 call void @llvm.dbg.declare(metadata !{%struct.Rect* %my_r0}, metadata !0), !dbg !15
18 %1 = getelementptr inbounds %struct.Rect* %my_r0, i32 0, i32 0, !dbg !16 ; <%struct.Pt*> [#uses=1]
19 %2 = getelementptr inbounds %struct.Pt* %1, i32 0, i32 0, !dbg !16 ; [#uses=1]
20 %3 = load double* %2, align 8, !dbg !16 ; [#uses=1]
21 store double %3, double* %0, align 8, !dbg !16
22 %4 = load double* %0, align 8, !dbg !16 ; [#uses=1]
23 store double %4, double* %retval, align 8, !dbg !16
24 br label %return, !dbg !16
25
26 return: ; preds = %entry
27 %retval1 = load double* %retval, !dbg !16 ; [#uses=1]
28 ret double %retval1, !dbg !16
29 }
30
31 declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
32
33 !0 = metadata !{i32 524545, metadata !1, metadata !"my_r0", metadata !2, i32 11, metadata !7} ; [ DW_TAG_arg_variable ]
34 !1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 11, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false} ; [ DW_TAG_subprogram ]
35 !2 = metadata !{i32 524329, metadata !"b2.c", metadata !"/tmp/", metadata !3} ; [ DW_TAG_file_type ]
36 !3 = metadata !{i32 524305, i32 0, i32 1, metadata !"b2.c", metadata !"/tmp/", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
37 !4 = metadata !{i32 524309, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
38 !5 = metadata !{metadata !6, metadata !7}
39 !6 = metadata !{i32 524324, metadata !2, metadata !"double", metadata !2, i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
40 !7 = metadata !{i32 524307, metadata !2, metadata !"Rect", metadata !2, i32 6, i64 256, i64 64, i64 0, i32 0, null, metadata !8, i32 0, null} ; [ DW_TAG_structure_type ]
41 !8 = metadata !{metadata !9, metadata !14}
42 !9 = metadata !{i32 524301, metadata !7, metadata !"P1", metadata !2, i32 7, i64 128, i64 64, i64 0, i32 0, metadata !10} ; [ DW_TAG_member ]
43 !10 = metadata !{i32 524307, metadata !2, metadata !"Pt", metadata !2, i32 1, i64 128, i64 64, i64 0, i32 0, null, metadata !11, i32 0, null} ; [ DW_TAG_structure_type ]
44 !11 = metadata !{metadata !12, metadata !13}
45 !12 = metadata !{i32 524301, metadata !10, metadata !"x", metadata !2, i32 2, i64 64, i64 64, i64 0, i32 0, metadata !6} ; [ DW_TAG_member ]
46 !13 = metadata !{i32 524301, metadata !10, metadata !"y", metadata !2, i32 3, i64 64, i64 64, i64 64, i32 0, metadata !6} ; [ DW_TAG_member ]
47 !14 = metadata !{i32 524301, metadata !7, metadata !"P2", metadata !2, i32 8, i64 128, i64 64, i64 128, i32 0, metadata !10} ; [ DW_TAG_member ]
48 !15 = metadata !{i32 11, i32 0, metadata !1, null}
49 !16 = metadata !{i32 12, i32 0, metadata !17, null}
50 !17 = metadata !{i32 524299, metadata !1, i32 11, i32 0} ; [ DW_TAG_lexical_block ]
+0
-34
test/DebugInfo/2010-02-01-DbgValueCrash.ll less more
None ; RUN: llc -O1 < %s
1 ; ModuleID = 'pr6157.bc'
2 target triple = "x86_64-unknown-linux-gnu"
3 ; formerly crashed in SelectionDAGBuilder
4
5 %tart.reflect.ComplexType = type { double, double }
6
7 @.type.SwitchStmtTest = constant %tart.reflect.ComplexType { double 3.0, double 2.0 }
8
9 define i32 @"main(tart.core.String[])->int32"(i32 %args) {
10 entry:
11 tail call void @llvm.dbg.value(metadata !14, i64 0, metadata !8)
12 tail call void @"tart.reflect.ComplexType.create->tart.core.Object"(%tart.reflect.ComplexType* @.type.SwitchStmtTest) ; <%tart.core.Object*> [#uses=2]
13 ret i32 3
14 }
15
16 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
17 declare void @"tart.reflect.ComplexType.create->tart.core.Object"(%tart.reflect.ComplexType*) nounwind readnone
18
19 !0 = metadata !{i32 458769, i32 0, i32 1, metadata !"sm.c", metadata !"/Volumes/MacOS9/tests/", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
20 !1 = metadata !{i32 458790, metadata !0, metadata !"", metadata !0, i32 0, i64 192, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_const_type ]
21 !2 = metadata !{i32 458771, metadata !0, metadata !"C", metadata !0, i32 1, i64 192, i64 64, i64 0, i32 0, null, metadata !3, i32 0, null} ; [ DW_TAG_structure_type ]
22 !3 = metadata !{metadata !4, metadata !6, metadata !7}
23 !4 = metadata !{i32 458765, metadata !2, metadata !"x", metadata !0, i32 1, i64 64, i64 64, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ]
24 !5 = metadata !{i32 458788, metadata !0, metadata !"double", metadata !0, i32 0, i64 64, i64 64, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
25 !6 = metadata !{i32 458765, metadata !2, metadata !"y", metadata !0, i32 1, i64 64, i64 64, i64 64, i32 0, metadata !5} ; [ DW_TAG_member ]
26 !7 = metadata !{i32 458765, metadata !2, metadata !"z", metadata !0, i32 1, i64 64, i64 64, i64 128, i32 0, metadata !5} ; [ DW_TAG_member ]
27 !8 = metadata !{i32 459008, metadata !9, metadata !"t", metadata !0, i32 5, metadata !2} ; [ DW_TAG_auto_variable ]
28 !9 = metadata !{i32 458763, metadata !10} ; [ DW_TAG_lexical_block ]
29 !10 = metadata !{i32 458798, i32 0, metadata !0, metadata !"foo", metadata !"foo", metadata !"foo", metadata !0, i32 4, metadata !11, i1 false, i1 true, i32 0, i32 0, null} ; [ DW_TAG_subprogram ]
30 !11 = metadata !{i32 458773, metadata !0, metadata !"", metadata !0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !12, i32 0, null} ; [ DW_TAG_subroutine_type ]
31 !12 = metadata !{metadata !13}
32 !13 = metadata !{i32 458788, metadata !0, metadata !"int", metadata !0, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
33 !14 = metadata !{%tart.reflect.ComplexType* @.type.SwitchStmtTest}
+0
-239
test/DebugInfo/2010-05-25-DotDebugLoc.ll less more
None ; RUN: llc -O2 < %s -mtriple=x86_64-apple-darwin | grep debug_loc12
1 ; Test to check .debug_loc support. This test case emits 13 debug_loc entries.
2
3 %0 = type { double }
4
5 define hidden %0 @__divsc3(float %a, float %b, float %c, float %d) nounwind readnone {
6 entry:
7 tail call void @llvm.dbg.value(metadata !{float %a}, i64 0, metadata !0)
8 tail call void @llvm.dbg.value(metadata !{float %b}, i64 0, metadata !11)
9 tail call void @llvm.dbg.value(metadata !{float %c}, i64 0, metadata !12)
10 tail call void @llvm.dbg.value(metadata !{float %d}, i64 0, metadata !13)
11 %0 = tail call float @fabsf(float %c) nounwind readnone, !dbg !19 ; [#uses=1]
12 %1 = tail call float @fabsf(float %d) nounwind readnone, !dbg !19 ; [#uses=1]
13 %2 = fcmp olt float %0, %1, !dbg !19 ; [#uses=1]
14 br i1 %2, label %bb, label %bb1, !dbg !19
15
16 bb: ; preds = %entry
17 %3 = fdiv float %c, %d, !dbg !20 ; [#uses=3]
18 tail call void @llvm.dbg.value(metadata !{float %3}, i64 0, metadata !16), !dbg !20
19 %4 = fmul float %3, %c, !dbg !21 ; [#uses=1]
20 %5 = fadd float %4, %d, !dbg !21 ; [#uses=2]
21 tail call void @llvm.dbg.value(metadata !{float %5}, i64 0, metadata !14), !dbg !21
22 %6 = fmul float %3, %a, !dbg !22 ; [#uses=1]
23 %7 = fadd float %6, %b, !dbg !22 ; [#uses=1]
24 %8 = fdiv float %7, %5, !dbg !22 ; [#uses=1]
25 tail call void @llvm.dbg.value(metadata !{float %8}, i64 0, metadata !17), !dbg !22
26 %9 = fmul float %3, %b, !dbg !23 ; [#uses=1]
27 %10 = fsub float %9, %a, !dbg !23 ; [#uses=1]
28 %11 = fdiv float %10, %5, !dbg !23 ; [#uses=1]
29 tail call void @llvm.dbg.value(metadata !{float %11}, i64 0, metadata !18), !dbg !23
30 br label %bb2, !dbg !23
31
32 bb1: ; preds = %entry
33 %12 = fdiv float %d, %c, !dbg !24 ; [#uses=3]
34 tail call void @llvm.dbg.value(metadata !{float %12}, i64 0, metadata !16), !dbg !24
35 %13 = fmul float %12, %d, !dbg !25 ; [#uses=1]
36 %14 = fadd float %13, %c, !dbg !25 ; [#uses=2]
37 tail call void @llvm.dbg.value(metadata !{float %14}, i64 0, metadata !14), !dbg !25
38 %15 = fmul float %12, %b, !dbg !26 ; [#uses=1]
39 %16 = fadd float %15, %a, !dbg !26 ; [#uses=1]
40 %17 = fdiv float %16, %14, !dbg !26 ; [#uses=1]
41 tail call void @llvm.dbg.value(metadata !{float %17}, i64 0, metadata !17), !dbg !26
42 %18 = fmul float %12, %a, !dbg !27 ; [#uses=1]
43 %19 = fsub float %b, %18, !dbg !27 ; [#uses=1]
44 %20 = fdiv float %19, %14, !dbg !27 ; [#uses=1]
45 tail call void @llvm.dbg.value(metadata !{float %20}, i64 0, metadata !18), !dbg !27
46 br label %bb2, !dbg !27
47
48 bb2: ; preds = %bb1, %bb
49 %y.0 = phi float [ %11, %bb ], [ %20, %bb1 ] ; [#uses=5]
50 %x.0 = phi float [ %8, %bb ], [ %17, %bb1 ] ; [#uses=5]
51 %21 = fcmp uno float %x.0, 0.000000e+00, !dbg !28 ; [#uses=1]
52 %22 = fcmp uno float %y.0, 0.000000e+00, !dbg !28 ; [#uses=1]
53 %or.cond = and i1 %21, %22 ; [#uses=1]
54 br i1 %or.cond, label %bb4, label %bb46, !dbg !28
55
56 bb4: ; preds = %bb2
57 %23 = fcmp une float %c, 0.000000e+00, !dbg !29 ; [#uses=1]
58 %24 = fcmp une float %d, 0.000000e+00, !dbg !29 ; [#uses=1]
59 %or.cond93 = or i1 %23, %24 ; [#uses=1]
60 br i1 %or.cond93, label %bb9, label %bb6, !dbg !29
61
62 bb6: ; preds = %bb4
63 %25 = fcmp uno float %a, 0.000000e+00, !dbg !29 ; [#uses=1]
64 %26 = fcmp uno float %b, 0.000000e+00, !dbg !29 ; [#uses=1]
65 %or.cond94 = and i1 %25, %26 ; [#uses=1]
66 br i1 %or.cond94, label %bb9, label %bb8, !dbg !29
67
68 bb8: ; preds = %bb6
69 %27 = tail call float @copysignf(float 0x7FF0000000000000, float %c) nounwind readnone, !dbg !30 ; [#uses=2]
70 %28 = fmul float %27, %a, !dbg !30 ; [#uses=1]
71 tail call void @llvm.dbg.value(metadata !{float %28}, i64 0, metadata !17), !dbg !30
72 %29 = fmul float %27, %b, !dbg !31 ; [#uses=1]
73 tail call void @llvm.dbg.value(metadata !{float %29}, i64 0, metadata !18), !dbg !31
74 br label %bb46, !dbg !31
75
76 bb9: ; preds = %bb6, %bb4
77 %30 = fcmp ord float %a, 0.000000e+00 ; [#uses=1]
78 %31 = fsub float %a, %a, !dbg !32 ; [#uses=3]
79 %32 = fcmp uno float %31, 0.000000e+00 ; [#uses=1]
80 %33 = and i1 %30, %32, !dbg !32 ; [#uses=2]
81 br i1 %33, label %bb14, label %bb11, !dbg !32
82
83 bb11: ; preds = %bb9
84 %34 = fcmp ord float %b, 0.000000e+00 ; [#uses=1]
85 %35 = fsub float %b, %b, !dbg !32 ; [#uses=1]
86 %36 = fcmp uno float %35, 0.000000e+00 ; [#uses=1]
87 %37 = and i1 %34, %36, !dbg !32 ; [#uses=1]
88 br i1 %37, label %bb14, label %bb27, !dbg !32
89
90 bb14: ; preds = %bb11, %bb9
91 %38 = fsub float %c, %c, !dbg !32 ; [#uses=1]
92 %39 = fcmp ord float %38, 0.000000e+00 ; [#uses=1]
93 br i1 %39, label %bb15, label %bb27, !dbg !32
94
95 bb15: ; preds = %bb14
96 %40 = fsub float %d, %d, !dbg !32 ; [#uses=1]
97 %41 = fcmp ord float %40, 0.000000e+00 ; [#uses=1]
98 br i1 %41, label %bb16, label %bb27, !dbg !32
99
100 bb16: ; preds = %bb15
101 %iftmp.0.0 = select i1 %33, float 1.000000e+00, float 0.000000e+00 ; [#uses=1]
102 %42 = tail call float @copysignf(float %iftmp.0.0, float %a) nounwind readnone, !dbg !33 ; [#uses=2]
103 tail call void @llvm.dbg.value(metadata !{float %42}, i64 0, metadata !0), !dbg !33
104 %43 = fcmp ord float %b, 0.000000e+00 ; [#uses=1]
105 %44 = fsub float %b, %b, !dbg !34 ; [#uses=1]
106 %45 = fcmp uno float %44, 0.000000e+00 ; [#uses=1]
107 %46 = and i1 %43, %45, !dbg !34 ; [#uses=1]
108 %iftmp.1.0 = select i1 %46, float 1.000000e+00, float 0.000000e+00 ; [#uses=1]
109 %47 = tail call float @copysignf(float %iftmp.1.0, float %b) nounwind readnone, !dbg !34 ; [#uses=2]
110 tail call void @llvm.dbg.value(metadata !{float %47}, i64 0, metadata !11), !dbg !34
111 %48 = fmul float %42, %c, !dbg !35 ; [#uses=1]
112 %49 = fmul float %47, %d, !dbg !35 ; [#uses=1]
113 %50 = fadd float %48, %49, !dbg !35 ; [#uses=1]
114 %51 = fmul float %50, 0x7FF0000000000000, !dbg !35 ; [#uses=1]
115 tail call void @llvm.dbg.value(metadata !{float %51}, i64 0, metadata !17), !dbg !35
116 %52 = fmul float %47, %c, !dbg !36 ; [#uses=1]
117 %53 = fmul float %42, %d, !dbg !36 ; [#uses=1]
118 %54 = fsub float %52, %53, !dbg !36 ; [#uses=1]
119 %55 = fmul float %54, 0x7FF0000000000000, !dbg !36 ; [#uses=1]
120 tail call void @llvm.dbg.value(metadata !{float %55}, i64 0, metadata !18), !dbg !36
121 br label %bb46, !dbg !36
122
123 bb27: ; preds = %bb15, %bb14, %bb11
124 %56 = fcmp ord float %c, 0.000000e+00 ; [#uses=1]
125 %57 = fsub float %c, %c, !dbg !37 ; [#uses=1]
126 %58 = fcmp uno float %57, 0.000000e+00 ; [#uses=1]
127 %59 = and i1 %56, %58, !dbg !37 ; [#uses=2]
128 br i1 %59, label %bb33, label %bb30, !dbg !37
129
130 bb30: ; preds = %bb27
131 %60 = fcmp ord float %d, 0.000000e+00 ; [#uses=1]
132 %61 = fsub float %d, %d, !dbg !37 ; [#uses=1]
133 %62 = fcmp uno float %61, 0.000000e+00 ; [#uses=1]
134 %63 = and i1 %60, %62, !dbg !37 ; [#uses=1]
135 %64 = fcmp ord float %31, 0.000000e+00 ; [#uses=1]
136 %or.cond95 = and i1 %63, %64 ; [#uses=1]
137 br i1 %or.cond95, label %bb34, label %bb46, !dbg !37
138
139 bb33: ; preds = %bb27
140 %.old = fcmp ord float %31, 0.000000e+00 ; [#uses=1]
141 br i1 %.old, label %bb34, label %bb46, !dbg !37
142
143 bb34: ; preds = %bb33, %bb30
144 %65 = fsub float %b, %b, !dbg !37 ; [#uses=1]
145 %66 = fcmp ord float %65, 0.000000e+00 ; [#uses=1]
146 br i1 %66, label %bb35, label %bb46, !dbg !37
147
148 bb35: ; preds = %bb34
149 %iftmp.2.0 = select i1 %59, float 1.000000e+00, float 0.000000e+00 ; [#uses=1]
150 %67 = tail call float @copysignf(float %iftmp.2.0, float %c) nounwind readnone, !dbg !38 ; [#uses=2]
151 tail call void @llvm.dbg.value(metadata !{float %67}, i64 0, metadata !12), !dbg !38
152 %68 = fcmp ord float %d, 0.000000e+00 ; [#uses=1]
153 %69 = fsub float %d, %d, !dbg !39 ; [#uses=1]
154 %70 = fcmp uno float %69, 0.000000e+00 ; [#uses=1]
155 %71 = and i1 %68, %70, !dbg !39 ; [#uses=1]
156 %iftmp.3.0 = select i1 %71, float 1.000000e+00, float 0.000000e+00 ; [#uses=1]
157 %72 = tail call float @copysignf(float %iftmp.3.0, float %d) nounwind readnone, !dbg !39 ; [#uses=2]
158 tail call void @llvm.dbg.value(metadata !{float %72}, i64 0, metadata !13), !dbg !39
159 %73 = fmul float %67, %a, !dbg !40 ; [#uses=1]
160 %74 = fmul float %72, %b, !dbg !40 ; [#uses=1]
161 %75 = fadd float %73, %74, !dbg !40 ; [#uses=1]
162 %76 = fmul float %75, 0.000000e+00, !dbg !40 ; [#uses=1]
163 tail call void @llvm.dbg.value(metadata !{float %76}, i64 0, metadata !17), !dbg !40
164 %77 = fmul float %67, %b, !dbg !41 ; [#uses=1]
165 %78 = fmul float %72, %a, !dbg !41 ; [#uses=1]
166 %79 = fsub float %77, %78, !dbg !41 ; [#uses=1]
167 %80 = fmul float %79, 0.000000e+00, !dbg !41 ; [#uses=1]
168 tail call void @llvm.dbg.value(metadata !{float %80}, i64 0, metadata !18), !dbg !41
169 br label %bb46, !dbg !41
170
171 bb46: ; preds = %bb35, %bb34, %bb33, %bb30, %bb16, %bb8, %bb2
172 %y.1 = phi float [ %80, %bb35 ], [ %y.0, %bb34 ], [ %y.0, %bb33 ], [ %y.0, %bb30 ], [ %55, %bb16 ], [ %29, %bb8 ], [ %y.0, %bb2 ] ; [#uses=2]
173 %x.1 = phi float [ %76, %bb35 ], [ %x.0, %bb34 ], [ %x.0, %bb33 ], [ %x.0, %bb30 ], [ %51, %bb16 ], [ %28, %bb8 ], [ %x.0, %bb2 ] ; [#uses=1]
174 %81 = fmul float %y.1, 0.000000e+00, !dbg !42 ; [#uses=1]
175 %82 = fadd float %y.1, 0.000000e+00, !dbg !42 ; [#uses=1]
176 %tmpr = fadd float %x.1, %81, !dbg !42 ; [#uses=1]
177 %tmp89 = bitcast float %tmpr to i32 ; [#uses=1]
178 %tmp90 = zext i32 %tmp89 to i64 ; [#uses=1]
179 %tmp85 = bitcast float %82 to i32 ; [#uses=1]
180 %tmp86 = zext i32 %tmp85 to i64 ; [#uses=1]
181 %tmp87 = shl i64 %tmp86, 32 ; [#uses=1]
182 %ins = or i64 %tmp90, %tmp87 ; [#uses=1]
183 %tmp84 = bitcast i64 %ins to double ; [#uses=1]
184 %mrv75 = insertvalue %0 undef, double %tmp84, 0, !dbg !42 ; <%0> [#uses=1]
185 ret %0 %mrv75, !dbg !42
186 }
187
188 declare float @fabsf(float)
189
190 declare float @copysignf(float, float) nounwind readnone
191
192 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
193
194 !llvm.dbg.lv = !{!0, !11, !12, !13, !14, !16, !17, !18}
195
196 !0 = metadata !{i32 524545, metadata !1, metadata !"a", metadata !2, i32 1921, metadata !9} ; [ DW_TAG_arg_variable ]
197 !1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"__divsc3", metadata !"__divsc3", metadata !"__divsc3", metadata !2, i32 1922, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
198 !2 = metadata !{i32 524329, metadata !"libgcc2.c", metadata !"/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc", metadata !3} ; [ DW_TAG_file_type ]
199 !3 = metadata !{i32 524305, i32 0, i32 1, metadata !"libgcc2.c", metadata !"/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 true, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
200 !4 = metadata !{i32 524309, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
201 !5 = metadata !{metadata !6, metadata !9, metadata !9, metadata !9, metadata !9}
202 !6 = metadata !{i32 524310, metadata !7, metadata !"SCtype", metadata !7, i32 170, i64 0, i64 0, i64 0, i32 0, metadata !8} ; [ DW_TAG_typedef ]
203 !7 = metadata !{i32 524329, metadata !"libgcc2.h", metadata !"/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc", metadata !3} ; [ DW_TAG_file_type ]
204 !8 = metadata !{i32 524324, metadata !2, metadata !"complex float", metadata !2, i32 0, i64 64, i64 32, i64 0, i32 0, i32 3} ; [ DW_TAG_base_type ]
205 !9 = metadata !{i32 524310, metadata !7, metadata !"SFtype", metadata !7, i32 167, i64 0, i64 0, i64 0, i32 0, metadata !10} ; [ DW_TAG_typedef ]
206 !10 = metadata !{i32 524324, metadata !2, metadata !"float", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 4} ; [ DW_TAG_base_type ]
207 !11 = metadata !{i32 524545, metadata !1, metadata !"b", metadata !2, i32 1921, metadata !9} ; [ DW_TAG_arg_variable ]
208 !12 = metadata !{i32 524545, metadata !1, metadata !"c", metadata !2, i32 1921, metadata !9} ; [ DW_TAG_arg_variable ]
209 !13 = metadata !{i32 524545, metadata !1, metadata !"d", metadata !2, i32 1921, metadata !9} ; [ DW_TAG_arg_variable ]
210 !14 = metadata !{i32 524544, metadata !15, metadata !"denom", metadata !2, i32 1923, metadata !9} ; [ DW_TAG_auto_variable ]
211 !15 = metadata !{i32 524299, metadata !1, i32 1922, i32 0} ; [ DW_TAG_lexical_block ]
212 !16 = metadata !{i32 524544, metadata !15, metadata !"ratio", metadata !2, i32 1923, metadata !9} ; [ DW_TAG_auto_variable ]
213 !17 = metadata !{i32 524544, metadata !15, metadata !"x", metadata !2, i32 1923, metadata !9} ; [ DW_TAG_auto_variable ]
214 !18 = metadata !{i32 524544, metadata !15, metadata !"y", metadata !2, i32 1923, metadata !9} ; [ DW_TAG_auto_variable ]
215 !19 = metadata !{i32 1929, i32 0, metadata !15, null}
216 !20 = metadata !{i32 1931, i32 0, metadata !15, null}
217 !21 = metadata !{i32 1932, i32 0, metadata !15, null}
218 !22 = metadata !{i32 1933, i32 0, metadata !15, null}
219 !23 = metadata !{i32 1934, i32 0, metadata !15, null}
220 !24 = metadata !{i32 1938, i32 0, metadata !15, null}
221 !25 = metadata !{i32 1939, i32 0, metadata !15, null}
222 !26 = metadata !{i32 1940, i32 0, metadata !15, null}
223 !27 = metadata !{i32 1941, i32 0, metadata !15, null}
224 !28 = metadata !{i32 1946, i32 0, metadata !15, null}
225 !29 = metadata !{i32 1948, i32 0, metadata !15, null}
226 !30 = metadata !{i32 1950, i32 0, metadata !15, null}
227 !31 = metadata !{i32 1951, i32 0, metadata !15, null}
228 !32 = metadata !{i32 1953, i32 0, metadata !15, null}
229 !33 = metadata !{i32 1955, i32 0, metadata !15, null}
230 !34 = metadata !{i32 1956, i32 0, metadata !15, null}
231 !35 = metadata !{i32 1957, i32 0, metadata !15, null}
232 !36 = metadata !{i32 1958, i32 0, metadata !15, null}
233 !37 = metadata !{i32 1960, i32 0, metadata !15, null}
234 !38 = metadata !{i32 1962, i32 0, metadata !15, null}
235 !39 = metadata !{i32 1963, i32 0, metadata !15, null}
236 !40 = metadata !{i32 1964, i32 0, metadata !15, null}
237 !41 = metadata !{i32 1965, i32 0, metadata !15, null}
238 !42 = metadata !{i32 1969, i32 0, metadata !15, null}
+0
-44
test/DebugInfo/2010-05-28-Crash.ll less more
None ; RUN: llc -mtriple=x86_64-apple-darwin < %s | FileCheck %s
1 ; Test to check separate label for inlined function argument.
2
3 define i32 @foo(i32 %y) nounwind optsize ssp {
4 entry:
5 tail call void @llvm.dbg.value(metadata !{i32 %y}, i64 0, metadata !0)
6 %0 = tail call i32 (...)* @zoo(i32 %y) nounwind, !dbg !9 ; [#uses=1]
7 ret i32 %0, !dbg !9
8 }
9
10 declare i32 @zoo(...)
11
12 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
13
14 define i32 @bar(i32 %x) nounwind optsize ssp {
15 entry:
16 tail call void @llvm.dbg.value(metadata !{i32 %x}, i64 0, metadata !7)
17 tail call void @llvm.dbg.value(metadata !11, i64 0, metadata !0) nounwind
18 %0 = tail call i32 (...)* @zoo(i32 1) nounwind, !dbg !12 ; [#uses=1]
19 %1 = add nsw i32 %0, %x, !dbg !13 ; [#uses=1]
20 ret i32 %1, !dbg !13
21 }
22
23 !llvm.dbg.lv = !{!0, !7}
24
25 !0 = metadata !{i32 524545, metadata !1, metadata !"y", metadata !2, i32 2, metadata !6} ; [ DW_TAG_arg_variable ]
26 !1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"foo", metadata !"foo", metadata !"foo", metadata !2, i32 2, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
27 !2 = metadata !{i32 524329, metadata !"f.c", metadata !"/tmp", metadata !3} ; [ DW_TAG_file_type ]
28 !3 = metadata !{i32 524305, i32 0, i32 1, metadata !"f.c", metadata !"/tmp", metadata !"4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", i1 true, i1 true, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
29 !4 = metadata !{i32 524309, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_subroutine_type ]
30 !5 = metadata !{metadata !6, metadata !6}
31 !6 = metadata !{i32 524324, metadata !2, metadata !"int", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
32 !7 = metadata !{i32 524545, metadata !8, metadata !"x", metadata !2, i32 6, metadata !6} ; [ DW_TAG_arg_variable ]
33 !8 = metadata !{i32 524334, i32 0, metadata !2, metadata !"bar", metadata !"bar", metadata !"bar", metadata !2, i32 6, metadata !4, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
34 !9 = metadata !{i32 3, i32 0, metadata !10, null}
35 !10 = metadata !{i32 524299, metadata !1, i32 2, i32 0} ; [ DW_TAG_lexical_block ]
36 !11 = metadata !{i32 1}
37 !12 = metadata !{i32 3, i32 0, metadata !10, metadata !13}
38 !13 = metadata !{i32 7, i32 0, metadata !14, null}
39 !14 = metadata !{i32 524299, metadata !8, i32 6, i32 0} ; [ DW_TAG_lexical_block ]
40
41 ;CHECK: DEBUG_VALUE: bar:x <- EBX+0
42 ;CHECK-NEXT:Ltmp
43 ;CHECK-NEXT: DEBUG_VALUE: foo:y <- 1+0
+0
-53
test/DebugInfo/2010-06-01-DeadArg-DbgInfo.ll less more
None ; RUN: llc -O2 < %s | FileCheck %s
1 ; Test to check that unused argument 'this' is not undefined in debug info.
2
3 target triple = "x86_64-apple-darwin10.2"
4 %struct.foo = type { i32 }
5
6 @llvm.used = appending global [1 x i8*] [i8* bitcast (i32 (%struct.foo*, i32)* @_ZN3foo3bazEi to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
7
8 define i32 @_ZN3foo3bazEi(%struct.foo* nocapture %this, i32 %x) nounwind readnone optsize noinline ssp align 2 {
9 ;CHECK: DEBUG_VALUE: baz:this <- RDI+0
10 entry:
11 tail call void @llvm.dbg.value(metadata !{%struct.foo* %this}, i64 0, metadata !15)
12 tail call void @llvm.dbg.value(metadata !{i32 %x}, i64 0, metadata !16)
13 %0 = mul nsw i32 %x, 7, !dbg !29 ; [#uses=1]
14 %1 = add nsw i32 %0, 1, !dbg !29 ; [#uses=1]
15 ret i32 %1, !dbg !29
16 }
17
18 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
19
20 !llvm.dbg.lv = !{!0, !14, !15, !16, !17, !24, !25, !28}
21
22 !0 = metadata !{i32 524545, metadata !1, metadata !"this", metadata !3, i32 11, metadata !12} ; [ DW_TAG_arg_variable ]
23 !1 = metadata !{i32 524334, i32 0, metadata !2, metadata !"bar", metadata !"bar", metadata !"_ZN3foo3barEi", metadata !3, i32 11, metadata !9, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
24 !2 = metadata !{i32 524307, metadata !3, metadata !"foo", metadata !3, i32 3, i64 32, i64 32, i64 0, i32 0, null, metadata !5, i32 0, null} ; [ DW_TAG_structure_type ]
25 !3 = metadata !{i32 524329, metadata !"foo.cp", metadata !"/tmp/", metadata !4} ; [ DW_TAG_file_type ]
26 !4 = metadata !{i32 524305, i32 0, i32 4, metadata !"foo.cp", metadata !"/tmp/", metadata !"4.2.1 LLVM build", i1 true, i1 true, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
27 !5 = metadata !{metadata !6, metadata !1, metadata !8}
28 !6 = metadata !{i32 524301, metadata !2, metadata !"y", metadata !3, i32 8, i64 32, i64 32, i64 0, i32 0, metadata !7} ; [ DW_TAG_member ]
29 !7 = metadata !{i32 524324, metadata !3, metadata !"int", metadata !3, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
30 !8 = metadata !{i32 524334, i32 0, metadata !2, metadata !"baz", metadata !"baz", metadata !"_ZN3foo3bazEi", metadata !3, i32 15, metadata !9, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
31 !9 = metadata !{i32 524309, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !10, i32 0, null} ; [ DW_TAG_subroutine_type ]
32 !10 = metadata !{metadata !7, metadata !11, metadata !7}
33 !11 = metadata !{i32 524303, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !2} ; [ DW_TAG_pointer_type ]
34 !12 = metadata !{i32 524326, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 64, metadata !13} ; [ DW_TAG_const_type ]
35 !13 = metadata !{i32 524303, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !2} ; [ DW_TAG_pointer_type ]
36 !14 = metadata !{i32 524545, metadata !1, metadata !"x", metadata !3, i32 11, metadata !7} ; [ DW_TAG_arg_variable ]
37 !15 = metadata !{i32 524545, metadata !8, metadata !"this", metadata !3, i32 15, metadata !12} ; [ DW_TAG_arg_variable ]
38 !16 = metadata !{i32 524545, metadata !8, metadata !"x", metadata !3, i32 15, metadata !7} ; [ DW_TAG_arg_variable ]
39 !17 = metadata !{i32 524545, metadata !18, metadata !"argc", metadata !3, i32 19, metadata !7} ; [ DW_TAG_arg_variable ]
40 !18 = metadata !{i32 524334, i32 0, metadata !3, metadata !"main", metadata !"main", metadata !"main", metadata !3, i32 19, metadata !19, i1 false, i1 true, i32 0, i32 0, null, i1 false, i1 true} ; [ DW_TAG_subprogram ]
41 !19 = metadata !{i32 524309, metadata !3, metadata !"", metadata !3, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !20, i32 0, null} ; [ DW_TAG_subroutine_type ]
42 !20 = metadata !{metadata !7, metadata !7, metadata !21}
43 !21 = metadata !{i32 524303, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !22} ; [ DW_TAG_pointer_type ]
44 !22 = metadata !{i32 524303, metadata !3, metadata !"", metadata !3, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !23} ; [ DW_TAG_pointer_type ]
45 !23 = metadata !{i32 524324, metadata !3, metadata !"char", metadata !3, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ]
46 !24 = metadata !{i32 524545, metadata !18, metadata !"argv", metadata !3, i32 19, metadata !21} ; [ DW_TAG_arg_variable ]
47 !25 = metadata !{i32 524544, metadata !26, metadata !"a", metadata !3, i32 20, metadata !2} ; [ DW_TAG_auto_variable ]
48 !26 = metadata !{i32 524299, metadata !27, i32 19, i32 0} ; [ DW_TAG_lexical_block ]
49 !27 = metadata !{i32 524299, metadata !18, i32 19, i32 0} ; [ DW_TAG_lexical_block ]
50 !28 = metadata !{i32 524544, metadata !26, metadata !"b", metadata !3, i32 21, metadata !7} ; [ DW_TAG_auto_variable ]
51 !29 = metadata !{i32 16, i32 0, metadata !30, null}
52 !30 = metadata !{i32 524299, metadata !8, i32 15, i32 0} ; [ DW_TAG_lexical_block ]