d7eb057e3f108124dbe73eafe84e9751abefd831
[oota-llvm.git] / test / Transforms / Inline / 2006-11-09-InlineCGUpdate.ll
1 ; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output
2 ; PR992
3 target datalayout = "e-p:32:32"
4 target endian = little
5 target pointersize = 32
6 target triple = "i686-pc-linux-gnu"
7 deplibs = [ "stdc++", "c", "crtend" ]
8         %struct._IO_FILE = type { int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct._IO_marker*, %struct._IO_FILE*, int, int, int, ushort, sbyte, [1 x sbyte], sbyte*, long, sbyte*, sbyte*, int, [52 x sbyte] }
9         %struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, int }
10         "struct.__cxxabiv1::__array_type_info" = type { "struct.std::type_info" }
11         "struct.__cxxabiv1::__si_class_type_info" = type { "struct.__cxxabiv1::__array_type_info", "struct.__cxxabiv1::__array_type_info"* }
12         "struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" = type { uint }
13         "struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { sbyte* }
14         "struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" = type { int* }
15         "struct.__gnu_cxx::char_producer<char>" = type { int (...)** }
16         "struct.__gnu_cxx::stdio_sync_filebuf<char,std::char_traits<char> >" = type { "struct.std::basic_streambuf<char,std::char_traits<char> >", %struct._IO_FILE*, int }
17         "struct.__gnu_cxx::stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", %struct._IO_FILE*, uint }
18         %struct.__locale_struct = type { [13 x %struct.locale_data*], ushort*, int*, int*, [13 x sbyte*] }
19         %struct.__mbstate_t = type { int, "struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" }
20         %struct.locale_data = type opaque
21         "struct.std::__basic_file<char>" = type { %struct._IO_FILE*, bool }
22         "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { "struct.std::locale::facet" }
23         "struct.std::basic_filebuf<char,std::char_traits<char> >" = type { "struct.std::basic_streambuf<char,std::char_traits<char> >", int, "struct.std::__basic_file<char>", uint, %struct.__mbstate_t, %struct.__mbstate_t, sbyte*, uint, bool, bool, bool, bool, sbyte, sbyte*, sbyte*, bool, "struct.std::codecvt<char,char,__mbstate_t>"*, sbyte*, int, sbyte*, sbyte* }
24         "struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", int, "struct.std::__basic_file<char>", uint, %struct.__mbstate_t, %struct.__mbstate_t, int*, uint, bool, bool, bool, bool, int, int*, int*, bool, "struct.std::codecvt<char,char,__mbstate_t>"*, sbyte*, int, sbyte*, sbyte* }
25         "struct.std::basic_fstream<char,std::char_traits<char> >" = type { { "struct.std::locale::facet", "struct.__gnu_cxx::char_producer<char>" }, "struct.std::basic_filebuf<char,std::char_traits<char> >", "struct.std::basic_ios<char,std::char_traits<char> >" }
26         "struct.std::basic_fstream<wchar_t,std::char_traits<wchar_t> >" = type { { "struct.std::locale::facet", "struct.__gnu_cxx::char_producer<char>" }, "struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >", "struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
27         "struct.std::basic_ios<char,std::char_traits<char> >" = type { "struct.std::ios_base", "struct.std::basic_ostream<char,std::char_traits<char> >"*, sbyte, bool, "struct.std::basic_streambuf<char,std::char_traits<char> >"*, "struct.std::ctype<char>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* }
28         "struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::ios_base", "struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >"*, int, bool, "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, "struct.std::codecvt<char,char,__mbstate_t>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* }
29         "struct.std::basic_iostream<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::locale::facet", "struct.__gnu_cxx::char_producer<char>", "struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
30         "struct.std::basic_ostream<char,std::char_traits<char> >" = type { int (...)**, "struct.std::basic_ios<char,std::char_traits<char> >" }
31         "struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >" = type { int (...)**, "struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
32         "struct.std::basic_streambuf<char,std::char_traits<char> >" = type { int (...)**, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, "struct.std::locale" }
33         "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >" = type { int (...)**, int*, int*, int*, int*, int*, int*, "struct.std::locale" }
34         "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { "struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" }
35         "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" }
36         "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { uint, uint, int }
37         "struct.std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >" = type { "struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" }
38         "struct.std::codecvt<char,char,__mbstate_t>" = type { "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct* }
39         "struct.std::collate<char>" = type { "struct.std::locale::facet", %struct.__locale_struct* }
40         "struct.std::collate_byname<char>" = type { "struct.std::collate<char>" }
41         "struct.std::ctype<char>" = type { "struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct*, bool, int*, int*, ushort* }
42         "struct.std::ctype_byname<char>" = type { "struct.std::ctype<char>" }
43         "struct.std::domain_error" = type { "struct.std::logic_error" }
44         "struct.std::ios_base" = type { int (...)**, int, int, uint, uint, uint, "struct.std::ios_base::_Callback_list"*, "struct.std::ios_base::_Words", [8 x "struct.std::ios_base::_Words"], int, "struct.std::ios_base::_Words"*, "struct.std::locale" }
45         "struct.std::ios_base::_Callback_list" = type { "struct.std::ios_base::_Callback_list"*, void (uint, "struct.std::ios_base"*, int)*, int, int }
46         "struct.std::ios_base::_Words" = type { sbyte*, int }
47         "struct.std::istreambuf_iterator<char,std::char_traits<char> >" = type { "struct.std::basic_streambuf<char,std::char_traits<char> >"*, int }
48         "struct.std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t> >" = type { "struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, uint }
49         "struct.std::locale" = type { "struct.std::locale::_Impl"* }
50         "struct.std::locale::_Impl" = type { int, "struct.std::locale::facet"**, uint, "struct.std::locale::facet"**, sbyte** }
51         "struct.std::locale::facet" = type { int (...)**, int }
52         "struct.std::logic_error" = type { "struct.__gnu_cxx::char_producer<char>", "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" }
53         "struct.std::type_info" = type { int (...)**, sbyte* }
54 %.str_11 = external global [42 x sbyte]         ; <[42 x sbyte]*> [#uses=0]
55 %.str_9 = external global [24 x sbyte]          ; <[24 x sbyte]*> [#uses=0]
56 %.str_1 = external global [17 x sbyte]          ; <[17 x sbyte]*> [#uses=0]
57
58 implementation   ; Functions:
59
60 void %main() {
61 entry:
62         tail call fastcc void %_ZNSolsEi( )
63         ret void
64 }
65
66 fastcc void %_ZNSolsEi() {
67 entry:
68         %tmp.22 = seteq uint 0, 0               ; <bool> [#uses=1]
69         br bool %tmp.22, label %else, label %then
70
71 then:           ; preds = %entry
72         ret void
73
74 else:           ; preds = %entry
75         tail call fastcc void %_ZNSolsEl( )
76         ret void
77 }
78
79 void %_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_() {
80 entry:
81         ret void
82 }
83
84 fastcc void %_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() {
85 entry:
86         tail call fastcc void %_ZSt19__throw_ios_failurePKc( )
87         ret void
88 }
89
90 fastcc void %_ZNSo3putEc() {
91 entry:
92         ret void
93 }
94
95 fastcc void %_ZNSolsEl() {
96 entry:
97         %tmp.21.i = seteq "struct.std::basic_ostream<char,std::char_traits<char> >"* null, null         ; <bool> [#uses=1]
98         br bool %tmp.21.i, label %endif.0.i, label %shortcirc_next.i
99
100 shortcirc_next.i:               ; preds = %entry
101         ret void
102
103 endif.0.i:              ; preds = %entry
104         call fastcc void %_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( )
105         ret void
106 }
107
108 fastcc void %_ZSt19__throw_ios_failurePKc() {
109 entry:
110         call fastcc void %_ZNSsC1EPKcRKSaIcE( )
111         ret void
112 }
113
114 fastcc void %_ZNSt8ios_baseD2Ev() {
115 entry:
116         unreachable
117 }
118
119 void %_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv() {
120 entry:
121         unreachable
122 }
123
124 void %_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev() {
125 entry:
126         unreachable
127 }
128
129 void %_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci() {
130 entry:
131         ret void
132 }
133
134 fastcc void %_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale() {
135 entry:
136         ret void
137 }
138
139 declare fastcc void %_ZNSaIcED1Ev()
140
141 fastcc void %_ZSt19__throw_logic_errorPKc() {
142 entry:
143         call fastcc void %_ZNSt11logic_errorC1ERKSs( )
144         ret void
145 }
146
147 fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE() {
148 entry:
149         br bool false, label %then.0, label %endif.0
150
151 then.0:         ; preds = %entry
152         call fastcc void %_ZSt20__throw_length_errorPKc( )
153         ret void
154
155 endif.0:                ; preds = %entry
156         ret void
157 }
158
159 fastcc void %_ZSt20__throw_length_errorPKc() {
160 entry:
161         call fastcc void %_ZNSt12length_errorC1ERKSs( )
162         unwind
163 }
164
165 fastcc void %_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() {
166 entry:
167         br bool false, label %then.1.i, label %endif.1.i
168
169 then.1.i:               ; preds = %entry
170         call fastcc void %_ZSt19__throw_logic_errorPKc( )
171         ret void
172
173 endif.1.i:              ; preds = %entry
174         call fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE( )
175         unreachable
176 }
177
178 fastcc void %_ZNSsC1ERKSs() {
179 entry:
180         call fastcc void %_ZNSs4_Rep7_M_grabERKSaIcES2_( )
181         invoke fastcc void %_ZNSaIcEC1ERKS_( )
182                         to label %invoke_cont.1 unwind label %invoke_catch.1
183
184 invoke_catch.1:         ; preds = %entry
185         call fastcc void %_ZNSaIcED1Ev( )
186         unwind
187
188 invoke_cont.1:          ; preds = %entry
189         call fastcc void %_ZNSaIcEC2ERKS_( )
190         ret void
191 }
192
193 fastcc void %_ZNSs7reserveEj() {
194 entry:
195         ret void
196 }
197
198 fastcc void %_ZNSaIcEC1ERKS_() {
199 entry:
200         ret void
201 }
202
203 fastcc void %_ZNSs4_Rep7_M_grabERKSaIcES2_() {
204 entry:
205         br bool false, label %else.i, label %cond_true
206
207 cond_true:              ; preds = %entry
208         ret void
209
210 else.i:         ; preds = %entry
211         tail call fastcc void %_ZNSs4_Rep9_S_createEjRKSaIcE( )
212         ret void
213 }
214
215 fastcc void %_ZNSsC1EPKcRKSaIcE() {
216 entry:
217         tail call fastcc void %_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( )
218         unreachable
219 }
220
221 fastcc void %_ZNSaIcEC2ERKS_() {
222 entry:
223         ret void
224 }
225
226 void %_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev() {
227 entry:
228         unreachable
229 }
230
231 void %_ZNSt14collate_bynameIcED1Ev() {
232 entry:
233         unreachable
234 }
235
236 void %_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy() {
237 entry:
238         ret void
239 }
240
241 void %_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED1Ev() {
242 entry:
243         unreachable
244 }
245
246 void %_ZNSt12ctype_bynameIcED0Ev() {
247 entry:
248         unreachable
249 }
250
251 fastcc void %_ZNSt8messagesIwEC1Ej() {
252 entry:
253         ret void
254 }
255
256 fastcc void %_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi() {
257 entry:
258         ret void
259 }
260
261 fastcc void %_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej() {
262 entry:
263         ret void
264 }
265
266 fastcc void %_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() {
267 entry:
268         ret void
269 }
270
271 fastcc void %_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs() {
272 entry:
273         unreachable
274 }
275
276 fastcc void %_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_() {
277 entry:
278         ret void
279 }
280
281 void %_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev() {
282 entry:
283         unreachable
284 }
285
286 void %_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv() {
287 entry:
288         ret void
289 }
290
291 void %_ZNSt9exceptionD0Ev() {
292 entry:
293         unreachable
294 }
295
296 fastcc void %_ZNSt11logic_errorC1ERKSs() {
297 entry:
298         call fastcc void %_ZNSsC1ERKSs( )
299         ret void
300 }
301
302 fastcc void %_ZNSt11logic_errorD2Ev() {
303 entry:
304         unreachable
305 }
306
307 fastcc void %_ZNSt12length_errorC1ERKSs() {
308 entry:
309         invoke fastcc void %_ZNSsC1ERKSs( )
310                         to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i
311
312 invoke_catch.i:         ; preds = %entry
313         unwind
314
315 _ZNSt11logic_errorC2ERKSs.exit:         ; preds = %entry
316         ret void
317 }
318
319 void %_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_() {
320 entry:
321         ret void
322 }
323
324 fastcc void %_ZNSbIwSt11char_traitsIwESaIwEE16_S_construct_auxIPKwEEPwT_S7_RKS1_12__false_type() {
325 entry:
326         ret void
327 }
328
329 void %_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev() {
330 entry:
331         ret void
332 }
333
334 void %_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev() {
335 entry:
336         unreachable
337 }
338
339 fastcc void %_ZNSt5ctypeIcEC1EPKtbj() {
340 entry:
341         ret void
342 }