blob: 6e3674397857263e04f48a98a43b46eb5abfd656 [file] [log] [blame]
Dale Johannesen3bb9df92008-01-30 19:00:21 +00001; RUN: llvm-as < %s | llc
2; ModuleID = 'foo.c'
3target 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"
4target triple = "i686-apple-darwin8"
5 %llvm.dbg.anchor.type = type { i32, i32 }
6 %llvm.dbg.basictype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, i32 }
7 %llvm.dbg.compile_unit.type = type { i32, %struct.anon*, i32, i8*, i8*, i8* }
8 %llvm.dbg.compositetype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, %struct.anon*, %struct.anon* }
9 %llvm.dbg.derivedtype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, %struct.anon* }
10 %llvm.dbg.global_variable.type = type { i32, %struct.anon*, %struct.anon*, i8*, i8*, i8*, %struct.anon*, i32, %struct.anon*, i1, i1, %struct.anon* }
11 %llvm.dbg.subprogram.type = type { i32, %struct.anon*, %struct.anon*, i8*, i8*, i8*, %struct.anon*, i32, %struct.anon*, i1, i1 }
12 %llvm.dbg.subrange.type = type { i32, i64, i64 }
13 %llvm.dbg.variable.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, %struct.anon* }
14 %struct.S271 = type { [0 x %struct.anon], %struct.anon }
15 %struct.anon = type { }
16@llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type {
17 i32 393262,
18 %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %struct.anon*),
19 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
20 i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0),
21 i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0),
22 i8* null,
23 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
24 i32 2,
25 %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %struct.anon*),
26 i1 false,
27 i1 true }, section "llvm.metadata" ; <%llvm.dbg.subprogram.type*> [#uses=1]
28@llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata" ; <%llvm.dbg.anchor.type*> [#uses=1]
29@llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type {
30 i32 393233,
31 %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %struct.anon*),
32 i32 1,
33 i8* getelementptr ([6 x i8]* @.str, i32 0, i32 0),
34 i8* getelementptr ([23 x i8]* @.str1, i32 0, i32 0),
35 i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata" ; <%llvm.dbg.compile_unit.type*> [#uses=1]
36@llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata" ; <%llvm.dbg.anchor.type*> [#uses=1]
37@.str = internal constant [6 x i8] c"foo.c\00", section "llvm.metadata" ; <[6 x i8]*> [#uses=1]
38@.str1 = internal constant [23 x i8] c"/Volumes/MacOS9/tests/\00", section "llvm.metadata" ; <[23 x i8]*> [#uses=1]
39@.str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5546) (LLVM build)\00", section "llvm.metadata" ; <[52 x i8]*> [#uses=1]
40@.str3 = internal constant [4 x i8] c"var\00", section "llvm.metadata" ; <[4 x i8]*> [#uses=1]
41@llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type {
42 i32 393231,
43 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
44 i8* null,
45 %struct.anon* null,
46 i32 0,
47 i64 32,
48 i64 32,
49 i64 0,
50 i32 0,
51 %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.derivedtype.type*> [#uses=1]
52@llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
53 i32 393252,
54 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
55 i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0),
56 %struct.anon* null,
57 i32 0,
58 i64 8,
59 i64 8,
60 i64 0,
61 i32 0,
62 i32 6 }, section "llvm.metadata" ; <%llvm.dbg.basictype.type*> [#uses=1]
63@.str4 = internal constant [5 x i8] c"char\00", section "llvm.metadata" ; <[5 x i8]*> [#uses=1]
64@llvm.dbg.variable = internal constant %llvm.dbg.variable.type {
65 i32 393474,
66 %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*),
67 i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0),
68 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
69 i32 2,
70 %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.variable.type*> [#uses=1]
71@.str5 = internal constant [7 x i8] c"retval\00", section "llvm.metadata" ; <[7 x i8]*> [#uses=1]
72@a271 = weak global [0 x %struct.S271] zeroinitializer ; <[0 x %struct.S271]*> [#uses=3]
73@llvm.dbg.subprogram6 = internal constant %llvm.dbg.subprogram.type {
74 i32 393262,
75 %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %struct.anon*),
76 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
77 i8* getelementptr ([5 x i8]* @.str7, i32 0, i32 0),
78 i8* getelementptr ([5 x i8]* @.str7, i32 0, i32 0),
79 i8* null,
80 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
81 i32 3,
82 %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype8 to %struct.anon*),
83 i1 false,
84 i1 true }, section "llvm.metadata" ; <%llvm.dbg.subprogram.type*> [#uses=1]
85@.str7 = internal constant [5 x i8] c"main\00", section "llvm.metadata" ; <[5 x i8]*> [#uses=1]
86@llvm.dbg.basictype8 = internal constant %llvm.dbg.basictype.type {
87 i32 393252,
88 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
89 i8* getelementptr ([4 x i8]* @.str9, i32 0, i32 0),
90 %struct.anon* null,
91 i32 0,
92 i64 32,
93 i64 32,
94 i64 0,
95 i32 0,
96 i32 5 }, section "llvm.metadata" ; <%llvm.dbg.basictype.type*> [#uses=1]
97@.str9 = internal constant [4 x i8] c"int\00", section "llvm.metadata" ; <[4 x i8]*> [#uses=1]
98@llvm.dbg.variable10 = internal constant %llvm.dbg.variable.type {
99 i32 393474,
100 %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*),
101 i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0),
102 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
103 i32 3,
104 %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype8 to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.variable.type*> [#uses=1]
105@llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type {
106 i32 393268,
107 %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.global_variables to %struct.anon*),
108 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
109 i8* getelementptr ([5 x i8]* @.str11, i32 0, i32 0),
110 i8* getelementptr ([5 x i8]* @.str11, i32 0, i32 0),
111 i8* null,
112 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
113 i32 1,
114 %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype to %struct.anon*),
115 i1 false,
116 i1 true,
117 %struct.anon* getelementptr ([0 x %struct.S271]* @a271, i32 0, i32 0, i32 0, i32 0) }, section "llvm.metadata" ; <%llvm.dbg.global_variable.type*> [#uses=0]
118@llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 52 }, section "llvm.metadata" ; <%llvm.dbg.anchor.type*> [#uses=1]
119@.str11 = internal constant [5 x i8] c"a271\00", section "llvm.metadata" ; <[5 x i8]*> [#uses=1]
120@llvm.dbg.compositetype = internal constant %llvm.dbg.compositetype.type {
121 i32 393217,
122 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
123 i8* null,
124 %struct.anon* null,
125 i32 0,
126 i64 0,
127 i64 8,
128 i64 0,
129 i32 0,
130 %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype12 to %struct.anon*),
131 %struct.anon* bitcast ([1 x %struct.anon*]* @llvm.dbg.array25 to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.compositetype.type*> [#uses=1]
132@llvm.dbg.compositetype12 = internal constant %llvm.dbg.compositetype.type {
133 i32 393235,
134 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
135 i8* getelementptr ([5 x i8]* @.str13, i32 0, i32 0),
136 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
137 i32 1,
138 i64 0,
139 i64 8,
140 i64 0,
141 i32 0,
142 %struct.anon* null,
143 %struct.anon* bitcast ([2 x %struct.anon*]* @llvm.dbg.array23 to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.compositetype.type*> [#uses=1]
144@.str13 = internal constant [5 x i8] c"S271\00", section "llvm.metadata" ; <[5 x i8]*> [#uses=1]
145@llvm.dbg.derivedtype14 = internal constant %llvm.dbg.derivedtype.type {
146 i32 393229,
147 %struct.anon* null,
148 i8* getelementptr ([2 x i8]* @.str15, i32 0, i32 0),
149 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
150 i32 1,
151 i64 0,
152 i64 8,
153 i64 0,
154 i32 0,
155 %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype16 to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.derivedtype.type*> [#uses=1]
156@.str15 = internal constant [2 x i8] c"a\00", section "llvm.metadata" ; <[2 x i8]*> [#uses=1]
157@llvm.dbg.compositetype16 = internal constant %llvm.dbg.compositetype.type {
158 i32 393217,
159 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
160 i8* null,
161 %struct.anon* null,
162 i32 0,
163 i64 0,
164 i64 8,
165 i64 0,
166 i32 0,
167 %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype17 to %struct.anon*),
168 %struct.anon* bitcast ([1 x %struct.anon*]* @llvm.dbg.array18 to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.compositetype.type*> [#uses=1]
169@llvm.dbg.compositetype17 = internal constant %llvm.dbg.compositetype.type {
170 i32 393235,
171 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
172 i8* null,
173 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
174 i32 1,
175 i64 0,
176 i64 8,
177 i64 0,
178 i32 0,
179 %struct.anon* null,
180 %struct.anon* bitcast ([0 x %struct.anon*]* @llvm.dbg.array to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.compositetype.type*> [#uses=1]
181@llvm.dbg.array = internal constant [0 x %struct.anon*] zeroinitializer, section "llvm.metadata" ; <[0 x %struct.anon*]*> [#uses=1]
182@llvm.dbg.subrange = internal constant %llvm.dbg.subrange.type {
183 i32 393249,
184 i64 0,
185 i64 4 }, section "llvm.metadata" ; <%llvm.dbg.subrange.type*> [#uses=1]
186@llvm.dbg.array18 = internal constant [1 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.subrange.type* @llvm.dbg.subrange to %struct.anon*) ], section "llvm.metadata" ; <[1 x %struct.anon*]*> [#uses=1]
187@llvm.dbg.derivedtype19 = internal constant %llvm.dbg.derivedtype.type {
188 i32 393229,
189 %struct.anon* null,
190 i8* getelementptr ([2 x i8]* @.str20, i32 0, i32 0),
191 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
192 i32 1,
193 i64 0,
194 i64 8,
195 i64 0,
196 i32 0,
197 %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype21 to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.derivedtype.type*> [#uses=1]
198@.str20 = internal constant [2 x i8] c"b\00", section "llvm.metadata" ; <[2 x i8]*> [#uses=1]
199@llvm.dbg.compositetype21 = internal constant %llvm.dbg.compositetype.type {
200 i32 393235,
201 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
202 i8* null,
203 %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*),
204 i32 1,
205 i64 0,
206 i64 8,
207 i64 0,
208 i32 0,
209 %struct.anon* null,
210 %struct.anon* bitcast ([0 x %struct.anon*]* @llvm.dbg.array22 to %struct.anon*) }, section "llvm.metadata" ; <%llvm.dbg.compositetype.type*> [#uses=1]
211@llvm.dbg.array22 = internal constant [0 x %struct.anon*] zeroinitializer, section "llvm.metadata" ; <[0 x %struct.anon*]*> [#uses=1]
212@llvm.dbg.array23 = internal constant [2 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype14 to %struct.anon*), %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to %struct.anon*) ], section "llvm.metadata" ; <[2 x %struct.anon*]*> [#uses=1]
213@llvm.dbg.subrange24 = internal constant %llvm.dbg.subrange.type {
214 i32 393249,
215 i64 0,
216 i64 4 }, section "llvm.metadata" ; <%llvm.dbg.subrange.type*> [#uses=1]
217@llvm.dbg.array25 = internal constant [1 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.subrange.type* @llvm.dbg.subrange24 to %struct.anon*) ], section "llvm.metadata" ; <[1 x %struct.anon*]*> [#uses=1]
218
219define i8* @var() {
220entry:
221 %retval = alloca i8* ; <i8**> [#uses=3]
222 %tmp = alloca i8* ; <i8**> [#uses=2]
223 %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
224 call void @llvm.dbg.func.start( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*) )
225 call void @llvm.dbg.stoppoint( i32 2, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
226 %retval1 = bitcast i8** %retval to %struct.anon* ; <%struct.anon*> [#uses=1]
227 call void @llvm.dbg.declare( %struct.anon* %retval1, %struct.anon* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to %struct.anon*) )
228 bitcast %struct.S271* getelementptr ([0 x %struct.S271]* @a271, i32 0, i32 0) to i8* ; <i8*>:0 [#uses=0]
229 store i8* bitcast ([0 x %struct.S271]* @a271 to i8*), i8** %tmp, align 4
230 %tmp2 = load i8** %tmp, align 4 ; <i8*> [#uses=1]
231 store i8* %tmp2, i8** %retval, align 4
232 br label %return
233
234return: ; preds = %entry
235 %retval3 = load i8** %retval ; <i8*> [#uses=1]
236 call void @llvm.dbg.stoppoint( i32 2, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
237 call void @llvm.dbg.region.end( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*) )
238 ret i8* %retval3
239}
240
241declare void @llvm.dbg.func.start(%struct.anon*) nounwind
242
243declare void @llvm.dbg.stoppoint(i32, i32, %struct.anon*) nounwind
244
245declare void @llvm.dbg.declare(%struct.anon*, %struct.anon*) nounwind
246
247declare void @llvm.dbg.region.end(%struct.anon*) nounwind
248
249define i32 @main() {
250entry:
251 %retval = alloca i32 ; <i32*> [#uses=2]
252 %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
253 call void @llvm.dbg.func.start( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*) )
254 call void @llvm.dbg.stoppoint( i32 3, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
255 %retval1 = bitcast i32* %retval to %struct.anon* ; <%struct.anon*> [#uses=1]
256 call void @llvm.dbg.declare( %struct.anon* %retval1, %struct.anon* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable10 to %struct.anon*) )
257 br label %return
258
259return: ; preds = %entry
260 %retval2 = load i32* %retval ; <i32> [#uses=1]
261 call void @llvm.dbg.stoppoint( i32 3, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
262 call void @llvm.dbg.region.end( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*) )
263 ret i32 %retval2
264}