2
0

2006-11-09-InlineCGUpdate.ll 13 KB

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