fix a globalopt crash on two Adobe-C++ testcases that the recent
[llvm.git] / test / Transforms / LoopSimplify / 2007-10-28-InvokeCrash.ll
blob10202dcf98ce3f6f37a9823460d13ca61fced3bd
1 ; RUN: opt < %s -loopsimplify -disable-output
2 ; PR1752
3 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-s0:0:64-f80:32:32"
4 target triple = "i686-pc-mingw32"
5         %struct.BigInt = type { %"struct.std::vector<ulong,std::allocator<ulong> >" }
6         %struct.Fibonacci = type { %"struct.std::vector<BigInt,std::allocator<BigInt> >" }
7         %struct.__false_type = type <{ i8 }>
8         %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >" = type { %struct.BigInt* }
9         %"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >" = type { %"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >::_Vector_impl" }
10         %"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >::_Vector_impl" = type { %struct.BigInt*, %struct.BigInt*, %struct.BigInt* }
11         %"struct.std::_Vector_base<ulong,std::allocator<ulong> >" = type { %"struct.std::_Vector_base<ulong,std::allocator<ulong> >::_Vector_impl" }
12         %"struct.std::_Vector_base<ulong,std::allocator<ulong> >::_Vector_impl" = type { i32*, i32*, i32* }
13         %"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i8, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"* }
14         %"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
15         %"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
16         %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
17         %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* }
18         %"struct.std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", i32, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" }
19         %"struct.std::ctype<char>" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
20         %"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" }
21         %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
22         %"struct.std::ios_base::_Words" = type { i8*, i32 }
23         %"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
24         %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
25         %"struct.std::locale::facet" = type { i32 (...)**, i32 }
26         %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >" = type { %"struct.std::locale::facet" }
27         %"struct.std::ostringstream" = type { [4 x i8], %"struct.std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >", %"struct.std::basic_ios<char,std::char_traits<char> >" }
28         %"struct.std::vector<BigInt,std::allocator<BigInt> >" = type { %"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >" }
29         %"struct.std::vector<ulong,std::allocator<ulong> >" = type { %"struct.std::_Vector_base<ulong,std::allocator<ulong> >" }
30 @.str13 = external constant [6 x i8]            ; <[6 x i8]*> [#uses=1]
31 @.str14 = external constant [5 x i8]            ; <[5 x i8]*> [#uses=1]
32 @.str15 = external constant [2 x i8]            ; <[2 x i8]*> [#uses=1]
33 @_ZSt4cout = external global %"struct.std::basic_ostream<char,std::char_traits<char> >"         ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
35 declare void @_ZN9Fibonacci10get_numberEj(%struct.BigInt* sret , %struct.Fibonacci*, i32)
37 declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8*)
39 declare void @_ZNSsD1Ev(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*)
41 declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEm(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, i32)
43 declare void @_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* sret , %"struct.std::ostringstream"*)
45 declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*)
47 declare void @_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(%"struct.std::ostringstream"*)
49 declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @___ZlsRSoRK6BigInt___ZN9__gnu_cxx13new_allocatorI6BigIntE10deallocateEPS1_j(i32, %"struct.std::basic_ostream<char,std::char_traits<char> >"*, %struct.BigInt*, %struct.__false_type*, i32)
51 declare void @___ZNSt12_Vector_baseI6BigIntSaIS0_EE13_M_deallocateEPS0_j___ZNSt12_Vector_baseI6BigIntSaIS0_EED2Ev___ZNSt6vectorI6BigIntSaIS0_EEC1ERKS1_(%"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >"*, i32, %struct.BigInt*, i32, %"struct.std::vector<BigInt,std::allocator<BigInt> >"*, %struct.__false_type*)
53 declare i32 @___ZN9__gnu_cxxmiIPK6BigIntS3_St6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T1_E15difference_typeERKSA_RKNS7_IT0_S9_EE___ZNKSt6vectorI6BigIntSaIS0_EE4sizeEv___ZNK9Fibonacci16show_all_numbersEv___ZNKSt6vectorI6BigIntSaIS0_EE8capacityEv(%"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*, %"struct.std::vector<BigInt,std::allocator<BigInt> >"*, i32, %struct.Fibonacci*)
55 declare %struct.BigInt* @___ZNSt6vectorI6BigIntSaIS0_EEixEj___ZNSt6vectorI6BigIntSaIS0_EE3endEv(%"struct.std::vector<BigInt,std::allocator<BigInt> >"*, i32, i32)
57 declare %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* @___ZN9__gnu_cxx17__normal_iteratorIP6BigIntSt6vectorIS1_SaIS1_EEEppEv___ZNSt6vectorImSaImEED1Ev___ZN6BigIntD1Ev___ZN9__gnu_cxx13new_allocatorI6BigIntE7destroyEPS1____ZSt8_DestroyIP6BigIntSaIS0_EEvT_S3_T0_(i32, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*, %"struct.std::vector<ulong,std::allocator<ulong> >"*, %struct.BigInt*, %struct.__false_type*, %struct.BigInt*, %struct.__false_type* noalias )
59 declare void @___ZNSt6vectorI6BigIntSaIS0_EED1Ev___ZN9FibonacciD1Ev___ZNSt6vectorImSaImEEC1ERKS0_(i32, %"struct.std::vector<BigInt,std::allocator<BigInt> >"*, %struct.Fibonacci*, %"struct.std::vector<ulong,std::allocator<ulong> >"*, %struct.__false_type*)
61 define void @___ZN9FibonacciC1Ej___ZN9Fibonacci11show_numberEm(%struct.Fibonacci* %this_this, i32 %functionID, i32 %n_i_n_i) {
62 bb_init:
63         br label %bb_main
65 bb_main:                ; preds = %meshBB349, %meshBB348, %meshBB347, %meshBB346, %meshBB345.unwinddest, %meshBB345, %meshBB344, %meshBB343, %meshBB342, %meshBB341, %meshBB340.normaldest, %meshBB340, %meshBB339, %invcont17.normaldest.normaldest, %invcont17.normaldest, %meshBB338.unwinddest, %meshBB338, %meshBB337.unwinddest, %meshBB337, %meshBB336.unwinddest, %meshBB336, %meshBB335, %meshBB334, %meshBB333, %meshBB332, %meshBB331, %meshBB330.normaldest, %meshBB330, %meshBB329.normaldest, %meshBB329, %meshBB328, %meshBB327, %meshBB326, %meshBB325.unwinddest, %meshBB325, %meshBB324, %meshBB323.normaldest, %meshBB323, %meshBB322.unwinddest, %meshBB322, %meshBB321, %meshBB320.unwinddest, %meshBB320, %meshBB319.unwinddest, %meshBB319, %meshBB318.unwinddest, %meshBB318, %meshBB317, %meshBB37.fragment, %meshBB37.unwinddest, %meshBB37, %meshBB36.fragment, %meshBB36, %meshBB35.fragment, %meshBB35, %meshBB34.fragment, %meshBB34, %meshBB33.fragment, %meshBB33, %meshBB32.fragment, %meshBB32, %meshBB31.fragment, %meshBB31, %meshBB30.fragment, %meshBB30.normaldest, %meshBB30, %meshBB29.fragment, %meshBB29.unwinddest, %meshBB29, %meshBB28.fragment, %meshBB28.unwinddest, %meshBB28, %meshBB27.fragment, %meshBB27, %meshBB26.fragment, %meshBB26.normaldest, %meshBB26, %meshBB25.fragment, %meshBB25, %meshBB24.fragment, %meshBB24.unwinddest, %meshBB24, %meshBB23.fragment, %meshBB23.normaldest, %meshBB23, %entry1.fragment.normaldest.normaldest, %entry1.fragment.normaldest, %meshBB22.fragment, %meshBB22.unwinddest, %meshBB22, %meshBB.fragment, %meshBB.unwinddest, %meshBB, %Unwind20, %unwind78.Unwind_crit_edge, %unwind78.fragment.fragment, %unwind78.fragment, %unwind78.fragment316, %unwind78, %invcont70, %unwind66.Unwind_crit_edge, %unwind66.fragment.fragment, %unwind66.fragment, %unwind66.fragment315, %unwind66, %unwind53.nofilter_crit_edge, %unwind53.fragment.fragment, %unwind53.fragment, %unwind53.fragment314, %unwind53, %nofilter.Unwind_crit_edge.normaldest, %nofilter.Unwind_crit_edge, %nofilter, %unwind43.nofilter_crit_edge, %unwind43.fragment.fragment, %unwind43.fragment, %unwind43.fragment313, %unwind43, %invcont41.normaldest, %invcont41, %unwind37.nofilter_crit_edge, %unwind37, %invcont36, %invcont33.unwind_crit_edge.unwinddest, %invcont33.unwind_crit_edge, %invcont30.unwind_crit_edge.unwinddest, %invcont30.unwind_crit_edge, %invcont30.normaldest, %invcont30, %invcont28.unwind_crit_edge, %invcont28.normaldest, %invcont28, %invcont25.unwind_crit_edge.unwinddest, %invcont25.unwind_crit_edge, %invcont25, %invcont22.unwind_crit_edge, %invcont22, %invcont17.unwind_crit_edge, %invcont17, %cond_next.unwind_crit_edge, %cond_next, %invcont12.cond_next_crit_edge, %invcont12.unwind_crit_edge, %invcont12, %cond_true.unwind_crit_edge.unwinddest, %cond_true.unwind_crit_edge, %invcont.cond_next_crit_edge, %invcont16.fragment, %invcont16, %unwind11.fragment, %unwind11, %entry.unwind_crit_edge, %entry1.fragment, %entry1.fragment312, %entry1, %Unwind, %unwind20.Unwind_crit_edge, %unwind20.fragment.fragment, %unwind20.fragment, %unwind20.fragment311, %unwind20, %invcont15, %invcont14.unwind10_crit_edge, %invcont14, %unwind10.Unwind_crit_edge, %unwind10.fragment, %unwind10.fragment310, %unwind10, %invcont.unwind10_crit_edge, %invcont, %unwind.fragment, %unwind, %entry.fragment, %entry.fragment309, %entry, %NewDefault, %LeafBlock, %LeafBlock914, %NodeBlock, %comb_entry.fragment, %old_entry, %bb_init
66         switch i32 0, label %old_entry [
67                  i32 2739, label %invcont28.fragment
68                  i32 2688, label %meshBB28.fragment
69                  i32 1318, label %meshBB32.fragment
70                  i32 2964, label %unwind53.fragment.fragment
71                  i32 824, label %unwind78.fragment.fragment
72                  i32 1983, label %meshBB33.fragment
73                  i32 2582, label %invcont30.fragment
74                  i32 2235, label %meshBB36.fragment
75                  i32 1275, label %meshBB343
76                  i32 2719, label %invcont.fragment
77                  i32 1500, label %entry1.fragment.fragment
78                  i32 815, label %unwind11.fragment
79                  i32 1051, label %entry
80                  i32 2342, label %unwind
81                  i32 1814, label %invcont
82                  i32 315, label %invcont.unwind10_crit_edge
83                  i32 2422, label %unwind10
84                  i32 2663, label %unwind10.Unwind_crit_edge
85                  i32 266, label %invcont14
86                  i32 367, label %invcont14.unwind10_crit_edge
87                  i32 2242, label %invcont15
88                  i32 452, label %unwind20
89                  i32 419, label %invcont.cond_next_crit_edge
90                  i32 181, label %cond_true
91                  i32 2089, label %unwind20.Unwind_crit_edge
92                  i32 633, label %filter
93                  i32 455, label %Unwind
94                  i32 2016, label %entry1
95                  i32 263, label %invcont33.unwind_crit_edge
96                  i32 2498, label %invcont36
97                  i32 2992, label %unwind37
98                  i32 616, label %entry.unwind_crit_edge
99                  i32 622, label %unwind11
100                  i32 875, label %invcont16
101                  i32 766, label %unwind53.nofilter_crit_edge
102                  i32 668, label %filter62
103                  i32 2138, label %unwind66
104                  i32 713, label %unwind66.Unwind_crit_edge
105                  i32 1422, label %invcont70
106                  i32 1976, label %cond_true.unwind_crit_edge
107                  i32 1263, label %invcont12
108                  i32 2453, label %invcont12.unwind_crit_edge
109                  i32 2876, label %invcont12.cond_next_crit_edge
110                  i32 2271, label %cond_next
111                  i32 2938, label %cond_next.unwind_crit_edge
112                  i32 1082, label %invcont17
113                  i32 531, label %invcont17.unwind_crit_edge
114                  i32 111, label %invcont22
115                  i32 1935, label %invcont22.unwind_crit_edge
116                  i32 2004, label %invcont25
117                  i32 1725, label %invcont25.unwind_crit_edge
118                  i32 1701, label %invcont28
119                  i32 957, label %invcont28.unwind_crit_edge
120                  i32 165, label %invcont30
121                  i32 899, label %invcont30.unwind_crit_edge
122                  i32 1092, label %invcont33
123                  i32 2869, label %unwind37.nofilter_crit_edge
124                  i32 203, label %invcont41
125                  i32 693, label %unwind43
126                  i32 2895, label %unwind43.nofilter_crit_edge
127                  i32 1174, label %invcont47
128                  i32 1153, label %filter19
129                  i32 2304, label %nofilter
130                  i32 848, label %nofilter.Unwind_crit_edge
131                  i32 1207, label %unwind53
132                  i32 2848, label %filter75
133                  i32 59, label %unwind78
134                  i32 1213, label %unwind78.Unwind_crit_edge
135                  i32 2199, label %filter87
136                  i32 1268, label %Unwind20
137                  i32 743, label %old_entry
138                  i32 1276, label %meshBB319
139                  i32 1619, label %meshBB320
140                  i32 2047, label %meshBB331
141                  i32 2828, label %meshBB23.fragment
142                  i32 2530, label %meshBB332
143                  i32 1389, label %meshBB318
144                  i32 1450, label %meshBB317
145                  i32 1416, label %meshBB31.fragment
146                  i32 82, label %meshBB322
147                  i32 853, label %unwind78.fragment316
148                  i32 107, label %meshBB24.fragment
149                  i32 1200, label %meshBB37.fragment
150                  i32 605, label %unwind53.fragment314
151                  i32 209, label %meshBB29.fragment
152                  i32 1513, label %meshBB27.fragment
153                  i32 1542, label %meshBB35.fragment
154                  i32 1873, label %meshBB348
155                  i32 472, label %meshBB325
156                  i32 2615, label %meshBB22.fragment
157                  i32 359, label %meshBB.fragment
158                  i32 2467, label %Unwind20.fragment
159                  i32 1671, label %unwind66.fragment.fragment
160                  i32 1006, label %meshBB25.fragment
161                  i32 1243, label %meshBB333
162                  i32 2795, label %unwind43.fragment313
163                  i32 1591, label %meshBB335
164                  i32 773, label %meshBB341
165                  i32 2440, label %cond_next.fragment
166                  i32 487, label %meshBB326
167                  i32 394, label %meshBB324
168                  i32 14, label %invcont16.fragment
169                  i32 574, label %entry1.fragment312
170                  i32 1453, label %meshBB35
171                  i32 345, label %entry1.fragment
172                  i32 2951, label %unwind20.fragment
173                  i32 1960, label %meshBB31
174                  i32 2163, label %meshBB32
175                  i32 1978, label %Unwind.fragment
176                  i32 1559, label %unwind20.fragment.fragment
177                  i32 950, label %unwind10.fragment
178                  i32 1724, label %unwind53.fragment
179                  i32 514, label %meshBB36
180                  i32 1928, label %unwind10.fragment.fragment
181                  i32 1266, label %meshBB26
182                  i32 3148, label %unwind20.fragment311
183                  i32 1581, label %unwind43.fragment
184                  i32 1829, label %meshBB34
185                  i32 1472, label %meshBB28
186                  i32 2657, label %unwind66.fragment
187                  i32 2169, label %meshBB22
188                  i32 2619, label %meshBB
189                  i32 1397, label %entry.fragment
190                  i32 231, label %invcont41.fragment
191                  i32 2557, label %meshBB338
192                  i32 2387, label %meshBB30.fragment
193                  i32 2927, label %meshBB340
194                  i32 2331, label %meshBB321
195                  i32 47, label %meshBB328
196                  i32 1753, label %meshBB342
197                  i32 2074, label %meshBB323
198                  i32 2128, label %meshBB334
199                  i32 2396, label %meshBB337
200                  i32 1811, label %meshBB29
201                  i32 1113, label %meshBB27
202                  i32 2232, label %unwind10.fragment310
203                  i32 804, label %meshBB24
204                  i32 3099, label %meshBB30
205                  i32 564, label %meshBB33
206                  i32 1359, label %unwind.fragment
207                  i32 1906, label %entry.fragment309
208                  i32 2644, label %entry.fragment.fragment
209                  i32 134, label %entry1.fragment.normaldest
210                  i32 2767, label %comb_entry.fragment
211                  i32 2577, label %meshBB25
212                  i32 3128, label %meshBB37
213                  i32 2360, label %meshBB23
214                  i32 286, label %unwind78.fragment
215                  i32 976, label %meshBB346
216                  i32 2412, label %meshBB339
217                  i32 876, label %meshBB345
218                  i32 3078, label %meshBB329
219                  i32 1297, label %meshBB347
220                  i32 3051, label %meshBB336
221                  i32 1342, label %meshBB344
222                  i32 728, label %meshBB330
223                  i32 1778, label %meshBB349
224                  i32 2784, label %meshBB327
225                  i32 1854, label %meshBB26.fragment
226                  i32 1025, label %meshBB34.fragment
227                  i32 2139, label %unwind43.fragment.fragment
228                  i32 2217, label %nofilter.fragment
229                  i32 665, label %invcont12.fragment
230                  i32 316, label %invcont22.fragment
231                  i32 1467, label %unwind66.fragment315
232                  i32 3018, label %unwind37.fragment
233                  i32 1123, label %invcont17.normaldest
234                  i32 2104, label %NewDefault
235                  i32 1639, label %LeafBlock
236                  i32 925, label %LeafBlock914
237                  i32 2880, label %NodeBlock
238         ]
240 old_entry:              ; preds = %bb_main, %bb_main
241         br label %bb_main
243 comb_entry.fragment:            ; preds = %bb_main
244         br label %bb_main
246 NodeBlock:              ; preds = %bb_main
247         br label %bb_main
249 LeafBlock914:           ; preds = %bb_main
250         br label %bb_main
252 LeafBlock:              ; preds = %bb_main
253         br label %bb_main
255 NewDefault:             ; preds = %bb_main
256         br label %bb_main
258 entry:          ; preds = %bb_main
259         br label %bb_main
261 entry.fragment309:              ; preds = %bb_main
262         br label %bb_main
264 entry.fragment:         ; preds = %bb_main
265         br label %bb_main
267 entry.fragment.fragment:                ; preds = %bb_main
268         invoke void @___ZNSt12_Vector_baseI6BigIntSaIS0_EE13_M_deallocateEPS0_j___ZNSt12_Vector_baseI6BigIntSaIS0_EED2Ev___ZNSt6vectorI6BigIntSaIS0_EEC1ERKS1_( %"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >"* null, i32 28, %struct.BigInt* null, i32 0, %"struct.std::vector<BigInt,std::allocator<BigInt> >"* null, %struct.__false_type* null )
269                         to label %meshBB340 unwind label %meshBB325
271 unwind:         ; preds = %bb_main
272         br label %bb_main
274 unwind.fragment:                ; preds = %bb_main
275         br label %bb_main
277 invcont:                ; preds = %bb_main
278         br label %bb_main
280 invcont.fragment:               ; preds = %bb_main
281         invoke void @_ZN9Fibonacci10get_numberEj( %struct.BigInt* null sret , %struct.Fibonacci* %this_this, i32 %n_i_n_i )
282                         to label %invcont14 unwind label %meshBB37
284 invcont.unwind10_crit_edge:             ; preds = %bb_main
285         br label %bb_main
287 unwind10:               ; preds = %bb_main
288         br label %bb_main
290 unwind10.fragment310:           ; preds = %bb_main
291         br label %bb_main
293 unwind10.fragment:              ; preds = %bb_main
294         br label %bb_main
296 unwind10.fragment.fragment:             ; preds = %bb_main
297         invoke void @___ZNSt6vectorI6BigIntSaIS0_EED1Ev___ZN9FibonacciD1Ev___ZNSt6vectorImSaImEEC1ERKS0_( i32 57, %"struct.std::vector<BigInt,std::allocator<BigInt> >"* null, %struct.Fibonacci* null, %"struct.std::vector<ulong,std::allocator<ulong> >"* null, %struct.__false_type* null )
298                         to label %meshBB329 unwind label %meshBB24
300 unwind10.Unwind_crit_edge:              ; preds = %bb_main
301         br label %bb_main
303 invcont14:              ; preds = %invcont.fragment, %bb_main
304         br label %bb_main
306 invcont14.normaldest:           ; No predecessors!
307         invoke %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* @___ZN9__gnu_cxx17__normal_iteratorIP6BigIntSt6vectorIS1_SaIS1_EEEppEv___ZNSt6vectorImSaImEED1Ev___ZN6BigIntD1Ev___ZN9__gnu_cxx13new_allocatorI6BigIntE7destroyEPS1____ZSt8_DestroyIP6BigIntSaIS0_EEvT_S3_T0_( i32 14, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* null, %"struct.std::vector<ulong,std::allocator<ulong> >"* null, %struct.BigInt* null, %struct.__false_type* null, %struct.BigInt* null, %struct.__false_type* null noalias  )
308                         to label %invcont15 unwind label %meshBB345             ; <%"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*>:0 [#uses=0]
310 invcont14.unwind10_crit_edge:           ; preds = %bb_main
311         br label %bb_main
313 invcont15:              ; preds = %invcont14.normaldest, %bb_main
314         br label %bb_main
316 invcont15.normaldest:           ; No predecessors!
317         br label %UnifiedReturnBlock
319 unwind20:               ; preds = %bb_main
320         br label %bb_main
322 unwind20.fragment311:           ; preds = %bb_main
323         br label %bb_main
325 unwind20.fragment:              ; preds = %bb_main
326         br label %bb_main
328 unwind20.fragment.fragment:             ; preds = %bb_main
329         br label %bb_main
331 unwind20.Unwind_crit_edge:              ; preds = %bb_main
332         br label %bb_main
334 filter:         ; preds = %bb_main
335         br label %UnifiedUnreachableBlock
337 Unwind:         ; preds = %bb_main
338         br label %bb_main
340 Unwind.fragment:                ; preds = %bb_main
341         br label %UnifiedUnreachableBlock
343 entry1:         ; preds = %bb_main
344         br label %bb_main
346 entry1.fragment312:             ; preds = %bb_main
347         br label %bb_main
349 entry1.fragment:                ; preds = %bb_main
350         br label %bb_main
352 entry1.fragment.fragment:               ; preds = %bb_main
353         %tmp52 = invoke i32 @___ZN9__gnu_cxxmiIPK6BigIntS3_St6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T1_E15difference_typeERKSA_RKNS7_IT0_S9_EE___ZNKSt6vectorI6BigIntSaIS0_EE4sizeEv___ZNK9Fibonacci16show_all_numbersEv___ZNKSt6vectorI6BigIntSaIS0_EE8capacityEv( %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* null, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* null, %"struct.std::vector<BigInt,std::allocator<BigInt> >"* null, i32 16, %struct.Fibonacci* null )
354                         to label %entry1.fragment.normaldest unwind label %meshBB320            ; <i32> [#uses=0]
356 entry.unwind_crit_edge:         ; preds = %bb_main
357         br label %bb_main
359 unwind11:               ; preds = %bb_main
360         br label %bb_main
362 unwind11.fragment:              ; preds = %bb_main
363         br label %bb_main
365 invcont16:              ; preds = %bb_main
366         br label %bb_main
368 invcont16.fragment:             ; preds = %bb_main
369         br label %bb_main
371 invcont.cond_next_crit_edge:            ; preds = %bb_main
372         br label %bb_main
374 cond_true:              ; preds = %bb_main
375         invoke void @_ZN9Fibonacci10get_numberEj( %struct.BigInt* null sret , %struct.Fibonacci* %this_this, i32 %n_i_n_i )
376                         to label %meshBB323 unwind label %cond_true.unwind_crit_edge
378 cond_true.unwind_crit_edge:             ; preds = %cond_true, %bb_main
379         br label %bb_main
381 cond_true.unwind_crit_edge.unwinddest:          ; No predecessors!
382         br label %bb_main
384 invcont12:              ; preds = %bb_main
385         br label %bb_main
387 invcont12.fragment:             ; preds = %bb_main
388         invoke %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* @___ZN9__gnu_cxx17__normal_iteratorIP6BigIntSt6vectorIS1_SaIS1_EEEppEv___ZNSt6vectorImSaImEED1Ev___ZN6BigIntD1Ev___ZN9__gnu_cxx13new_allocatorI6BigIntE7destroyEPS1____ZSt8_DestroyIP6BigIntSaIS0_EEvT_S3_T0_( i32 14, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* null, %"struct.std::vector<ulong,std::allocator<ulong> >"* null, %struct.BigInt* null, %struct.__false_type* null, %struct.BigInt* null, %struct.__false_type* null noalias  )
389                         to label %meshBB30 unwind label %meshBB337              ; <%"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*>:1 [#uses=0]
391 invcont12.unwind_crit_edge:             ; preds = %bb_main
392         br label %bb_main
394 invcont12.cond_next_crit_edge:          ; preds = %bb_main
395         br label %bb_main
397 cond_next:              ; preds = %bb_main
398         br label %bb_main
400 cond_next.fragment:             ; preds = %bb_main
401         %tmp183 = invoke %struct.BigInt* @___ZNSt6vectorI6BigIntSaIS0_EEixEj___ZNSt6vectorI6BigIntSaIS0_EE3endEv( %"struct.std::vector<BigInt,std::allocator<BigInt> >"* null, i32 %n_i_n_i, i32 29 )
402                         to label %invcont17 unwind label %meshBB336             ; <%struct.BigInt*> [#uses=0]
404 cond_next.unwind_crit_edge:             ; preds = %bb_main
405         br label %bb_main
407 invcont17:              ; preds = %cond_next.fragment, %bb_main
408         br label %bb_main
410 invcont17.normaldest917:                ; No predecessors!
411         %tmp23 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc( %"struct.std::basic_ostream<char,std::char_traits<char> >"* null, i8* getelementptr ([6 x i8]* @.str13, i32 0, i32 0) )
412                         to label %invcont17.normaldest unwind label %meshBB318          ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
414 invcont17.unwind_crit_edge:             ; preds = %bb_main
415         br label %bb_main
417 invcont22:              ; preds = %bb_main
418         br label %bb_main
420 invcont22.fragment:             ; preds = %bb_main
421         %tmp26 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEm( %"struct.std::basic_ostream<char,std::char_traits<char> >"* undef, i32 %n_i_n_i )
422                         to label %invcont25 unwind label %meshBB319             ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
424 invcont22.unwind_crit_edge:             ; preds = %bb_main
425         br label %bb_main
427 invcont25:              ; preds = %invcont22.fragment, %bb_main
428         br label %bb_main
430 invcont25.normaldest:           ; No predecessors!
431         %tmp2918 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc( %"struct.std::basic_ostream<char,std::char_traits<char> >"* %tmp26, i8* getelementptr ([5 x i8]* @.str14, i32 0, i32 0) )
432                         to label %invcont28 unwind label %invcont25.unwind_crit_edge            ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
434 invcont25.unwind_crit_edge:             ; preds = %invcont25.normaldest, %bb_main
435         br label %bb_main
437 invcont25.unwind_crit_edge.unwinddest:          ; No predecessors!
438         br label %bb_main
440 invcont28:              ; preds = %invcont25.normaldest, %bb_main
441         br label %bb_main
443 invcont28.normaldest:           ; No predecessors!
444         br label %bb_main
446 invcont28.fragment:             ; preds = %bb_main
447         %tmp311 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @___ZlsRSoRK6BigInt___ZN9__gnu_cxx13new_allocatorI6BigIntE10deallocateEPS1_j( i32 32, %"struct.std::basic_ostream<char,std::char_traits<char> >"* undef, %struct.BigInt* undef, %struct.__false_type* null, i32 0 )
448                         to label %invcont30 unwind label %meshBB322             ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
450 invcont28.unwind_crit_edge:             ; preds = %bb_main
451         br label %bb_main
453 invcont30:              ; preds = %invcont28.fragment, %bb_main
454         br label %bb_main
456 invcont30.normaldest:           ; No predecessors!
457         br label %bb_main
459 invcont30.fragment:             ; preds = %bb_main
460         %tmp34 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc( %"struct.std::basic_ostream<char,std::char_traits<char> >"* undef, i8* getelementptr ([2 x i8]* @.str15, i32 0, i32 0) )
461                         to label %meshBB26 unwind label %invcont30.unwind_crit_edge             ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
463 invcont30.unwind_crit_edge:             ; preds = %invcont30.fragment, %bb_main
464         br label %bb_main
466 invcont30.unwind_crit_edge.unwinddest:          ; No predecessors!
467         br label %bb_main
469 invcont33:              ; preds = %bb_main
470         invoke void @_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv( %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* null sret , %"struct.std::ostringstream"* null )
471                         to label %invcont36 unwind label %invcont33.unwind_crit_edge
473 invcont33.unwind_crit_edge:             ; preds = %invcont33, %bb_main
474         br label %bb_main
476 invcont33.unwind_crit_edge.unwinddest:          ; No predecessors!
477         br label %bb_main
479 invcont36:              ; preds = %invcont33, %bb_main
480         br label %bb_main
482 invcont36.normaldest:           ; No predecessors!
483         %tmp42 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E( %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZSt4cout, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* null )
484                         to label %invcont41 unwind label %meshBB338             ; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
486 unwind37:               ; preds = %bb_main
487         br label %bb_main
489 unwind37.fragment:              ; preds = %bb_main
490         invoke void @_ZNSsD1Ev( %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* null )
491                         to label %meshBB330 unwind label %meshBB22
493 unwind37.nofilter_crit_edge:            ; preds = %bb_main
494         br label %bb_main
496 invcont41:              ; preds = %invcont36.normaldest, %bb_main
497         br label %bb_main
499 invcont41.normaldest:           ; No predecessors!
500         br label %bb_main
502 invcont41.fragment:             ; preds = %bb_main
503         invoke void @_ZNSsD1Ev( %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* null )
504                         to label %meshBB23 unwind label %meshBB29
506 unwind43:               ; preds = %bb_main
507         br label %bb_main
509 unwind43.fragment313:           ; preds = %bb_main
510         br label %bb_main
512 unwind43.fragment:              ; preds = %bb_main
513         br label %bb_main
515 unwind43.fragment.fragment:             ; preds = %bb_main
516         br label %bb_main
518 unwind43.nofilter_crit_edge:            ; preds = %bb_main
519         br label %bb_main
521 invcont47:              ; preds = %bb_main
522         invoke void @_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev( %"struct.std::ostringstream"* null )
523                         to label %invcont70 unwind label %meshBB28
525 filter19:               ; preds = %bb_main
526         br label %UnifiedUnreachableBlock
528 nofilter:               ; preds = %bb_main
529         br label %bb_main
531 nofilter.fragment:              ; preds = %bb_main
532         invoke void @_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev( %"struct.std::ostringstream"* null )
533                         to label %nofilter.Unwind_crit_edge unwind label %meshBB
535 nofilter.Unwind_crit_edge:              ; preds = %nofilter.fragment, %bb_main
536         br label %bb_main
538 nofilter.Unwind_crit_edge.normaldest:           ; No predecessors!
539         br label %bb_main
541 unwind53:               ; preds = %bb_main
542         br label %bb_main
544 unwind53.fragment314:           ; preds = %bb_main
545         br label %bb_main
547 unwind53.fragment:              ; preds = %bb_main
548         br label %bb_main
550 unwind53.fragment.fragment:             ; preds = %bb_main
551         br label %bb_main
553 unwind53.nofilter_crit_edge:            ; preds = %bb_main
554         br label %bb_main
556 filter62:               ; preds = %bb_main
557         br label %UnifiedUnreachableBlock
559 unwind66:               ; preds = %bb_main
560         br label %bb_main
562 unwind66.fragment315:           ; preds = %bb_main
563         br label %bb_main
565 unwind66.fragment:              ; preds = %bb_main
566         br label %bb_main
568 unwind66.fragment.fragment:             ; preds = %bb_main
569         br label %bb_main
571 unwind66.Unwind_crit_edge:              ; preds = %bb_main
572         br label %bb_main
574 invcont70:              ; preds = %invcont47, %bb_main
575         br label %bb_main
577 invcont70.normaldest:           ; No predecessors!
578         br label %UnifiedReturnBlock
580 filter75:               ; preds = %bb_main
581         br label %UnifiedUnreachableBlock
583 unwind78:               ; preds = %bb_main
584         br label %bb_main
586 unwind78.fragment316:           ; preds = %bb_main
587         br label %bb_main
589 unwind78.fragment:              ; preds = %bb_main
590         br label %bb_main
592 unwind78.fragment.fragment:             ; preds = %bb_main
593         br label %bb_main
595 unwind78.Unwind_crit_edge:              ; preds = %bb_main
596         br label %bb_main
598 filter87:               ; preds = %bb_main
599         br label %UnifiedUnreachableBlock
601 Unwind20:               ; preds = %bb_main
602         br label %bb_main
604 Unwind20.fragment:              ; preds = %bb_main
605         br label %UnifiedUnreachableBlock
607 meshBB:         ; preds = %nofilter.fragment, %bb_main
608         br label %bb_main
610 meshBB.unwinddest:              ; No predecessors!
611         br label %bb_main
613 meshBB.fragment:                ; preds = %bb_main
614         br label %bb_main
616 meshBB22:               ; preds = %unwind37.fragment, %bb_main
617         br label %bb_main
619 meshBB22.unwinddest:            ; No predecessors!
620         br label %bb_main
622 meshBB22.fragment:              ; preds = %bb_main
623         br label %bb_main
625 entry1.fragment.normaldest:             ; preds = %entry1.fragment.fragment, %bb_main
626         br label %bb_main
628 entry1.fragment.normaldest.normaldest:          ; No predecessors!
629         br label %bb_main
631 meshBB23:               ; preds = %invcont41.fragment, %bb_main
632         br label %bb_main
634 meshBB23.normaldest:            ; No predecessors!
635         br label %bb_main
637 meshBB23.fragment:              ; preds = %bb_main
638         br label %bb_main
640 meshBB24:               ; preds = %unwind10.fragment.fragment, %bb_main
641         br label %bb_main
643 meshBB24.unwinddest:            ; No predecessors!
644         br label %bb_main
646 meshBB24.fragment:              ; preds = %bb_main
647         br label %bb_main
649 meshBB25:               ; preds = %bb_main
650         br label %bb_main
652 meshBB25.fragment:              ; preds = %bb_main
653         br label %bb_main
655 meshBB26:               ; preds = %invcont30.fragment, %bb_main
656         br label %bb_main
658 meshBB26.normaldest:            ; No predecessors!
659         br label %bb_main
661 meshBB26.fragment:              ; preds = %bb_main
662         br label %bb_main
664 meshBB27:               ; preds = %bb_main
665         br label %bb_main
667 meshBB27.fragment:              ; preds = %bb_main
668         br label %bb_main
670 meshBB28:               ; preds = %invcont47, %bb_main
671         br label %bb_main
673 meshBB28.unwinddest:            ; No predecessors!
674         br label %bb_main
676 meshBB28.fragment:              ; preds = %bb_main
677         br label %bb_main
679 meshBB29:               ; preds = %invcont41.fragment, %bb_main
680         br label %bb_main
682 meshBB29.unwinddest:            ; No predecessors!
683         br label %bb_main
685 meshBB29.fragment:              ; preds = %bb_main
686         br label %bb_main
688 meshBB30:               ; preds = %invcont12.fragment, %bb_main
689         br label %bb_main
691 meshBB30.normaldest:            ; No predecessors!
692         br label %bb_main
694 meshBB30.fragment:              ; preds = %bb_main
695         br label %bb_main
697 meshBB31:               ; preds = %bb_main
698         br label %bb_main
700 meshBB31.fragment:              ; preds = %bb_main
701         br label %bb_main
703 meshBB32:               ; preds = %bb_main
704         br label %bb_main
706 meshBB32.fragment:              ; preds = %bb_main
707         br label %bb_main
709 meshBB33:               ; preds = %bb_main
710         br label %bb_main
712 meshBB33.fragment:              ; preds = %bb_main
713         br label %bb_main
715 meshBB34:               ; preds = %bb_main
716         br label %bb_main
718 meshBB34.fragment:              ; preds = %bb_main
719         br label %bb_main
721 meshBB35:               ; preds = %bb_main
722         br label %bb_main
724 meshBB35.fragment:              ; preds = %bb_main
725         br label %bb_main
727 meshBB36:               ; preds = %bb_main
728         br label %bb_main
730 meshBB36.fragment:              ; preds = %bb_main
731         br label %bb_main
733 meshBB37:               ; preds = %invcont.fragment, %bb_main
734         br label %bb_main
736 meshBB37.unwinddest:            ; No predecessors!
737         br label %bb_main
739 meshBB37.fragment:              ; preds = %bb_main
740         br label %bb_main
742 meshBB317:              ; preds = %bb_main
743         br label %bb_main
745 meshBB318:              ; preds = %invcont17.normaldest917, %bb_main
746         br label %bb_main
748 meshBB318.unwinddest:           ; No predecessors!
749         br label %bb_main
751 meshBB319:              ; preds = %invcont22.fragment, %bb_main
752         br label %bb_main
754 meshBB319.unwinddest:           ; No predecessors!
755         br label %bb_main
757 meshBB320:              ; preds = %entry1.fragment.fragment, %bb_main
758         br label %bb_main
760 meshBB320.unwinddest:           ; No predecessors!
761         br label %bb_main
763 meshBB321:              ; preds = %bb_main
764         br label %bb_main
766 meshBB322:              ; preds = %invcont28.fragment, %bb_main
767         br label %bb_main
769 meshBB322.unwinddest:           ; No predecessors!
770         br label %bb_main
772 meshBB323:              ; preds = %cond_true, %bb_main
773         br label %bb_main
775 meshBB323.normaldest:           ; No predecessors!
776         br label %bb_main
778 meshBB324:              ; preds = %bb_main
779         br label %bb_main
781 meshBB325:              ; preds = %entry.fragment.fragment, %bb_main
782         br label %bb_main
784 meshBB325.unwinddest:           ; No predecessors!
785         br label %bb_main
787 meshBB326:              ; preds = %bb_main
788         br label %bb_main
790 meshBB327:              ; preds = %bb_main
791         br label %bb_main
793 meshBB328:              ; preds = %bb_main
794         br label %bb_main
796 meshBB329:              ; preds = %unwind10.fragment.fragment, %bb_main
797         br label %bb_main
799 meshBB329.normaldest:           ; No predecessors!
800         br label %bb_main
802 meshBB330:              ; preds = %unwind37.fragment, %bb_main
803         br label %bb_main
805 meshBB330.normaldest:           ; No predecessors!
806         br label %bb_main
808 meshBB331:              ; preds = %bb_main
809         br label %bb_main
811 meshBB332:              ; preds = %bb_main
812         br label %bb_main
814 meshBB333:              ; preds = %bb_main
815         br label %bb_main
817 meshBB334:              ; preds = %bb_main
818         br label %bb_main
820 meshBB335:              ; preds = %bb_main
821         br label %bb_main
823 meshBB336:              ; preds = %cond_next.fragment, %bb_main
824         br label %bb_main
826 meshBB336.unwinddest:           ; No predecessors!
827         br label %bb_main
829 meshBB337:              ; preds = %invcont12.fragment, %bb_main
830         br label %bb_main
832 meshBB337.unwinddest:           ; No predecessors!
833         br label %bb_main
835 meshBB338:              ; preds = %invcont36.normaldest, %bb_main
836         br label %bb_main
838 meshBB338.unwinddest:           ; No predecessors!
839         br label %bb_main
841 invcont17.normaldest:           ; preds = %invcont17.normaldest917, %bb_main
842         br label %bb_main
844 invcont17.normaldest.normaldest:                ; No predecessors!
845         store %"struct.std::basic_ostream<char,std::char_traits<char> >"* %tmp23, %"struct.std::basic_ostream<char,std::char_traits<char> >"** undef
846         br label %bb_main
848 meshBB339:              ; preds = %bb_main
849         br label %bb_main
851 meshBB340:              ; preds = %entry.fragment.fragment, %bb_main
852         br label %bb_main
854 meshBB340.normaldest:           ; No predecessors!
855         br label %bb_main
857 meshBB341:              ; preds = %bb_main
858         br label %bb_main
860 meshBB342:              ; preds = %bb_main
861         br label %bb_main
863 meshBB343:              ; preds = %bb_main
864         br label %bb_main
866 meshBB344:              ; preds = %bb_main
867         br label %bb_main
869 meshBB345:              ; preds = %invcont14.normaldest, %bb_main
870         br label %bb_main
872 meshBB345.unwinddest:           ; No predecessors!
873         br label %bb_main
875 meshBB346:              ; preds = %bb_main
876         br label %bb_main
878 meshBB347:              ; preds = %bb_main
879         br label %bb_main
881 meshBB348:              ; preds = %bb_main
882         br label %bb_main
884 meshBB349:              ; preds = %bb_main
885         br label %bb_main
887 UnifiedUnreachableBlock:                ; preds = %Unwind20.fragment, %filter87, %filter75, %filter62, %filter19, %Unwind.fragment, %filter
888         unreachable
890 UnifiedReturnBlock:             ; preds = %invcont70.normaldest, %invcont15.normaldest
891         ret void