Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
IR + passes for Sequel's _transaction method
2015-05-28T14:11:20.726-05:00: IRScope: nested_ensures.rb:0 _transaction
0 %self = recv_self()
1 %v_0 = load_implicit_closure()
2 %current_scope = copy(scope<0>)
3 %current_module = copy(module<0>)
4 check_arity(;req: 1, opt: 1, *r: false, kw: false)
5 conn(0:0) = recv_pre_reqd_arg()
6 opts(0:1) = recv_opt_arg(;index:0, req: 1, pre: 1)
7 bne(LBL_0:11, opts(0:1), %undefined)
8 %v_3 = search_const(%current_scope ;name: OPTS, no_priv: false)
9 opts(0:1) = copy(%v_3)
10 label(LBL_0:11)
11 line_num(;n: 1)
12 %v_4 = call_1o(opts(0:1), :'rollback' ;n:[], t:NO, cl:false)
13 rollback(0:2) = copy(%v_4)
14 line_num(;n: 2)
15 %v_5 = get_global_var($!)
16 label(LBL_1:19)
17 exc_region_start(LBL_4:405)
18 label(LBL_1:19)
19 exc_region_start(LBL_29:239)
20 line_num(;n: 4)
21 %v_31 = call(%self, conn(0:0), opts(0:1) ;n:add_transaction, t:FU, cl:false)
22 line_num(;n: 5)
23 %v_32 = call(%self, conn(0:0), opts(0:1) ;n:begin_transaction, t:FU, cl:false)
24 line_num(;n: 6)
25 %v_33 = call_1o(rollback(0:2), :'always' ;n:==, t:NO, cl:false)
26 b_false(LBL_30:118, %v_33)
27 line_num(;n: 7)
28 %v_34 = get_global_var($!)
29 label(LBL_32:32)
30 exc_region_start(LBL_35:95)
31 label(LBL_32:32)
32 exc_region_start(LBL_40:60)
33 line_num(;n: 9)
34 %v_40 = yield(%v_0, conn(0:0) ;unwrap: false)
35 ret(0:3) = copy(%v_40)
36 exc_region_end()
37 %v_39 = copy(%v_40)
38 label(LBL_41:39)
39 exc_region_start(LBL_29:239)
40 put_global_var($!, %v_34)
41 line_num(;n: 15)
42 b_false(LBL_42:46, e1(0:4))
43 %v_35 = copy(nil)
44 jump(LBL_45:57)
45 label(LBL_42:46)
46 %v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
47 bne(LBL_43:50, %v_36, %undefined)
48 %v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
49 label(LBL_43:50)
50 %v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
51 bne(LBL_44:54, %v_37, %undefined)
52 %v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
53 label(LBL_44:54)
54 %v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
55 %v_35 = copy(%v_38)
56 label(LBL_45:57)
57 exc_region_end()
58 jump(LBL_34:116)
59 label(LBL_40:60)
60 %v_41 = recv_ruby_exc()
61 %v_42 = search_const(%current_scope ;name: Exception, no_priv: false)
62 %v_43 = rescue_eqq(Array:[%v_42], %v_41)
63 b_true(LBL_47:67, %v_43)
64 label(LBL_46:65)
65 throw(%v_41)
66 label(LBL_47:67)
67 %v_44 = get_global_var($!)
68 e1(0:4) = copy(%v_44)
69 line_num(;n: 12)
70 %v_45 = call_1o(%self, e1(0:4) ;n:raise, t:FU, cl:false)
71 %v_39 = copy(%v_45)
72 label(LBL_48:73)
73 exc_region_start(LBL_29:239)
74 put_global_var($!, %v_34)
75 line_num(;n: 15)
76 b_false(LBL_49:80, e1(0:4))
77 %v_35 = copy(nil)
78 jump(LBL_52:91)
79 label(LBL_49:80)
80 %v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
81 bne(LBL_50:84, %v_36, %undefined)
82 %v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
83 label(LBL_50:84)
84 %v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
85 bne(LBL_51:88, %v_37, %undefined)
86 %v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
87 label(LBL_51:88)
88 %v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
89 %v_35 = copy(%v_38)
90 label(LBL_52:91)
91 exc_region_end()
92 jump(LBL_34:116)
93 exc_region_end()
94 label(LBL_35:95)
95 %v_46 = recv_jruby_exc()
96 label(LBL_33:97)
97 put_global_var($!, %v_34)
98 line_num(;n: 15)
99 b_false(LBL_36:103, e1(0:4))
100 %v_35 = copy(nil)
101 jump(LBL_37:114)
102 label(LBL_36:103)
103 %v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
104 bne(LBL_38:107, %v_36, %undefined)
105 %v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
106 label(LBL_38:107)
107 %v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
108 bne(LBL_39:111, %v_37, %undefined)
109 %v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
110 label(LBL_39:111)
111 %v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
112 %v_35 = copy(%v_38)
113 label(LBL_37:114)
114 throw(%v_46)
115 label(LBL_34:116)
116 jump(LBL_31:122)
117 label(LBL_30:118)
118 line_num(;n: 19)
119 %v_47 = yield(%v_0, conn(0:0) ;unwrap: false)
120 %v_39 = copy(%v_47)
121 label(LBL_31:122)
122 exc_region_end()
123 %v_30 = copy(%v_39)
124 label(LBL_53:125)
125 exc_region_start(UNRESCUED_REGION_0:-1)
126 put_global_var($!, %v_5)
127 line_num(;n: 34)
128 %v_6 = get_global_var($!)
129 label(LBL_55:132)
130 exc_region_start(LBL_77:229)
131 label(LBL_55:132)
132 exc_region_start(LBL_57:146)
133 line_num(;n: 36)
134 %v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
135 committed(0:6) = copy(%v_9)
136 exc_region_end()
137 %v_8 = copy(%v_9)
138 label(LBL_56:139)
139 exc_region_start(UNRESCUED_REGION_0:-1)
140 put_global_var($!, %v_6)
141 line_num(;n: 52)
142 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
143 exc_region_end()
144 jump(LBL_79:236)
145 label(LBL_57:146)
146 %v_10 = recv_ruby_exc()
147 %v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
148 %v_12 = rescue_eqq(Array:[%v_11], %v_10)
149 b_true(LBL_59:153, %v_12)
150 label(LBL_58:151)
151 throw(%v_10)
152 label(LBL_59:153)
153 %v_13 = get_global_var($!)
154 e2(0:7) = copy(%v_13)
155 line_num(;n: 39)
156 %v_14 = get_global_var($!)
157 label(LBL_61:160)
158 exc_region_start(LBL_73:214)
159 label(LBL_61:160)
160 exc_region_start(LBL_63:173)
161 line_num(;n: 40)
162 %v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
163 %v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
164 %v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
165 exc_region_end()
166 %v_15 = copy(%v_18)
167 label(LBL_62:168)
168 exc_region_start(LBL_77:229)
169 put_global_var($!, %v_14)
170 exc_region_end()
171 jump(LBL_75:219)
172 label(LBL_63:173)
173 %v_19 = recv_ruby_exc()
174 %v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
175 %v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
176 bne(LBL_64:179, %v_21, %undefined)
177 %v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
178 label(LBL_64:179)
179 %v_22 = rescue_eqq(Array:[%v_21], %v_19)
180 b_true(LBL_66:184, %v_22)
181 label(LBL_65:182)
182 throw(%v_19)
183 label(LBL_66:184)
184 %v_23 = get_global_var($!)
185 e4(0:8) = copy(%v_23)
186 line_num(;n: 43)
187 %v_24 = get_global_var($!)
188 label(LBL_67:189)
189 exc_region_start(LBL_69:200)
190 line_num(;n: 44)
191 %v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
192 exc_region_end()
193 label(LBL_68:194)
194 exc_region_start(LBL_73:214)
195 line_num(;n: 47)
196 %v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
197 exc_region_end()
198 jump(LBL_71:206)
199 label(LBL_69:200)
200 %v_27 = recv_jruby_exc()
201 label(LBL_70:202)
202 line_num(;n: 47)
203 %v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
204 throw(%v_27)
205 label(LBL_71:206)
206 %v_15 = copy(%v_26)
207 label(LBL_72:208)
208 exc_region_start(LBL_77:229)
209 put_global_var($!, %v_14)
210 exc_region_end()
211 jump(LBL_75:219)
212 exc_region_end()
213 label(LBL_73:214)
214 %v_28 = recv_jruby_exc()
215 label(LBL_74:216)
216 put_global_var($!, %v_14)
217 throw(%v_28)
218 label(LBL_75:219)
219 %v_8 = copy(%v_15)
220 label(LBL_76:221)
221 exc_region_start(UNRESCUED_REGION_0:-1)
222 put_global_var($!, %v_6)
223 line_num(;n: 52)
224 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
225 exc_region_end()
226 jump(LBL_79:236)
227 exc_region_end()
228 label(LBL_77:229)
229 %v_29 = recv_jruby_exc()
230 label(LBL_78:231)
231 put_global_var($!, %v_6)
232 line_num(;n: 52)
233 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
234 throw(%v_29)
235 label(LBL_79:236)
236 exc_region_end()
237 jump(LBL_3:519)
238 label(LBL_29:239)
239 %v_48 = recv_ruby_exc()
240 %v_49 = search_const(%current_scope ;name: Exception, no_priv: false)
241 %v_50 = rescue_eqq(Array:[%v_49], %v_48)
242 b_true(LBL_81:246, %v_50)
243 label(LBL_80:244)
244 throw(%v_48)
245 label(LBL_81:246)
246 %v_51 = get_global_var($!)
247 e(0:5) = copy(%v_51)
248 line_num(;n: 23)
249 %v_52 = get_global_var($!)
250 label(LBL_82:253)
251 exc_region_start(LBL_85:279)
252 label(LBL_82:253)
253 exc_region_start(LBL_86:264)
254 line_num(;n: 25)
255 %v_54 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
256 exc_region_end()
257 %v_53 = copy(%v_54)
258 label(LBL_87:259)
259 exc_region_start(LBL_4:405)
260 put_global_var($!, %v_52)
261 exc_region_end()
262 jump(LBL_84:284)
263 label(LBL_86:264)
264 %v_55 = recv_ruby_exc()
265 %v_56 = search_const(%current_scope ;name: Exception, no_priv: false)
266 %v_57 = rescue_eqq(Array:[%v_56], %v_55)
267 b_true(LBL_89:271, %v_57)
268 label(LBL_88:269)
269 throw(%v_55)
270 label(LBL_89:271)
271 %v_53 = copy(nil)
272 label(LBL_90:273)
273 exc_region_start(LBL_4:405)
274 put_global_var($!, %v_52)
275 exc_region_end()
276 jump(LBL_84:284)
277 exc_region_end()
278 label(LBL_85:279)
279 %v_58 = recv_jruby_exc()
280 label(LBL_83:281)
281 put_global_var($!, %v_52)
282 throw(%v_58)
283 label(LBL_84:284)
284 line_num(;n: 30)
285 %v_59 = copy({:'conn'=>conn(0:0), :'rollback'=>rollback(0:2)})
286 %v_60 = call(%self, e(0:5), %v_59 ;n:transaction_error, t:FU, cl:false)
287 line_num(;n: 31)
288 %v_30 = copy(ret(0:3))
289 label(LBL_91:290)
290 exc_region_start(UNRESCUED_REGION_0:-1)
291 put_global_var($!, %v_5)
292 line_num(;n: 34)
293 %v_6 = get_global_var($!)
294 label(LBL_93:297)
295 exc_region_start(LBL_115:394)
296 label(LBL_93:297)
297 exc_region_start(LBL_95:311)
298 line_num(;n: 36)
299 %v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
300 committed(0:6) = copy(%v_9)
301 exc_region_end()
302 %v_8 = copy(%v_9)
303 label(LBL_94:304)
304 exc_region_start(UNRESCUED_REGION_0:-1)
305 put_global_var($!, %v_6)
306 line_num(;n: 52)
307 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
308 exc_region_end()
309 jump(LBL_117:401)
310 label(LBL_95:311)
311 %v_10 = recv_ruby_exc()
312 %v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
313 %v_12 = rescue_eqq(Array:[%v_11], %v_10)
314 b_true(LBL_97:318, %v_12)
315 label(LBL_96:316)
316 throw(%v_10)
317 label(LBL_97:318)
318 %v_13 = get_global_var($!)
319 e2(0:7) = copy(%v_13)
320 line_num(;n: 39)
321 %v_14 = get_global_var($!)
322 label(LBL_99:325)
323 exc_region_start(LBL_111:379)
324 label(LBL_99:325)
325 exc_region_start(LBL_101:338)
326 line_num(;n: 40)
327 %v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
328 %v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
329 %v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
330 exc_region_end()
331 %v_15 = copy(%v_18)
332 label(LBL_100:333)
333 exc_region_start(LBL_115:394)
334 put_global_var($!, %v_14)
335 exc_region_end()
336 jump(LBL_113:384)
337 label(LBL_101:338)
338 %v_19 = recv_ruby_exc()
339 %v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
340 %v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
341 bne(LBL_102:344, %v_21, %undefined)
342 %v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
343 label(LBL_102:344)
344 %v_22 = rescue_eqq(Array:[%v_21], %v_19)
345 b_true(LBL_104:349, %v_22)
346 label(LBL_103:347)
347 throw(%v_19)
348 label(LBL_104:349)
349 %v_23 = get_global_var($!)
350 e4(0:8) = copy(%v_23)
351 line_num(;n: 43)
352 %v_24 = get_global_var($!)
353 label(LBL_105:354)
354 exc_region_start(LBL_107:365)
355 line_num(;n: 44)
356 %v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
357 exc_region_end()
358 label(LBL_106:359)
359 exc_region_start(LBL_111:379)
360 line_num(;n: 47)
361 %v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
362 exc_region_end()
363 jump(LBL_109:371)
364 label(LBL_107:365)
365 %v_27 = recv_jruby_exc()
366 label(LBL_108:367)
367 line_num(;n: 47)
368 %v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
369 throw(%v_27)
370 label(LBL_109:371)
371 %v_15 = copy(%v_26)
372 label(LBL_110:373)
373 exc_region_start(LBL_115:394)
374 put_global_var($!, %v_14)
375 exc_region_end()
376 jump(LBL_113:384)
377 exc_region_end()
378 label(LBL_111:379)
379 %v_28 = recv_jruby_exc()
380 label(LBL_112:381)
381 put_global_var($!, %v_14)
382 throw(%v_28)
383 label(LBL_113:384)
384 %v_8 = copy(%v_15)
385 label(LBL_114:386)
386 exc_region_start(UNRESCUED_REGION_0:-1)
387 put_global_var($!, %v_6)
388 line_num(;n: 52)
389 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
390 exc_region_end()
391 jump(LBL_117:401)
392 exc_region_end()
393 label(LBL_115:394)
394 %v_29 = recv_jruby_exc()
395 label(LBL_116:396)
396 put_global_var($!, %v_6)
397 line_num(;n: 52)
398 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
399 throw(%v_29)
400 label(LBL_117:401)
401 exc_region_end()
402 jump(LBL_3:519)
403 exc_region_end()
404 label(LBL_4:405)
405 %v_61 = recv_jruby_exc()
406 label(LBL_2:407)
407 put_global_var($!, %v_5)
408 line_num(;n: 34)
409 %v_6 = get_global_var($!)
410 label(LBL_5:413)
411 exc_region_start(LBL_8:510)
412 label(LBL_5:413)
413 exc_region_start(LBL_9:427)
414 line_num(;n: 36)
415 %v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
416 committed(0:6) = copy(%v_9)
417 exc_region_end()
418 %v_8 = copy(%v_9)
419 label(LBL_10:420)
420 exc_region_start(UNRESCUED_REGION_0:-1)
421 put_global_var($!, %v_6)
422 line_num(;n: 52)
423 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
424 exc_region_end()
425 jump(LBL_7:517)
426 label(LBL_9:427)
427 %v_10 = recv_ruby_exc()
428 %v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
429 %v_12 = rescue_eqq(Array:[%v_11], %v_10)
430 b_true(LBL_12:434, %v_12)
431 label(LBL_11:432)
432 throw(%v_10)
433 label(LBL_12:434)
434 %v_13 = get_global_var($!)
435 e2(0:7) = copy(%v_13)
436 line_num(;n: 39)
437 %v_14 = get_global_var($!)
438 label(LBL_13:441)
439 exc_region_start(LBL_16:495)
440 label(LBL_13:441)
441 exc_region_start(LBL_17:454)
442 line_num(;n: 40)
443 %v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
444 %v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
445 %v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
446 exc_region_end()
447 %v_15 = copy(%v_18)
448 label(LBL_18:449)
449 exc_region_start(LBL_8:510)
450 put_global_var($!, %v_14)
451 exc_region_end()
452 jump(LBL_15:500)
453 label(LBL_17:454)
454 %v_19 = recv_ruby_exc()
455 %v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
456 %v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
457 bne(LBL_21:460, %v_21, %undefined)
458 %v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
459 label(LBL_21:460)
460 %v_22 = rescue_eqq(Array:[%v_21], %v_19)
461 b_true(LBL_20:465, %v_22)
462 label(LBL_19:463)
463 throw(%v_19)
464 label(LBL_20:465)
465 %v_23 = get_global_var($!)
466 e4(0:8) = copy(%v_23)
467 line_num(;n: 43)
468 %v_24 = get_global_var($!)
469 label(LBL_22:470)
470 exc_region_start(LBL_25:481)
471 line_num(;n: 44)
472 %v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
473 exc_region_end()
474 label(LBL_26:475)
475 exc_region_start(LBL_16:495)
476 line_num(;n: 47)
477 %v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
478 exc_region_end()
479 jump(LBL_24:487)
480 label(LBL_25:481)
481 %v_27 = recv_jruby_exc()
482 label(LBL_23:483)
483 line_num(;n: 47)
484 %v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
485 throw(%v_27)
486 label(LBL_24:487)
487 %v_15 = copy(%v_26)
488 label(LBL_27:489)
489 exc_region_start(LBL_8:510)
490 put_global_var($!, %v_14)
491 exc_region_end()
492 jump(LBL_15:500)
493 exc_region_end()
494 label(LBL_16:495)
495 %v_28 = recv_jruby_exc()
496 label(LBL_14:497)
497 put_global_var($!, %v_14)
498 throw(%v_28)
499 label(LBL_15:500)
500 %v_8 = copy(%v_15)
501 label(LBL_28:502)
502 exc_region_start(UNRESCUED_REGION_0:-1)
503 put_global_var($!, %v_6)
504 line_num(;n: 52)
505 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
506 exc_region_end()
507 jump(LBL_7:517)
508 exc_region_end()
509 label(LBL_8:510)
510 %v_29 = recv_jruby_exc()
511 label(LBL_6:512)
512 put_global_var($!, %v_6)
513 line_num(;n: 52)
514 %v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
515 throw(%v_29)
516 label(LBL_7:517)
517 throw(%v_61)
518 label(LBL_3:519)
519 return(%v_30)
2015-05-28T14:11:20.736-05:00: BasicCompilerPassListener: Starting Delegated Variable Removal on scope INSTANCE_METHOD _transaction[nested_ensures.rb:0]
2015-05-28T14:11:20.739-05:00: BasicCompilerPassListener:
Graph:
BB [1:LBL_118:-1]:>[1,139]
BB [2:LBL_119:-1]:>[2,3], <[0]
BB [3:LBL_120:-1]:>[3], <[1]
BB [4:LBL_0:11]:>[5], <[1,2]
BB [6:LBL_1:19]:>[6,38,68], <[3]
BB [7:LBL_121:-1]:>[8], <[5]
BB [9:LBL_32:32]:>[9,17], <[6]
BB [10:LBL_41:39]:>[10,11,68], <[8]
BB [11:LBL_122:-1]:>[16], <[9]
BB [12:LBL_42:46]:>[12,13,68], <[9]
BB [13:LBL_123:-1]:>[13,68], <[11]
BB [14:LBL_43:50]:>[14,15,68], <[11,12]
BB [15:LBL_124:-1]:>[15,68], <[13]
BB [16:LBL_44:54]:>[16,68], <[13,14]
BB [17:LBL_45:57]:>[37], <[10,15]
BB [18:LBL_40:60]:>[18,19,28], <[8]
BB [19:LBL_46:65]:>[28,139], <[17]
BB [20:LBL_47:67]:>[20,28], <[17]
BB [21:LBL_48:73]:>[21,22,68], <[19]
BB [22:LBL_125:-1]:>[27], <[20]
BB [23:LBL_49:80]:>[23,24,68], <[20]
BB [24:LBL_126:-1]:>[24,68], <[22]
BB [25:LBL_50:84]:>[25,26,68], <[22,23]
BB [26:LBL_127:-1]:>[26,68], <[24]
BB [27:LBL_51:88]:>[27,68], <[24,25]
BB [28:LBL_52:91]:>[37], <[21,26]
BB [29:LBL_35:95]:>[29], <[17,18,19]
BB [30:LBL_33:97]:>[30,31,68], <[28]
BB [31:LBL_128:-1]:>[36], <[29]
BB [32:LBL_36:103]:>[32,33,68], <[29]
BB [33:LBL_129:-1]:>[33,68], <[31]
BB [34:LBL_38:107]:>[34,35,68], <[31,32]
BB [35:LBL_130:-1]:>[35,68], <[33]
BB [36:LBL_39:111]:>[36,68], <[33,34]
BB [37:LBL_37:114]:>[68,139], <[30,35]
BB [38:LBL_34:116]:>[39], <[16,27]
BB [39:LBL_30:118]:>[39,68], <[5]
BB [40:LBL_31:122]:>[41], <[37,38]
BB [42:LBL_55:132]:>[43,44], <[39]
BB [44:LBL_56:139]:>[67], <[41]
BB [45:LBL_57:146]:>[45,46,65], <[41]
BB [46:LBL_58:151]:>[65,139], <[44]
BB [47:LBL_59:153]:>[48], <[44]
BB [49:LBL_61:160]:>[49,50], <[46]
BB [50:LBL_62:168]:>[63,65], <[48]
BB [51:LBL_63:173]:>[51,52,61], <[48]
BB [52:LBL_131:-1]:>[52,61], <[50]
BB [53:LBL_64:179]:>[53,54,61], <[50,51]
BB [54:LBL_65:182]:>[61,139], <[52]
BB [55:LBL_66:184]:>[55], <[52]
BB [56:LBL_67:189]:>[56,57], <[54]
BB [57:LBL_68:194]:>[59,61], <[55]
BB [58:LBL_69:200]:>[58], <[55]
BB [59:LBL_70:202]:>[61,139], <[57]
BB [60:LBL_71:206]:>[60], <[56]
BB [61:LBL_72:208]:>[63,65], <[59]
BB [62:LBL_73:214]:>[62], <[50,51,52,53,56,58]
BB [63:LBL_74:216]:>[65,139], <[61]
BB [64:LBL_75:219]:>[67], <[49,60]
BB [66:LBL_77:229]:>[139], <[44,45,49,60,62]
BB [68:LBL_79:236]:>[138], <[43,63]
BB [69:LBL_29:239]:>[69,70,109], <[5,9,11,12,13,14,15,20,22,23,24,25,26,29,31,32,33,34,35,36,38]
BB [70:LBL_80:244]:>[109,139], <[68]
BB [71:LBL_81:246]:>[72], <[68]
BB [73:LBL_82:253]:>[73,74], <[70]
BB [74:LBL_87:259]:>[80,109], <[72]
BB [75:LBL_86:264]:>[75,76,78], <[72]
BB [76:LBL_88:269]:>[78,139], <[74]
BB [77:LBL_89:271]:>[77], <[74]
BB [78:LBL_90:273]:>[80,109], <[76]
BB [79:LBL_85:279]:>[79], <[74,75]
BB [80:LBL_83:281]:>[109,139], <[78]
BB [81:LBL_84:284]:>[81,109], <[73,77]
BB [82:LBL_91:290]:>[83], <[80]
BB [84:LBL_93:297]:>[84,85], <[81]
BB [85:LBL_94:304]:>[108], <[83]
BB [86:LBL_95:311]:>[86,87,106], <[83]
BB [87:LBL_96:316]:>[106,139], <[85]
BB [88:LBL_97:318]:>[89], <[85]
BB [90:LBL_99:325]:>[90,91], <[87]
BB [91:LBL_100:333]:>[104,106], <[89]
BB [92:LBL_101:338]:>[92,93,102], <[89]
BB [93:LBL_132:-1]:>[93,102], <[91]
BB [94:LBL_102:344]:>[94,95,102], <[91,92]
BB [95:LBL_103:347]:>[102,139], <[93]
BB [96:LBL_104:349]:>[96], <[93]
BB [97:LBL_105:354]:>[97,98], <[95]
BB [98:LBL_106:359]:>[100,102], <[96]
BB [99:LBL_107:365]:>[99], <[96]
BB [100:LBL_108:367]:>[102,139], <[98]
BB [101:LBL_109:371]:>[101], <[97]
BB [102:LBL_110:373]:>[104,106], <[100]
BB [103:LBL_111:379]:>[103], <[91,92,93,94,97,99]
BB [104:LBL_112:381]:>[106,139], <[102]
BB [105:LBL_113:384]:>[108], <[90,101]
BB [107:LBL_115:394]:>[139], <[85,86,90,101,103]
BB [109:LBL_117:401]:>[138], <[84,104]
BB [110:LBL_4:405]:>[111], <[68,69,73,77,79,80]
BB [112:LBL_5:413]:>[113,114], <[109]
BB [114:LBL_10:420]:>[137], <[111]
BB [115:LBL_9:427]:>[115,116,135], <[111]
BB [116:LBL_11:432]:>[135,139], <[114]
BB [117:LBL_12:434]:>[118], <[114]
BB [119:LBL_13:441]:>[119,120], <[116]
BB [120:LBL_18:449]:>[133,135], <[118]
BB [121:LBL_17:454]:>[121,122,131], <[118]
BB [122:LBL_133:-1]:>[122,131], <[120]
BB [123:LBL_21:460]:>[123,124,131], <[120,121]
BB [124:LBL_19:463]:>[131,139], <[122]
BB [125:LBL_20:465]:>[125], <[122]
BB [126:LBL_22:470]:>[126,127], <[124]
BB [127:LBL_26:475]:>[129,131], <[125]
BB [128:LBL_25:481]:>[128], <[125]
BB [129:LBL_23:483]:>[131,139], <[127]
BB [130:LBL_24:487]:>[130], <[126]
BB [131:LBL_27:489]:>[133,135], <[129]
BB [132:LBL_16:495]:>[132], <[120,121,122,123,126,128]
BB [133:LBL_14:497]:>[135,139], <[131]
BB [134:LBL_15:500]:>[137], <[119,130]
BB [136:LBL_8:510]:>[139], <[114,115,119,130,132]
BB [138:LBL_7:517]:>[139], <[113,133]
BB [139:LBL_3:519]:>[139], <[67,108]
BB [140:LBL_134:-1]:<[0,18,36,45,53,58,62,65,69,75,79,86,94,99,103,106,115,123,128,132,135,137,138]
2015-05-28T14:11:20.741-05:00: BasicCompilerPassListener:
Instructions[nested_ensures.rb#0#_transaction,IRMethod,OptimizeDelegationPass]:
BB [1:LBL_118:-1]
BB [2:LBL_119:-1]
%self = recv_self()
%v_0 = load_implicit_closure()
%current_scope = copy(scope<0>)
%current_module = copy(module<0>)
check_arity(;req: 1, opt: 1, *r: false, kw: false)
conn(0:0) = recv_pre_reqd_arg()
opts(0:1) = recv_opt_arg(;index:0, req: 1, pre: 1)
bne(LBL_0:11, opts(0:1), %undefined)
BB [3:LBL_120:-1]
%v_3 = search_const(%current_scope ;name: OPTS, no_priv: false)
opts(0:1) = copy(%v_3)
BB [4:LBL_0:11]
line_num(;n: 1)
%v_4 = call_1o(opts(0:1), :'rollback' ;n:[], t:NO, cl:false)
rollback(0:2) = copy(%v_4)
line_num(;n: 2)
%v_5 = get_global_var($!)
BB [6:LBL_1:19]
line_num(;n: 4)
%v_31 = call(%self, conn(0:0), opts(0:1) ;n:add_transaction, t:FU, cl:false)
line_num(;n: 5)
%v_32 = call(%self, conn(0:0), opts(0:1) ;n:begin_transaction, t:FU, cl:false)
line_num(;n: 6)
%v_33 = call_1o(rollback(0:2), :'always' ;n:==, t:NO, cl:false)
b_false(LBL_30:118, %v_33)
BB [7:LBL_121:-1]
line_num(;n: 7)
%v_34 = get_global_var($!)
BB [9:LBL_32:32]
line_num(;n: 9)
%v_40 = yield(%v_0, conn(0:0) ;unwrap: false)
ret(0:3) = copy(%v_40)
%v_39 = copy(%v_40)
BB [10:LBL_41:39]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_42:46, e1(0:4))
BB [11:LBL_122:-1]
%v_35 = copy(nil)
jump(LBL_45:57)
BB [12:LBL_42:46]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_43:50, %v_36, %undefined)
BB [13:LBL_123:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [14:LBL_43:50]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_44:54, %v_37, %undefined)
BB [15:LBL_124:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [16:LBL_44:54]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
%v_35 = copy(%v_38)
BB [17:LBL_45:57]
jump(LBL_34:116)
BB [18:LBL_40:60]
%v_41 = recv_ruby_exc()
%v_42 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_43 = rescue_eqq(Array:[%v_42], %v_41)
b_true(LBL_47:67, %v_43)
BB [19:LBL_46:65]
throw(%v_41)
BB [20:LBL_47:67]
%v_44 = get_global_var($!)
e1(0:4) = copy(%v_44)
line_num(;n: 12)
%v_45 = call_1o(%self, %v_44 ;n:raise, t:FU, cl:false)
%v_39 = copy(%v_45)
BB [21:LBL_48:73]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_49:80, e1(0:4))
BB [22:LBL_125:-1]
%v_35 = copy(nil)
jump(LBL_52:91)
BB [23:LBL_49:80]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_50:84, %v_36, %undefined)
BB [24:LBL_126:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [25:LBL_50:84]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_51:88, %v_37, %undefined)
BB [26:LBL_127:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [27:LBL_51:88]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
%v_35 = copy(%v_38)
BB [28:LBL_52:91]
jump(LBL_34:116)
BB [29:LBL_35:95]
%v_46 = recv_jruby_exc()
BB [30:LBL_33:97]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_36:103, e1(0:4))
BB [31:LBL_128:-1]
%v_35 = copy(nil)
jump(LBL_37:114)
BB [32:LBL_36:103]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_38:107, %v_36, %undefined)
BB [33:LBL_129:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [34:LBL_38:107]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_39:111, %v_37, %undefined)
BB [35:LBL_130:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [36:LBL_39:111]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
%v_35 = copy(%v_38)
BB [37:LBL_37:114]
throw(%v_46)
BB [38:LBL_34:116]
jump(LBL_31:122)
BB [39:LBL_30:118]
line_num(;n: 19)
%v_47 = yield(%v_0, conn(0:0) ;unwrap: false)
%v_39 = copy(%v_47)
BB [40:LBL_31:122]
%v_30 = copy(%v_39)
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [42:LBL_55:132]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
%v_8 = copy(%v_9)
BB [44:LBL_56:139]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [45:LBL_57:146]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_59:153, %v_12)
BB [46:LBL_58:151]
throw(%v_10)
BB [47:LBL_59:153]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [49:LBL_61:160]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [50:LBL_62:168]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [51:LBL_63:173]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_64:179, %v_21, %undefined)
BB [52:LBL_131:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [53:LBL_64:179]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_66:184, %v_22)
BB [54:LBL_65:182]
throw(%v_19)
BB [55:LBL_66:184]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
%v_24 = get_global_var($!)
BB [56:LBL_67:189]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [57:LBL_68:194]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_71:206)
BB [58:LBL_69:200]
%v_27 = recv_jruby_exc()
BB [59:LBL_70:202]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [60:LBL_71:206]
%v_15 = copy(%v_26)
BB [61:LBL_72:208]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [62:LBL_73:214]
%v_28 = recv_jruby_exc()
BB [63:LBL_74:216]
put_global_var($!, %v_14)
throw(%v_28)
BB [64:LBL_75:219]
%v_8 = copy(%v_15)
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [66:LBL_77:229]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [68:LBL_79:236]
jump(LBL_3:519)
BB [69:LBL_29:239]
%v_48 = recv_ruby_exc()
%v_49 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_50 = rescue_eqq(Array:[%v_49], %v_48)
b_true(LBL_81:246, %v_50)
BB [70:LBL_80:244]
throw(%v_48)
BB [71:LBL_81:246]
%v_51 = get_global_var($!)
e(0:5) = copy(%v_51)
line_num(;n: 23)
%v_52 = get_global_var($!)
BB [73:LBL_82:253]
line_num(;n: 25)
%v_54 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
%v_53 = copy(%v_54)
BB [74:LBL_87:259]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [75:LBL_86:264]
%v_55 = recv_ruby_exc()
%v_56 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_57 = rescue_eqq(Array:[%v_56], %v_55)
b_true(LBL_89:271, %v_57)
BB [76:LBL_88:269]
throw(%v_55)
BB [77:LBL_89:271]
%v_53 = copy(nil)
BB [78:LBL_90:273]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [79:LBL_85:279]
%v_58 = recv_jruby_exc()
BB [80:LBL_83:281]
put_global_var($!, %v_52)
throw(%v_58)
BB [81:LBL_84:284]
line_num(;n: 30)
%v_59 = copy({:'conn'=>conn(0:0), :'rollback'=>rollback(0:2)})
%v_60 = call(%self, e(0:5), %v_59 ;n:transaction_error, t:FU, cl:false)
line_num(;n: 31)
%v_30 = copy(ret(0:3))
BB [82:LBL_91:290]
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [84:LBL_93:297]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
%v_8 = copy(%v_9)
BB [85:LBL_94:304]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [86:LBL_95:311]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_97:318, %v_12)
BB [87:LBL_96:316]
throw(%v_10)
BB [88:LBL_97:318]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [90:LBL_99:325]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [91:LBL_100:333]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [92:LBL_101:338]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_102:344, %v_21, %undefined)
BB [93:LBL_132:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [94:LBL_102:344]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_104:349, %v_22)
BB [95:LBL_103:347]
throw(%v_19)
BB [96:LBL_104:349]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
%v_24 = get_global_var($!)
BB [97:LBL_105:354]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [98:LBL_106:359]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_109:371)
BB [99:LBL_107:365]
%v_27 = recv_jruby_exc()
BB [100:LBL_108:367]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [101:LBL_109:371]
%v_15 = copy(%v_26)
BB [102:LBL_110:373]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [103:LBL_111:379]
%v_28 = recv_jruby_exc()
BB [104:LBL_112:381]
put_global_var($!, %v_14)
throw(%v_28)
BB [105:LBL_113:384]
%v_8 = copy(%v_15)
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [107:LBL_115:394]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [109:LBL_117:401]
jump(LBL_3:519)
BB [110:LBL_4:405]
%v_61 = recv_jruby_exc()
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [112:LBL_5:413]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
%v_8 = copy(%v_9)
BB [114:LBL_10:420]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [115:LBL_9:427]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_12:434, %v_12)
BB [116:LBL_11:432]
throw(%v_10)
BB [117:LBL_12:434]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [119:LBL_13:441]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [120:LBL_18:449]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [121:LBL_17:454]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_21:460, %v_21, %undefined)
BB [122:LBL_133:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [123:LBL_21:460]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_20:465, %v_22)
BB [124:LBL_19:463]
throw(%v_19)
BB [125:LBL_20:465]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
%v_24 = get_global_var($!)
BB [126:LBL_22:470]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [127:LBL_26:475]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_24:487)
BB [128:LBL_25:481]
%v_27 = recv_jruby_exc()
BB [129:LBL_23:483]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [130:LBL_24:487]
%v_15 = copy(%v_26)
BB [131:LBL_27:489]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [132:LBL_16:495]
%v_28 = recv_jruby_exc()
BB [133:LBL_14:497]
put_global_var($!, %v_14)
throw(%v_28)
BB [134:LBL_15:500]
%v_8 = copy(%v_15)
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [136:LBL_8:510]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [138:LBL_7:517]
throw(%v_61)
BB [139:LBL_3:519]
return(%v_30)
BB [140:LBL_134:-1]
------ Rescue block map ------
BB 6 --> BB 69
BB 9 --> BB 18
BB 10 --> BB 69
BB 12 --> BB 69
BB 13 --> BB 69
BB 14 --> BB 69
BB 15 --> BB 69
BB 16 --> BB 69
BB 18 --> BB 29
BB 19 --> BB 29
BB 20 --> BB 29
BB 21 --> BB 69
BB 23 --> BB 69
BB 24 --> BB 69
BB 25 --> BB 69
BB 26 --> BB 69
BB 27 --> BB 69
BB 30 --> BB 69
BB 32 --> BB 69
BB 33 --> BB 69
BB 34 --> BB 69
BB 35 --> BB 69
BB 36 --> BB 69
BB 37 --> BB 69
BB 39 --> BB 69
BB 42 --> BB 45
BB 45 --> BB 66
BB 46 --> BB 66
BB 49 --> BB 51
BB 50 --> BB 66
BB 51 --> BB 62
BB 52 --> BB 62
BB 53 --> BB 62
BB 54 --> BB 62
BB 56 --> BB 58
BB 57 --> BB 62
BB 59 --> BB 62
BB 61 --> BB 66
BB 63 --> BB 66
BB 69 --> BB 110
BB 70 --> BB 110
BB 73 --> BB 75
BB 74 --> BB 110
BB 75 --> BB 79
BB 76 --> BB 79
BB 78 --> BB 110
BB 80 --> BB 110
BB 81 --> BB 110
BB 84 --> BB 86
BB 86 --> BB 107
BB 87 --> BB 107
BB 90 --> BB 92
BB 91 --> BB 107
BB 92 --> BB 103
BB 93 --> BB 103
BB 94 --> BB 103
BB 95 --> BB 103
BB 97 --> BB 99
BB 98 --> BB 103
BB 100 --> BB 103
BB 102 --> BB 107
BB 104 --> BB 107
BB 112 --> BB 115
BB 115 --> BB 136
BB 116 --> BB 136
BB 119 --> BB 121
BB 120 --> BB 136
BB 121 --> BB 132
BB 122 --> BB 132
BB 123 --> BB 132
BB 124 --> BB 132
BB 126 --> BB 128
BB 127 --> BB 132
BB 129 --> BB 132
BB 131 --> BB 136
BB 133 --> BB 136
:Instructions
2015-05-28T14:11:20.744-05:00: BasicCompilerPassListener: Finished Delegated Variable Removal on scope in 1ms.
2015-05-28T14:11:20.744-05:00: BasicCompilerPassListener: Starting Live Variable Analysis on scope INSTANCE_METHOD _transaction[nested_ensures.rb:0]
2015-05-28T14:11:20.753-05:00: BasicCompilerPassListener:
Graph:
BB [1:LBL_118:-1]:>[1,139]
BB [2:LBL_119:-1]:>[2,3], <[0]
BB [3:LBL_120:-1]:>[3], <[1]
BB [4:LBL_0:11]:>[5], <[1,2]
BB [6:LBL_1:19]:>[6,38,68], <[3]
BB [7:LBL_121:-1]:>[8], <[5]
BB [9:LBL_32:32]:>[9,17], <[6]
BB [10:LBL_41:39]:>[10,11,68], <[8]
BB [11:LBL_122:-1]:>[16], <[9]
BB [12:LBL_42:46]:>[12,13,68], <[9]
BB [13:LBL_123:-1]:>[13,68], <[11]
BB [14:LBL_43:50]:>[14,15,68], <[11,12]
BB [15:LBL_124:-1]:>[15,68], <[13]
BB [16:LBL_44:54]:>[16,68], <[13,14]
BB [17:LBL_45:57]:>[37], <[10,15]
BB [18:LBL_40:60]:>[18,19,28], <[8]
BB [19:LBL_46:65]:>[28,139], <[17]
BB [20:LBL_47:67]:>[20,28], <[17]
BB [21:LBL_48:73]:>[21,22,68], <[19]
BB [22:LBL_125:-1]:>[27], <[20]
BB [23:LBL_49:80]:>[23,24,68], <[20]
BB [24:LBL_126:-1]:>[24,68], <[22]
BB [25:LBL_50:84]:>[25,26,68], <[22,23]
BB [26:LBL_127:-1]:>[26,68], <[24]
BB [27:LBL_51:88]:>[27,68], <[24,25]
BB [28:LBL_52:91]:>[37], <[21,26]
BB [29:LBL_35:95]:>[29], <[17,18,19]
BB [30:LBL_33:97]:>[30,31,68], <[28]
BB [31:LBL_128:-1]:>[36], <[29]
BB [32:LBL_36:103]:>[32,33,68], <[29]
BB [33:LBL_129:-1]:>[33,68], <[31]
BB [34:LBL_38:107]:>[34,35,68], <[31,32]
BB [35:LBL_130:-1]:>[35,68], <[33]
BB [36:LBL_39:111]:>[36,68], <[33,34]
BB [37:LBL_37:114]:>[68,139], <[30,35]
BB [38:LBL_34:116]:>[39], <[16,27]
BB [39:LBL_30:118]:>[39,68], <[5]
BB [40:LBL_31:122]:>[41], <[37,38]
BB [42:LBL_55:132]:>[43,44], <[39]
BB [44:LBL_56:139]:>[67], <[41]
BB [45:LBL_57:146]:>[45,46,65], <[41]
BB [46:LBL_58:151]:>[65,139], <[44]
BB [47:LBL_59:153]:>[48], <[44]
BB [49:LBL_61:160]:>[49,50], <[46]
BB [50:LBL_62:168]:>[63,65], <[48]
BB [51:LBL_63:173]:>[51,52,61], <[48]
BB [52:LBL_131:-1]:>[52,61], <[50]
BB [53:LBL_64:179]:>[53,54,61], <[50,51]
BB [54:LBL_65:182]:>[61,139], <[52]
BB [55:LBL_66:184]:>[55], <[52]
BB [56:LBL_67:189]:>[56,57], <[54]
BB [57:LBL_68:194]:>[59,61], <[55]
BB [58:LBL_69:200]:>[58], <[55]
BB [59:LBL_70:202]:>[61,139], <[57]
BB [60:LBL_71:206]:>[60], <[56]
BB [61:LBL_72:208]:>[63,65], <[59]
BB [62:LBL_73:214]:>[62], <[50,51,52,53,56,58]
BB [63:LBL_74:216]:>[65,139], <[61]
BB [64:LBL_75:219]:>[67], <[49,60]
BB [66:LBL_77:229]:>[139], <[44,45,49,60,62]
BB [68:LBL_79:236]:>[138], <[43,63]
BB [69:LBL_29:239]:>[69,70,109], <[5,9,11,12,13,14,15,20,22,23,24,25,26,29,31,32,33,34,35,36,38]
BB [70:LBL_80:244]:>[109,139], <[68]
BB [71:LBL_81:246]:>[72], <[68]
BB [73:LBL_82:253]:>[73,74], <[70]
BB [74:LBL_87:259]:>[80,109], <[72]
BB [75:LBL_86:264]:>[75,76,78], <[72]
BB [76:LBL_88:269]:>[78,139], <[74]
BB [77:LBL_89:271]:>[77], <[74]
BB [78:LBL_90:273]:>[80,109], <[76]
BB [79:LBL_85:279]:>[79], <[74,75]
BB [80:LBL_83:281]:>[109,139], <[78]
BB [81:LBL_84:284]:>[81,109], <[73,77]
BB [82:LBL_91:290]:>[83], <[80]
BB [84:LBL_93:297]:>[84,85], <[81]
BB [85:LBL_94:304]:>[108], <[83]
BB [86:LBL_95:311]:>[86,87,106], <[83]
BB [87:LBL_96:316]:>[106,139], <[85]
BB [88:LBL_97:318]:>[89], <[85]
BB [90:LBL_99:325]:>[90,91], <[87]
BB [91:LBL_100:333]:>[104,106], <[89]
BB [92:LBL_101:338]:>[92,93,102], <[89]
BB [93:LBL_132:-1]:>[93,102], <[91]
BB [94:LBL_102:344]:>[94,95,102], <[91,92]
BB [95:LBL_103:347]:>[102,139], <[93]
BB [96:LBL_104:349]:>[96], <[93]
BB [97:LBL_105:354]:>[97,98], <[95]
BB [98:LBL_106:359]:>[100,102], <[96]
BB [99:LBL_107:365]:>[99], <[96]
BB [100:LBL_108:367]:>[102,139], <[98]
BB [101:LBL_109:371]:>[101], <[97]
BB [102:LBL_110:373]:>[104,106], <[100]
BB [103:LBL_111:379]:>[103], <[91,92,93,94,97,99]
BB [104:LBL_112:381]:>[106,139], <[102]
BB [105:LBL_113:384]:>[108], <[90,101]
BB [107:LBL_115:394]:>[139], <[85,86,90,101,103]
BB [109:LBL_117:401]:>[138], <[84,104]
BB [110:LBL_4:405]:>[111], <[68,69,73,77,79,80]
BB [112:LBL_5:413]:>[113,114], <[109]
BB [114:LBL_10:420]:>[137], <[111]
BB [115:LBL_9:427]:>[115,116,135], <[111]
BB [116:LBL_11:432]:>[135,139], <[114]
BB [117:LBL_12:434]:>[118], <[114]
BB [119:LBL_13:441]:>[119,120], <[116]
BB [120:LBL_18:449]:>[133,135], <[118]
BB [121:LBL_17:454]:>[121,122,131], <[118]
BB [122:LBL_133:-1]:>[122,131], <[120]
BB [123:LBL_21:460]:>[123,124,131], <[120,121]
BB [124:LBL_19:463]:>[131,139], <[122]
BB [125:LBL_20:465]:>[125], <[122]
BB [126:LBL_22:470]:>[126,127], <[124]
BB [127:LBL_26:475]:>[129,131], <[125]
BB [128:LBL_25:481]:>[128], <[125]
BB [129:LBL_23:483]:>[131,139], <[127]
BB [130:LBL_24:487]:>[130], <[126]
BB [131:LBL_27:489]:>[133,135], <[129]
BB [132:LBL_16:495]:>[132], <[120,121,122,123,126,128]
BB [133:LBL_14:497]:>[135,139], <[131]
BB [134:LBL_15:500]:>[137], <[119,130]
BB [136:LBL_8:510]:>[139], <[114,115,119,130,132]
BB [138:LBL_7:517]:>[139], <[113,133]
BB [139:LBL_3:519]:>[139], <[67,108]
BB [140:LBL_134:-1]:<[0,18,36,45,53,58,62,65,69,75,79,86,94,99,103,106,115,123,128,132,135,137,138]
2015-05-28T14:11:20.755-05:00: BasicCompilerPassListener:
Instructions[nested_ensures.rb#0#_transaction,IRMethod,LiveVariableAnalysis]:
BB [1:LBL_118:-1]
BB [2:LBL_119:-1]
%self = recv_self()
%v_0 = load_implicit_closure()
%current_scope = copy(scope<0>)
%current_module = copy(module<0>)
check_arity(;req: 1, opt: 1, *r: false, kw: false)
conn(0:0) = recv_pre_reqd_arg()
opts(0:1) = recv_opt_arg(;index:0, req: 1, pre: 1)
bne(LBL_0:11, opts(0:1), %undefined)
BB [3:LBL_120:-1]
%v_3 = search_const(%current_scope ;name: OPTS, no_priv: false)
opts(0:1) = copy(%v_3)
BB [4:LBL_0:11]
line_num(;n: 1)
%v_4 = call_1o(opts(0:1), :'rollback' ;n:[], t:NO, cl:false)
rollback(0:2) = copy(%v_4)
line_num(;n: 2)
%v_5 = get_global_var($!)
BB [6:LBL_1:19]
line_num(;n: 4)
%v_31 = call(%self, conn(0:0), opts(0:1) ;n:add_transaction, t:FU, cl:false)
line_num(;n: 5)
%v_32 = call(%self, conn(0:0), opts(0:1) ;n:begin_transaction, t:FU, cl:false)
line_num(;n: 6)
%v_33 = call_1o(rollback(0:2), :'always' ;n:==, t:NO, cl:false)
b_false(LBL_30:118, %v_33)
BB [7:LBL_121:-1]
line_num(;n: 7)
%v_34 = get_global_var($!)
BB [9:LBL_32:32]
line_num(;n: 9)
%v_40 = yield(%v_0, conn(0:0) ;unwrap: false)
ret(0:3) = copy(%v_40)
%v_39 = copy(%v_40)
BB [10:LBL_41:39]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_42:46, e1(0:4))
BB [11:LBL_122:-1]
%v_35 = copy(nil)
jump(LBL_45:57)
BB [12:LBL_42:46]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_43:50, %v_36, %undefined)
BB [13:LBL_123:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [14:LBL_43:50]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_44:54, %v_37, %undefined)
BB [15:LBL_124:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [16:LBL_44:54]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
%v_35 = copy(%v_38)
BB [17:LBL_45:57]
jump(LBL_34:116)
BB [18:LBL_40:60]
%v_41 = recv_ruby_exc()
%v_42 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_43 = rescue_eqq(Array:[%v_42], %v_41)
b_true(LBL_47:67, %v_43)
BB [19:LBL_46:65]
throw(%v_41)
BB [20:LBL_47:67]
%v_44 = get_global_var($!)
e1(0:4) = copy(%v_44)
line_num(;n: 12)
%v_45 = call_1o(%self, %v_44 ;n:raise, t:FU, cl:false)
%v_39 = copy(%v_45)
BB [21:LBL_48:73]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_49:80, e1(0:4))
BB [22:LBL_125:-1]
%v_35 = copy(nil)
jump(LBL_52:91)
BB [23:LBL_49:80]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_50:84, %v_36, %undefined)
BB [24:LBL_126:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [25:LBL_50:84]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_51:88, %v_37, %undefined)
BB [26:LBL_127:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [27:LBL_51:88]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
%v_35 = copy(%v_38)
BB [28:LBL_52:91]
jump(LBL_34:116)
BB [29:LBL_35:95]
%v_46 = recv_jruby_exc()
BB [30:LBL_33:97]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_36:103, e1(0:4))
BB [31:LBL_128:-1]
%v_35 = copy(nil)
jump(LBL_37:114)
BB [32:LBL_36:103]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_38:107, %v_36, %undefined)
BB [33:LBL_129:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [34:LBL_38:107]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_39:111, %v_37, %undefined)
BB [35:LBL_130:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [36:LBL_39:111]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
%v_35 = copy(%v_38)
BB [37:LBL_37:114]
throw(%v_46)
BB [38:LBL_34:116]
jump(LBL_31:122)
BB [39:LBL_30:118]
line_num(;n: 19)
%v_47 = yield(%v_0, conn(0:0) ;unwrap: false)
%v_39 = copy(%v_47)
BB [40:LBL_31:122]
%v_30 = copy(%v_39)
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [42:LBL_55:132]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
%v_8 = copy(%v_9)
BB [44:LBL_56:139]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [45:LBL_57:146]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_59:153, %v_12)
BB [46:LBL_58:151]
throw(%v_10)
BB [47:LBL_59:153]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [49:LBL_61:160]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [50:LBL_62:168]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [51:LBL_63:173]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_64:179, %v_21, %undefined)
BB [52:LBL_131:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [53:LBL_64:179]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_66:184, %v_22)
BB [54:LBL_65:182]
throw(%v_19)
BB [55:LBL_66:184]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
%v_24 = get_global_var($!)
BB [56:LBL_67:189]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [57:LBL_68:194]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_71:206)
BB [58:LBL_69:200]
%v_27 = recv_jruby_exc()
BB [59:LBL_70:202]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [60:LBL_71:206]
%v_15 = copy(%v_26)
BB [61:LBL_72:208]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [62:LBL_73:214]
%v_28 = recv_jruby_exc()
BB [63:LBL_74:216]
put_global_var($!, %v_14)
throw(%v_28)
BB [64:LBL_75:219]
%v_8 = copy(%v_15)
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [66:LBL_77:229]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [68:LBL_79:236]
jump(LBL_3:519)
BB [69:LBL_29:239]
%v_48 = recv_ruby_exc()
%v_49 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_50 = rescue_eqq(Array:[%v_49], %v_48)
b_true(LBL_81:246, %v_50)
BB [70:LBL_80:244]
throw(%v_48)
BB [71:LBL_81:246]
%v_51 = get_global_var($!)
e(0:5) = copy(%v_51)
line_num(;n: 23)
%v_52 = get_global_var($!)
BB [73:LBL_82:253]
line_num(;n: 25)
%v_54 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
%v_53 = copy(%v_54)
BB [74:LBL_87:259]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [75:LBL_86:264]
%v_55 = recv_ruby_exc()
%v_56 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_57 = rescue_eqq(Array:[%v_56], %v_55)
b_true(LBL_89:271, %v_57)
BB [76:LBL_88:269]
throw(%v_55)
BB [77:LBL_89:271]
%v_53 = copy(nil)
BB [78:LBL_90:273]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [79:LBL_85:279]
%v_58 = recv_jruby_exc()
BB [80:LBL_83:281]
put_global_var($!, %v_52)
throw(%v_58)
BB [81:LBL_84:284]
line_num(;n: 30)
%v_59 = copy({:'conn'=>conn(0:0), :'rollback'=>rollback(0:2)})
%v_60 = call(%self, e(0:5), %v_59 ;n:transaction_error, t:FU, cl:false)
line_num(;n: 31)
%v_30 = copy(ret(0:3))
BB [82:LBL_91:290]
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [84:LBL_93:297]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
%v_8 = copy(%v_9)
BB [85:LBL_94:304]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [86:LBL_95:311]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_97:318, %v_12)
BB [87:LBL_96:316]
throw(%v_10)
BB [88:LBL_97:318]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [90:LBL_99:325]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [91:LBL_100:333]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [92:LBL_101:338]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_102:344, %v_21, %undefined)
BB [93:LBL_132:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [94:LBL_102:344]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_104:349, %v_22)
BB [95:LBL_103:347]
throw(%v_19)
BB [96:LBL_104:349]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
%v_24 = get_global_var($!)
BB [97:LBL_105:354]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [98:LBL_106:359]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_109:371)
BB [99:LBL_107:365]
%v_27 = recv_jruby_exc()
BB [100:LBL_108:367]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [101:LBL_109:371]
%v_15 = copy(%v_26)
BB [102:LBL_110:373]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [103:LBL_111:379]
%v_28 = recv_jruby_exc()
BB [104:LBL_112:381]
put_global_var($!, %v_14)
throw(%v_28)
BB [105:LBL_113:384]
%v_8 = copy(%v_15)
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [107:LBL_115:394]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [109:LBL_117:401]
jump(LBL_3:519)
BB [110:LBL_4:405]
%v_61 = recv_jruby_exc()
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [112:LBL_5:413]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
%v_8 = copy(%v_9)
BB [114:LBL_10:420]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [115:LBL_9:427]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_12:434, %v_12)
BB [116:LBL_11:432]
throw(%v_10)
BB [117:LBL_12:434]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [119:LBL_13:441]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [120:LBL_18:449]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [121:LBL_17:454]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_21:460, %v_21, %undefined)
BB [122:LBL_133:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [123:LBL_21:460]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_20:465, %v_22)
BB [124:LBL_19:463]
throw(%v_19)
BB [125:LBL_20:465]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
%v_24 = get_global_var($!)
BB [126:LBL_22:470]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [127:LBL_26:475]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_24:487)
BB [128:LBL_25:481]
%v_27 = recv_jruby_exc()
BB [129:LBL_23:483]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [130:LBL_24:487]
%v_15 = copy(%v_26)
BB [131:LBL_27:489]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [132:LBL_16:495]
%v_28 = recv_jruby_exc()
BB [133:LBL_14:497]
put_global_var($!, %v_14)
throw(%v_28)
BB [134:LBL_15:500]
%v_8 = copy(%v_15)
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [136:LBL_8:510]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [138:LBL_7:517]
throw(%v_61)
BB [139:LBL_3:519]
return(%v_30)
BB [140:LBL_134:-1]
------ Rescue block map ------
BB 6 --> BB 69
BB 9 --> BB 18
BB 10 --> BB 69
BB 12 --> BB 69
BB 13 --> BB 69
BB 14 --> BB 69
BB 15 --> BB 69
BB 16 --> BB 69
BB 18 --> BB 29
BB 19 --> BB 29
BB 20 --> BB 29
BB 21 --> BB 69
BB 23 --> BB 69
BB 24 --> BB 69
BB 25 --> BB 69
BB 26 --> BB 69
BB 27 --> BB 69
BB 30 --> BB 69
BB 32 --> BB 69
BB 33 --> BB 69
BB 34 --> BB 69
BB 35 --> BB 69
BB 36 --> BB 69
BB 37 --> BB 69
BB 39 --> BB 69
BB 42 --> BB 45
BB 45 --> BB 66
BB 46 --> BB 66
BB 49 --> BB 51
BB 50 --> BB 66
BB 51 --> BB 62
BB 52 --> BB 62
BB 53 --> BB 62
BB 54 --> BB 62
BB 56 --> BB 58
BB 57 --> BB 62
BB 59 --> BB 62
BB 61 --> BB 66
BB 63 --> BB 66
BB 69 --> BB 110
BB 70 --> BB 110
BB 73 --> BB 75
BB 74 --> BB 110
BB 75 --> BB 79
BB 76 --> BB 79
BB 78 --> BB 110
BB 80 --> BB 110
BB 81 --> BB 110
BB 84 --> BB 86
BB 86 --> BB 107
BB 87 --> BB 107
BB 90 --> BB 92
BB 91 --> BB 107
BB 92 --> BB 103
BB 93 --> BB 103
BB 94 --> BB 103
BB 95 --> BB 103
BB 97 --> BB 99
BB 98 --> BB 103
BB 100 --> BB 103
BB 102 --> BB 107
BB 104 --> BB 107
BB 112 --> BB 115
BB 115 --> BB 136
BB 116 --> BB 136
BB 119 --> BB 121
BB 120 --> BB 136
BB 121 --> BB 132
BB 122 --> BB 132
BB 123 --> BB 132
BB 124 --> BB 132
BB 126 --> BB 128
BB 127 --> BB 132
BB 129 --> BB 132
BB 131 --> BB 136
BB 133 --> BB 136
:Instructions
2015-05-28T14:11:20.757-05:00: BasicCompilerPassListener: Finished Live Variable Analysis on scope in 7ms.
2015-05-28T14:11:20.757-05:00: BasicCompilerPassListener: Starting Dead Code Elimination on scope INSTANCE_METHOD _transaction[nested_ensures.rb:0]
2015-05-28T14:11:20.762-05:00: BasicCompilerPassListener:
Graph:
BB [1:LBL_118:-1]:>[1,139]
BB [2:LBL_119:-1]:>[2,3], <[0]
BB [3:LBL_120:-1]:>[3], <[1]
BB [4:LBL_0:11]:>[5], <[1,2]
BB [6:LBL_1:19]:>[6,38,68], <[3]
BB [7:LBL_121:-1]:>[8], <[5]
BB [9:LBL_32:32]:>[9,17], <[6]
BB [10:LBL_41:39]:>[10,11,68], <[8]
BB [11:LBL_122:-1]:>[16], <[9]
BB [12:LBL_42:46]:>[12,13,68], <[9]
BB [13:LBL_123:-1]:>[13,68], <[11]
BB [14:LBL_43:50]:>[14,15,68], <[11,12]
BB [15:LBL_124:-1]:>[15,68], <[13]
BB [16:LBL_44:54]:>[16,68], <[13,14]
BB [17:LBL_45:57]:>[37], <[10,15]
BB [18:LBL_40:60]:>[18,19,28], <[8]
BB [19:LBL_46:65]:>[28,139], <[17]
BB [20:LBL_47:67]:>[20,28], <[17]
BB [21:LBL_48:73]:>[21,22,68], <[19]
BB [22:LBL_125:-1]:>[27], <[20]
BB [23:LBL_49:80]:>[23,24,68], <[20]
BB [24:LBL_126:-1]:>[24,68], <[22]
BB [25:LBL_50:84]:>[25,26,68], <[22,23]
BB [26:LBL_127:-1]:>[26,68], <[24]
BB [27:LBL_51:88]:>[27,68], <[24,25]
BB [28:LBL_52:91]:>[37], <[21,26]
BB [29:LBL_35:95]:>[29], <[17,18,19]
BB [30:LBL_33:97]:>[30,31,68], <[28]
BB [31:LBL_128:-1]:>[36], <[29]
BB [32:LBL_36:103]:>[32,33,68], <[29]
BB [33:LBL_129:-1]:>[33,68], <[31]
BB [34:LBL_38:107]:>[34,35,68], <[31,32]
BB [35:LBL_130:-1]:>[35,68], <[33]
BB [36:LBL_39:111]:>[36,68], <[33,34]
BB [37:LBL_37:114]:>[68,139], <[30,35]
BB [38:LBL_34:116]:>[39], <[16,27]
BB [39:LBL_30:118]:>[39,68], <[5]
BB [40:LBL_31:122]:>[41], <[37,38]
BB [42:LBL_55:132]:>[43,44], <[39]
BB [44:LBL_56:139]:>[67], <[41]
BB [45:LBL_57:146]:>[45,46,65], <[41]
BB [46:LBL_58:151]:>[65,139], <[44]
BB [47:LBL_59:153]:>[48], <[44]
BB [49:LBL_61:160]:>[49,50], <[46]
BB [50:LBL_62:168]:>[63,65], <[48]
BB [51:LBL_63:173]:>[51,52,61], <[48]
BB [52:LBL_131:-1]:>[52,61], <[50]
BB [53:LBL_64:179]:>[53,54,61], <[50,51]
BB [54:LBL_65:182]:>[61,139], <[52]
BB [55:LBL_66:184]:>[55], <[52]
BB [56:LBL_67:189]:>[56,57], <[54]
BB [57:LBL_68:194]:>[59,61], <[55]
BB [58:LBL_69:200]:>[58], <[55]
BB [59:LBL_70:202]:>[61,139], <[57]
BB [60:LBL_71:206]:>[60], <[56]
BB [61:LBL_72:208]:>[63,65], <[59]
BB [62:LBL_73:214]:>[62], <[50,51,52,53,56,58]
BB [63:LBL_74:216]:>[65,139], <[61]
BB [64:LBL_75:219]:>[67], <[49,60]
BB [66:LBL_77:229]:>[139], <[44,45,49,60,62]
BB [68:LBL_79:236]:>[138], <[43,63]
BB [69:LBL_29:239]:>[69,70,109], <[5,9,11,12,13,14,15,20,22,23,24,25,26,29,31,32,33,34,35,36,38]
BB [70:LBL_80:244]:>[109,139], <[68]
BB [71:LBL_81:246]:>[72], <[68]
BB [73:LBL_82:253]:>[73,74], <[70]
BB [74:LBL_87:259]:>[80,109], <[72]
BB [75:LBL_86:264]:>[75,76,78], <[72]
BB [76:LBL_88:269]:>[78,139], <[74]
BB [77:LBL_89:271]:>[77], <[74]
BB [78:LBL_90:273]:>[80,109], <[76]
BB [79:LBL_85:279]:>[79], <[74,75]
BB [80:LBL_83:281]:>[109,139], <[78]
BB [81:LBL_84:284]:>[81,109], <[73,77]
BB [82:LBL_91:290]:>[83], <[80]
BB [84:LBL_93:297]:>[84,85], <[81]
BB [85:LBL_94:304]:>[108], <[83]
BB [86:LBL_95:311]:>[86,87,106], <[83]
BB [87:LBL_96:316]:>[106,139], <[85]
BB [88:LBL_97:318]:>[89], <[85]
BB [90:LBL_99:325]:>[90,91], <[87]
BB [91:LBL_100:333]:>[104,106], <[89]
BB [92:LBL_101:338]:>[92,93,102], <[89]
BB [93:LBL_132:-1]:>[93,102], <[91]
BB [94:LBL_102:344]:>[94,95,102], <[91,92]
BB [95:LBL_103:347]:>[102,139], <[93]
BB [96:LBL_104:349]:>[96], <[93]
BB [97:LBL_105:354]:>[97,98], <[95]
BB [98:LBL_106:359]:>[100,102], <[96]
BB [99:LBL_107:365]:>[99], <[96]
BB [100:LBL_108:367]:>[102,139], <[98]
BB [101:LBL_109:371]:>[101], <[97]
BB [102:LBL_110:373]:>[104,106], <[100]
BB [103:LBL_111:379]:>[103], <[91,92,93,94,97,99]
BB [104:LBL_112:381]:>[106,139], <[102]
BB [105:LBL_113:384]:>[108], <[90,101]
BB [107:LBL_115:394]:>[139], <[85,86,90,101,103]
BB [109:LBL_117:401]:>[138], <[84,104]
BB [110:LBL_4:405]:>[111], <[68,69,73,77,79,80]
BB [112:LBL_5:413]:>[113,114], <[109]
BB [114:LBL_10:420]:>[137], <[111]
BB [115:LBL_9:427]:>[115,116,135], <[111]
BB [116:LBL_11:432]:>[135,139], <[114]
BB [117:LBL_12:434]:>[118], <[114]
BB [119:LBL_13:441]:>[119,120], <[116]
BB [120:LBL_18:449]:>[133,135], <[118]
BB [121:LBL_17:454]:>[121,122,131], <[118]
BB [122:LBL_133:-1]:>[122,131], <[120]
BB [123:LBL_21:460]:>[123,124,131], <[120,121]
BB [124:LBL_19:463]:>[131,139], <[122]
BB [125:LBL_20:465]:>[125], <[122]
BB [126:LBL_22:470]:>[126,127], <[124]
BB [127:LBL_26:475]:>[129,131], <[125]
BB [128:LBL_25:481]:>[128], <[125]
BB [129:LBL_23:483]:>[131,139], <[127]
BB [130:LBL_24:487]:>[130], <[126]
BB [131:LBL_27:489]:>[133,135], <[129]
BB [132:LBL_16:495]:>[132], <[120,121,122,123,126,128]
BB [133:LBL_14:497]:>[135,139], <[131]
BB [134:LBL_15:500]:>[137], <[119,130]
BB [136:LBL_8:510]:>[139], <[114,115,119,130,132]
BB [138:LBL_7:517]:>[139], <[113,133]
BB [139:LBL_3:519]:>[139], <[67,108]
BB [140:LBL_134:-1]:<[0,18,36,45,53,58,62,65,69,75,79,86,94,99,103,106,115,123,128,132,135,137,138]
2015-05-28T14:11:20.764-05:00: BasicCompilerPassListener:
Instructions[nested_ensures.rb#0#_transaction,IRMethod,DeadCodeElimination]:
BB [1:LBL_118:-1]
BB [2:LBL_119:-1]
%self = recv_self()
%v_0 = load_implicit_closure()
%current_scope = copy(scope<0>)
check_arity(;req: 1, opt: 1, *r: false, kw: false)
conn(0:0) = recv_pre_reqd_arg()
opts(0:1) = recv_opt_arg(;index:0, req: 1, pre: 1)
bne(LBL_0:11, opts(0:1), %undefined)
BB [3:LBL_120:-1]
%v_3 = search_const(%current_scope ;name: OPTS, no_priv: false)
opts(0:1) = copy(%v_3)
BB [4:LBL_0:11]
line_num(;n: 1)
%v_4 = call_1o(opts(0:1), :'rollback' ;n:[], t:NO, cl:false)
rollback(0:2) = copy(%v_4)
line_num(;n: 2)
%v_5 = get_global_var($!)
BB [6:LBL_1:19]
line_num(;n: 4)
%v_31 = call(%self, conn(0:0), opts(0:1) ;n:add_transaction, t:FU, cl:false)
line_num(;n: 5)
%v_32 = call(%self, conn(0:0), opts(0:1) ;n:begin_transaction, t:FU, cl:false)
line_num(;n: 6)
%v_33 = call_1o(rollback(0:2), :'always' ;n:==, t:NO, cl:false)
b_false(LBL_30:118, %v_33)
BB [7:LBL_121:-1]
line_num(;n: 7)
%v_34 = get_global_var($!)
BB [9:LBL_32:32]
line_num(;n: 9)
%v_40 = yield(%v_0, conn(0:0) ;unwrap: false)
ret(0:3) = copy(%v_40)
%v_39 = copy(%v_40)
BB [10:LBL_41:39]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_42:46, e1(0:4))
BB [11:LBL_122:-1]
jump(LBL_45:57)
BB [12:LBL_42:46]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_43:50, %v_36, %undefined)
BB [13:LBL_123:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [14:LBL_43:50]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_44:54, %v_37, %undefined)
BB [15:LBL_124:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [16:LBL_44:54]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [17:LBL_45:57]
jump(LBL_34:116)
BB [18:LBL_40:60]
%v_41 = recv_ruby_exc()
%v_42 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_43 = rescue_eqq(Array:[%v_42], %v_41)
b_true(LBL_47:67, %v_43)
BB [19:LBL_46:65]
throw(%v_41)
BB [20:LBL_47:67]
%v_44 = get_global_var($!)
e1(0:4) = copy(%v_44)
line_num(;n: 12)
%v_45 = call_1o(%self, %v_44 ;n:raise, t:FU, cl:false)
%v_39 = copy(%v_45)
BB [21:LBL_48:73]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_49:80, e1(0:4))
BB [22:LBL_125:-1]
jump(LBL_52:91)
BB [23:LBL_49:80]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_50:84, %v_36, %undefined)
BB [24:LBL_126:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [25:LBL_50:84]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_51:88, %v_37, %undefined)
BB [26:LBL_127:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [27:LBL_51:88]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [28:LBL_52:91]
jump(LBL_34:116)
BB [29:LBL_35:95]
%v_46 = recv_jruby_exc()
BB [30:LBL_33:97]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_36:103, e1(0:4))
BB [31:LBL_128:-1]
jump(LBL_37:114)
BB [32:LBL_36:103]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_38:107, %v_36, %undefined)
BB [33:LBL_129:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [34:LBL_38:107]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_39:111, %v_37, %undefined)
BB [35:LBL_130:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [36:LBL_39:111]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [37:LBL_37:114]
throw(%v_46)
BB [38:LBL_34:116]
jump(LBL_31:122)
BB [39:LBL_30:118]
line_num(;n: 19)
%v_47 = yield(%v_0, conn(0:0) ;unwrap: false)
%v_39 = copy(%v_47)
BB [40:LBL_31:122]
%v_30 = copy(%v_39)
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [42:LBL_55:132]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
BB [44:LBL_56:139]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [45:LBL_57:146]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_59:153, %v_12)
BB [46:LBL_58:151]
throw(%v_10)
BB [47:LBL_59:153]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [49:LBL_61:160]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [50:LBL_62:168]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [51:LBL_63:173]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_64:179, %v_21, %undefined)
BB [52:LBL_131:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [53:LBL_64:179]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_66:184, %v_22)
BB [54:LBL_65:182]
throw(%v_19)
BB [55:LBL_66:184]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
BB [56:LBL_67:189]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [57:LBL_68:194]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_71:206)
BB [58:LBL_69:200]
%v_27 = recv_jruby_exc()
BB [59:LBL_70:202]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [60:LBL_71:206]
%v_15 = copy(%v_26)
BB [61:LBL_72:208]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [62:LBL_73:214]
%v_28 = recv_jruby_exc()
BB [63:LBL_74:216]
put_global_var($!, %v_14)
throw(%v_28)
BB [64:LBL_75:219]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [66:LBL_77:229]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [68:LBL_79:236]
jump(LBL_3:519)
BB [69:LBL_29:239]
%v_48 = recv_ruby_exc()
%v_49 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_50 = rescue_eqq(Array:[%v_49], %v_48)
b_true(LBL_81:246, %v_50)
BB [70:LBL_80:244]
throw(%v_48)
BB [71:LBL_81:246]
%v_51 = get_global_var($!)
e(0:5) = copy(%v_51)
line_num(;n: 23)
%v_52 = get_global_var($!)
BB [73:LBL_82:253]
line_num(;n: 25)
%v_54 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [74:LBL_87:259]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [75:LBL_86:264]
%v_55 = recv_ruby_exc()
%v_56 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_57 = rescue_eqq(Array:[%v_56], %v_55)
b_true(LBL_89:271, %v_57)
BB [76:LBL_88:269]
throw(%v_55)
BB [77:LBL_89:271]
BB [78:LBL_90:273]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [79:LBL_85:279]
%v_58 = recv_jruby_exc()
BB [80:LBL_83:281]
put_global_var($!, %v_52)
throw(%v_58)
BB [81:LBL_84:284]
line_num(;n: 30)
%v_59 = copy({:'conn'=>conn(0:0), :'rollback'=>rollback(0:2)})
%v_60 = call(%self, e(0:5), %v_59 ;n:transaction_error, t:FU, cl:false)
line_num(;n: 31)
%v_30 = copy(ret(0:3))
BB [82:LBL_91:290]
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [84:LBL_93:297]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
BB [85:LBL_94:304]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [86:LBL_95:311]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_97:318, %v_12)
BB [87:LBL_96:316]
throw(%v_10)
BB [88:LBL_97:318]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [90:LBL_99:325]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [91:LBL_100:333]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [92:LBL_101:338]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_102:344, %v_21, %undefined)
BB [93:LBL_132:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [94:LBL_102:344]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_104:349, %v_22)
BB [95:LBL_103:347]
throw(%v_19)
BB [96:LBL_104:349]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
BB [97:LBL_105:354]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [98:LBL_106:359]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_109:371)
BB [99:LBL_107:365]
%v_27 = recv_jruby_exc()
BB [100:LBL_108:367]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [101:LBL_109:371]
%v_15 = copy(%v_26)
BB [102:LBL_110:373]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [103:LBL_111:379]
%v_28 = recv_jruby_exc()
BB [104:LBL_112:381]
put_global_var($!, %v_14)
throw(%v_28)
BB [105:LBL_113:384]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [107:LBL_115:394]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [109:LBL_117:401]
jump(LBL_3:519)
BB [110:LBL_4:405]
%v_61 = recv_jruby_exc()
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [112:LBL_5:413]
line_num(;n: 36)
%v_9 = call(%self, e(0:5), conn(0:0), opts(0:1) ;n:commit_or_rollback_transaction, t:FU, cl:false)
committed(0:6) = copy(%v_9)
BB [114:LBL_10:420]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [115:LBL_9:427]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_12:434, %v_12)
BB [116:LBL_11:432]
throw(%v_10)
BB [117:LBL_12:434]
%v_13 = get_global_var($!)
e2(0:7) = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [119:LBL_13:441]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>conn(0:0)})
%v_18 = call(%self, e2(0:7), %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [120:LBL_18:449]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [121:LBL_17:454]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_21:460, %v_21, %undefined)
BB [122:LBL_133:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [123:LBL_21:460]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_20:465, %v_22)
BB [124:LBL_19:463]
throw(%v_19)
BB [125:LBL_20:465]
%v_23 = get_global_var($!)
e4(0:8) = copy(%v_23)
line_num(;n: 43)
BB [126:LBL_22:470]
line_num(;n: 44)
%v_26 = call(%self, conn(0:0), opts(0:1) ;n:rollback_transaction, t:FU, cl:false)
BB [127:LBL_26:475]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
jump(LBL_24:487)
BB [128:LBL_25:481]
%v_27 = recv_jruby_exc()
BB [129:LBL_23:483]
line_num(;n: 47)
%v_25 = call_1o(%self, e4(0:8) ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [130:LBL_24:487]
%v_15 = copy(%v_26)
BB [131:LBL_27:489]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [132:LBL_16:495]
%v_28 = recv_jruby_exc()
BB [133:LBL_14:497]
put_global_var($!, %v_14)
throw(%v_28)
BB [134:LBL_15:500]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [136:LBL_8:510]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, conn(0:0), committed(0:6) ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [138:LBL_7:517]
throw(%v_61)
BB [139:LBL_3:519]
return(%v_30)
BB [140:LBL_134:-1]
------ Rescue block map ------
BB 6 --> BB 69
BB 9 --> BB 18
BB 10 --> BB 69
BB 12 --> BB 69
BB 13 --> BB 69
BB 14 --> BB 69
BB 15 --> BB 69
BB 16 --> BB 69
BB 18 --> BB 29
BB 19 --> BB 29
BB 20 --> BB 29
BB 21 --> BB 69
BB 23 --> BB 69
BB 24 --> BB 69
BB 25 --> BB 69
BB 26 --> BB 69
BB 27 --> BB 69
BB 30 --> BB 69
BB 32 --> BB 69
BB 33 --> BB 69
BB 34 --> BB 69
BB 35 --> BB 69
BB 36 --> BB 69
BB 37 --> BB 69
BB 39 --> BB 69
BB 42 --> BB 45
BB 45 --> BB 66
BB 46 --> BB 66
BB 49 --> BB 51
BB 50 --> BB 66
BB 51 --> BB 62
BB 52 --> BB 62
BB 53 --> BB 62
BB 54 --> BB 62
BB 56 --> BB 58
BB 57 --> BB 62
BB 59 --> BB 62
BB 61 --> BB 66
BB 63 --> BB 66
BB 69 --> BB 110
BB 70 --> BB 110
BB 73 --> BB 75
BB 74 --> BB 110
BB 75 --> BB 79
BB 76 --> BB 79
BB 78 --> BB 110
BB 80 --> BB 110
BB 81 --> BB 110
BB 84 --> BB 86
BB 86 --> BB 107
BB 87 --> BB 107
BB 90 --> BB 92
BB 91 --> BB 107
BB 92 --> BB 103
BB 93 --> BB 103
BB 94 --> BB 103
BB 95 --> BB 103
BB 97 --> BB 99
BB 98 --> BB 103
BB 100 --> BB 103
BB 102 --> BB 107
BB 104 --> BB 107
BB 112 --> BB 115
BB 115 --> BB 136
BB 116 --> BB 136
BB 119 --> BB 121
BB 120 --> BB 136
BB 121 --> BB 132
BB 122 --> BB 132
BB 123 --> BB 132
BB 124 --> BB 132
BB 126 --> BB 128
BB 127 --> BB 132
BB 129 --> BB 132
BB 131 --> BB 136
BB 133 --> BB 136
:Instructions
2015-05-28T14:11:20.766-05:00: BasicCompilerPassListener: Finished Dead Code Elimination on scope in 3ms.
2015-05-28T14:11:20.767-05:00: BasicCompilerPassListener: Starting Add Local Variable Load/Store Instructions on scope INSTANCE_METHOD _transaction[nested_ensures.rb:0]
2015-05-28T14:11:20.778-05:00: BasicCompilerPassListener:
Graph:
BB [1:LBL_118:-1]:>[1,139]
BB [2:LBL_119:-1]:>[2,3], <[0]
BB [3:LBL_120:-1]:>[3], <[1]
BB [4:LBL_0:11]:>[5], <[1,2]
BB [6:LBL_1:19]:>[6,38,68], <[3]
BB [7:LBL_121:-1]:>[8], <[5]
BB [9:LBL_32:32]:>[9,17], <[6]
BB [10:LBL_41:39]:>[10,11,68], <[8]
BB [11:LBL_122:-1]:>[16], <[9]
BB [12:LBL_42:46]:>[12,13,68], <[9]
BB [13:LBL_123:-1]:>[13,68], <[11]
BB [14:LBL_43:50]:>[14,15,68], <[11,12]
BB [15:LBL_124:-1]:>[15,68], <[13]
BB [16:LBL_44:54]:>[16,68], <[13,14]
BB [17:LBL_45:57]:>[37], <[10,15]
BB [18:LBL_40:60]:>[18,19,28], <[8]
BB [19:LBL_46:65]:>[28,139], <[17]
BB [20:LBL_47:67]:>[20,28], <[17]
BB [21:LBL_48:73]:>[21,22,68], <[19]
BB [22:LBL_125:-1]:>[27], <[20]
BB [23:LBL_49:80]:>[23,24,68], <[20]
BB [24:LBL_126:-1]:>[24,68], <[22]
BB [25:LBL_50:84]:>[25,26,68], <[22,23]
BB [26:LBL_127:-1]:>[26,68], <[24]
BB [27:LBL_51:88]:>[27,68], <[24,25]
BB [28:LBL_52:91]:>[37], <[21,26]
BB [29:LBL_35:95]:>[29], <[17,18,19]
BB [30:LBL_33:97]:>[30,31,68], <[28]
BB [31:LBL_128:-1]:>[36], <[29]
BB [32:LBL_36:103]:>[32,33,68], <[29]
BB [33:LBL_129:-1]:>[33,68], <[31]
BB [34:LBL_38:107]:>[34,35,68], <[31,32]
BB [35:LBL_130:-1]:>[35,68], <[33]
BB [36:LBL_39:111]:>[36,68], <[33,34]
BB [37:LBL_37:114]:>[68,139], <[30,35]
BB [38:LBL_34:116]:>[39], <[16,27]
BB [39:LBL_30:118]:>[39,68], <[5]
BB [40:LBL_31:122]:>[41], <[37,38]
BB [42:LBL_55:132]:>[43,44], <[39]
BB [44:LBL_56:139]:>[67], <[41]
BB [45:LBL_57:146]:>[45,46,65], <[41]
BB [46:LBL_58:151]:>[65,139], <[44]
BB [47:LBL_59:153]:>[48], <[44]
BB [49:LBL_61:160]:>[49,50], <[46]
BB [50:LBL_62:168]:>[63,65], <[48]
BB [51:LBL_63:173]:>[51,52,61], <[48]
BB [52:LBL_131:-1]:>[52,61], <[50]
BB [53:LBL_64:179]:>[53,54,61], <[50,51]
BB [54:LBL_65:182]:>[61,139], <[52]
BB [55:LBL_66:184]:>[55], <[52]
BB [56:LBL_67:189]:>[56,57], <[54]
BB [57:LBL_68:194]:>[59,61], <[55]
BB [58:LBL_69:200]:>[58], <[55]
BB [59:LBL_70:202]:>[61,139], <[57]
BB [60:LBL_71:206]:>[60], <[56]
BB [61:LBL_72:208]:>[63,65], <[59]
BB [62:LBL_73:214]:>[62], <[50,51,52,53,56,58]
BB [63:LBL_74:216]:>[65,139], <[61]
BB [64:LBL_75:219]:>[67], <[49,60]
BB [66:LBL_77:229]:>[139], <[44,45,49,60,62]
BB [68:LBL_79:236]:>[138], <[43,63]
BB [69:LBL_29:239]:>[69,70,109], <[5,9,11,12,13,14,15,20,22,23,24,25,26,29,31,32,33,34,35,36,38]
BB [70:LBL_80:244]:>[109,139], <[68]
BB [71:LBL_81:246]:>[72], <[68]
BB [73:LBL_82:253]:>[73,74], <[70]
BB [74:LBL_87:259]:>[80,109], <[72]
BB [75:LBL_86:264]:>[75,76,78], <[72]
BB [76:LBL_88:269]:>[78,139], <[74]
BB [77:LBL_89:271]:>[77], <[74]
BB [78:LBL_90:273]:>[80,109], <[76]
BB [79:LBL_85:279]:>[79], <[74,75]
BB [80:LBL_83:281]:>[109,139], <[78]
BB [81:LBL_84:284]:>[81,109], <[73,77]
BB [82:LBL_91:290]:>[83], <[80]
BB [84:LBL_93:297]:>[84,85], <[81]
BB [85:LBL_94:304]:>[108], <[83]
BB [86:LBL_95:311]:>[86,87,106], <[83]
BB [87:LBL_96:316]:>[106,139], <[85]
BB [88:LBL_97:318]:>[89], <[85]
BB [90:LBL_99:325]:>[90,91], <[87]
BB [91:LBL_100:333]:>[104,106], <[89]
BB [92:LBL_101:338]:>[92,93,102], <[89]
BB [93:LBL_132:-1]:>[93,102], <[91]
BB [94:LBL_102:344]:>[94,95,102], <[91,92]
BB [95:LBL_103:347]:>[102,139], <[93]
BB [96:LBL_104:349]:>[96], <[93]
BB [97:LBL_105:354]:>[97,98], <[95]
BB [98:LBL_106:359]:>[100,102], <[96]
BB [99:LBL_107:365]:>[99], <[96]
BB [100:LBL_108:367]:>[102,139], <[98]
BB [101:LBL_109:371]:>[101], <[97]
BB [102:LBL_110:373]:>[104,106], <[100]
BB [103:LBL_111:379]:>[103], <[91,92,93,94,97,99]
BB [104:LBL_112:381]:>[106,139], <[102]
BB [105:LBL_113:384]:>[108], <[90,101]
BB [107:LBL_115:394]:>[139], <[85,86,90,101,103]
BB [109:LBL_117:401]:>[138], <[84,104]
BB [110:LBL_4:405]:>[111], <[68,69,73,77,79,80]
BB [112:LBL_5:413]:>[113,114], <[109]
BB [114:LBL_10:420]:>[137], <[111]
BB [115:LBL_9:427]:>[115,116,135], <[111]
BB [116:LBL_11:432]:>[135,139], <[114]
BB [117:LBL_12:434]:>[118], <[114]
BB [119:LBL_13:441]:>[119,120], <[116]
BB [120:LBL_18:449]:>[133,135], <[118]
BB [121:LBL_17:454]:>[121,122,131], <[118]
BB [122:LBL_133:-1]:>[122,131], <[120]
BB [123:LBL_21:460]:>[123,124,131], <[120,121]
BB [124:LBL_19:463]:>[131,139], <[122]
BB [125:LBL_20:465]:>[125], <[122]
BB [126:LBL_22:470]:>[126,127], <[124]
BB [127:LBL_26:475]:>[129,131], <[125]
BB [128:LBL_25:481]:>[128], <[125]
BB [129:LBL_23:483]:>[131,139], <[127]
BB [130:LBL_24:487]:>[130], <[126]
BB [131:LBL_27:489]:>[133,135], <[129]
BB [132:LBL_16:495]:>[132], <[120,121,122,123,126,128]
BB [133:LBL_14:497]:>[135,139], <[131]
BB [134:LBL_15:500]:>[137], <[119,130]
BB [136:LBL_8:510]:>[139], <[114,115,119,130,132]
BB [138:LBL_7:517]:>[139], <[113,133]
BB [139:LBL_3:519]:>[139], <[67,108]
BB [140:LBL_134:-1]:<[0,18,36,45,53,58,62,65,69,75,79,86,94,99,103,106,115,123,128,132,135,137,138]
2015-05-28T14:11:20.780-05:00: BasicCompilerPassListener:
Instructions[nested_ensures.rb#0#_transaction,IRMethod,AddLocalVarLoadStoreInstructions]:
BB [1:LBL_118:-1]
BB [2:LBL_119:-1]
%self = recv_self()
%v_0 = load_implicit_closure()
%current_scope = copy(scope<0>)
check_arity(;req: 1, opt: 1, *r: false, kw: false)
%t_conn_62 = recv_pre_reqd_arg()
%t_opts_63 = recv_opt_arg(;index:0, req: 1, pre: 1)
bne(LBL_0:11, %t_opts_63, %undefined)
BB [3:LBL_120:-1]
%v_3 = search_const(%current_scope ;name: OPTS, no_priv: false)
%t_opts_63 = copy(%v_3)
BB [4:LBL_0:11]
line_num(;n: 1)
%v_4 = call_1o(%t_opts_63, :'rollback' ;n:[], t:NO, cl:false)
%t_rollback_64 = copy(%v_4)
line_num(;n: 2)
%v_5 = get_global_var($!)
BB [6:LBL_1:19]
line_num(;n: 4)
binding_store(%t_rollback_64, rollback(0:2) ;scope_name: _transaction)
binding_store(%t_conn_62, conn(0:0) ;scope_name: _transaction)
binding_store(%t_opts_63, opts(0:1) ;scope_name: _transaction)
%v_31 = call(%self, %t_conn_62, %t_opts_63 ;n:add_transaction, t:FU, cl:false)
line_num(;n: 5)
%v_32 = call(%self, %t_conn_62, %t_opts_63 ;n:begin_transaction, t:FU, cl:false)
line_num(;n: 6)
%v_33 = call_1o(%t_rollback_64, :'always' ;n:==, t:NO, cl:false)
b_false(LBL_30:118, %v_33)
BB [7:LBL_121:-1]
line_num(;n: 7)
%v_34 = get_global_var($!)
BB [9:LBL_32:32]
line_num(;n: 9)
%v_40 = yield(%v_0, %t_conn_62 ;unwrap: false)
%t_ret_65 = copy(%v_40)
%v_39 = copy(%v_40)
BB [10:LBL_41:39]
binding_store(%t_ret_65, ret(0:3) ;scope_name: _transaction)
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_42:46, %t_e1_66)
BB [11:LBL_122:-1]
jump(LBL_45:57)
BB [12:LBL_42:46]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_43:50, %v_36, %undefined)
BB [13:LBL_123:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [14:LBL_43:50]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_44:54, %v_37, %undefined)
BB [15:LBL_124:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [16:LBL_44:54]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [17:LBL_45:57]
jump(LBL_34:116)
BB [18:LBL_40:60]
%t_e_70 = binding_load(e(0:5) ;scope: _transaction)
%t_ret_65 = binding_load(ret(0:3) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%t_opts_63 = binding_load(opts(0:1) ;scope: _transaction)
%v_41 = recv_ruby_exc()
binding_store(%t_ret_65, ret(0:3) ;scope_name: _transaction)
%v_42 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_43 = rescue_eqq(Array:[%v_42], %v_41)
b_true(LBL_47:67, %v_43)
BB [19:LBL_46:65]
throw(%v_41)
BB [20:LBL_47:67]
%v_44 = get_global_var($!)
%t_e1_66 = copy(%v_44)
line_num(;n: 12)
binding_store(%t_e1_66, e1(0:4) ;scope_name: _transaction)
%v_45 = call_1o(%self, %v_44 ;n:raise, t:FU, cl:false)
%v_39 = copy(%v_45)
BB [21:LBL_48:73]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_49:80, %t_e1_66)
BB [22:LBL_125:-1]
jump(LBL_52:91)
BB [23:LBL_49:80]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_50:84, %v_36, %undefined)
BB [24:LBL_126:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [25:LBL_50:84]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_51:88, %v_37, %undefined)
BB [26:LBL_127:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [27:LBL_51:88]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [28:LBL_52:91]
jump(LBL_34:116)
BB [29:LBL_35:95]
%t_e1_66 = binding_load(e1(0:4) ;scope: _transaction)
%v_46 = recv_jruby_exc()
BB [30:LBL_33:97]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_36:103, %t_e1_66)
BB [31:LBL_128:-1]
jump(LBL_37:114)
BB [32:LBL_36:103]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_38:107, %v_36, %undefined)
BB [33:LBL_129:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [34:LBL_38:107]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_39:111, %v_37, %undefined)
BB [35:LBL_130:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [36:LBL_39:111]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [37:LBL_37:114]
throw(%v_46)
BB [38:LBL_34:116]
jump(LBL_31:122)
BB [39:LBL_30:118]
line_num(;n: 19)
%v_47 = yield(%v_0, %t_conn_62 ;unwrap: false)
%v_39 = copy(%v_47)
BB [40:LBL_31:122]
%v_30 = copy(%v_39)
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [42:LBL_55:132]
line_num(;n: 36)
%v_9 = call(%self, %t_e_70, %t_conn_62, %t_opts_63 ;n:commit_or_rollback_transaction, t:FU, cl:false)
%t_committed_67 = copy(%v_9)
BB [44:LBL_56:139]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [45:LBL_57:146]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%v_10 = recv_ruby_exc()
binding_store(%t_committed_67, committed(0:6) ;scope_name: _transaction)
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_59:153, %v_12)
BB [46:LBL_58:151]
throw(%v_10)
BB [47:LBL_59:153]
%v_13 = get_global_var($!)
%t_e2_68 = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [49:LBL_61:160]
line_num(;n: 40)
binding_store(%t_e2_68, e2(0:7) ;scope_name: _transaction)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>%t_conn_62})
%v_18 = call(%self, %t_e2_68, %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [50:LBL_62:168]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [51:LBL_63:173]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%t_opts_63 = binding_load(opts(0:1) ;scope: _transaction)
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_64:179, %v_21, %undefined)
BB [52:LBL_131:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [53:LBL_64:179]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_66:184, %v_22)
BB [54:LBL_65:182]
throw(%v_19)
BB [55:LBL_66:184]
%v_23 = get_global_var($!)
%t_e4_69 = copy(%v_23)
line_num(;n: 43)
BB [56:LBL_67:189]
line_num(;n: 44)
binding_store(%t_e4_69, e4(0:8) ;scope_name: _transaction)
%v_26 = call(%self, %t_conn_62, %t_opts_63 ;n:rollback_transaction, t:FU, cl:false)
BB [57:LBL_68:194]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
jump(LBL_71:206)
BB [58:LBL_69:200]
%t_e4_69 = binding_load(e4(0:8) ;scope: _transaction)
%v_27 = recv_jruby_exc()
BB [59:LBL_70:202]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [60:LBL_71:206]
%v_15 = copy(%v_26)
BB [61:LBL_72:208]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [62:LBL_73:214]
%v_28 = recv_jruby_exc()
BB [63:LBL_74:216]
put_global_var($!, %v_14)
throw(%v_28)
BB [64:LBL_75:219]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [66:LBL_77:229]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [68:LBL_79:236]
jump(LBL_3:519)
BB [69:LBL_29:239]
%t_ret_65 = binding_load(ret(0:3) ;scope: _transaction)
%t_rollback_64 = binding_load(rollback(0:2) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%t_opts_63 = binding_load(opts(0:1) ;scope: _transaction)
%v_48 = recv_ruby_exc()
%v_49 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_50 = rescue_eqq(Array:[%v_49], %v_48)
b_true(LBL_81:246, %v_50)
BB [70:LBL_80:244]
throw(%v_48)
BB [71:LBL_81:246]
%v_51 = get_global_var($!)
%t_e_70 = copy(%v_51)
line_num(;n: 23)
%v_52 = get_global_var($!)
BB [73:LBL_82:253]
line_num(;n: 25)
binding_store(%t_e_70, e(0:5) ;scope_name: _transaction)
%v_54 = call(%self, %t_conn_62, %t_opts_63 ;n:rollback_transaction, t:FU, cl:false)
BB [74:LBL_87:259]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [75:LBL_86:264]
%t_e_70 = binding_load(e(0:5) ;scope: _transaction)
%t_ret_65 = binding_load(ret(0:3) ;scope: _transaction)
%t_rollback_64 = binding_load(rollback(0:2) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%t_opts_63 = binding_load(opts(0:1) ;scope: _transaction)
%v_55 = recv_ruby_exc()
%v_56 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_57 = rescue_eqq(Array:[%v_56], %v_55)
b_true(LBL_89:271, %v_57)
BB [76:LBL_88:269]
throw(%v_55)
BB [77:LBL_89:271]
BB [78:LBL_90:273]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [79:LBL_85:279]
%v_58 = recv_jruby_exc()
BB [80:LBL_83:281]
put_global_var($!, %v_52)
throw(%v_58)
BB [81:LBL_84:284]
line_num(;n: 30)
%v_59 = copy({:'conn'=>%t_conn_62, :'rollback'=>%t_rollback_64})
%v_60 = call(%self, %t_e_70, %v_59 ;n:transaction_error, t:FU, cl:false)
line_num(;n: 31)
%v_30 = copy(%t_ret_65)
BB [82:LBL_91:290]
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [84:LBL_93:297]
line_num(;n: 36)
%v_9 = call(%self, %t_e_70, %t_conn_62, %t_opts_63 ;n:commit_or_rollback_transaction, t:FU, cl:false)
%t_committed_67 = copy(%v_9)
BB [85:LBL_94:304]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [86:LBL_95:311]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%v_10 = recv_ruby_exc()
binding_store(%t_committed_67, committed(0:6) ;scope_name: _transaction)
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_97:318, %v_12)
BB [87:LBL_96:316]
throw(%v_10)
BB [88:LBL_97:318]
%v_13 = get_global_var($!)
%t_e2_68 = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [90:LBL_99:325]
line_num(;n: 40)
binding_store(%t_e2_68, e2(0:7) ;scope_name: _transaction)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>%t_conn_62})
%v_18 = call(%self, %t_e2_68, %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [91:LBL_100:333]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [92:LBL_101:338]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%t_opts_63 = binding_load(opts(0:1) ;scope: _transaction)
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_102:344, %v_21, %undefined)
BB [93:LBL_132:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [94:LBL_102:344]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_104:349, %v_22)
BB [95:LBL_103:347]
throw(%v_19)
BB [96:LBL_104:349]
%v_23 = get_global_var($!)
%t_e4_69 = copy(%v_23)
line_num(;n: 43)
BB [97:LBL_105:354]
line_num(;n: 44)
binding_store(%t_e4_69, e4(0:8) ;scope_name: _transaction)
%v_26 = call(%self, %t_conn_62, %t_opts_63 ;n:rollback_transaction, t:FU, cl:false)
BB [98:LBL_106:359]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
jump(LBL_109:371)
BB [99:LBL_107:365]
%t_e4_69 = binding_load(e4(0:8) ;scope: _transaction)
%v_27 = recv_jruby_exc()
BB [100:LBL_108:367]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [101:LBL_109:371]
%v_15 = copy(%v_26)
BB [102:LBL_110:373]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [103:LBL_111:379]
%v_28 = recv_jruby_exc()
BB [104:LBL_112:381]
put_global_var($!, %v_14)
throw(%v_28)
BB [105:LBL_113:384]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [107:LBL_115:394]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [109:LBL_117:401]
jump(LBL_3:519)
BB [110:LBL_4:405]
%t_e_70 = binding_load(e(0:5) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%t_opts_63 = binding_load(opts(0:1) ;scope: _transaction)
%v_61 = recv_jruby_exc()
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [112:LBL_5:413]
line_num(;n: 36)
%v_9 = call(%self, %t_e_70, %t_conn_62, %t_opts_63 ;n:commit_or_rollback_transaction, t:FU, cl:false)
%t_committed_67 = copy(%v_9)
BB [114:LBL_10:420]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [115:LBL_9:427]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%v_10 = recv_ruby_exc()
binding_store(%t_committed_67, committed(0:6) ;scope_name: _transaction)
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_12:434, %v_12)
BB [116:LBL_11:432]
throw(%v_10)
BB [117:LBL_12:434]
%v_13 = get_global_var($!)
%t_e2_68 = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [119:LBL_13:441]
line_num(;n: 40)
binding_store(%t_e2_68, e2(0:7) ;scope_name: _transaction)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>%t_conn_62})
%v_18 = call(%self, %t_e2_68, %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [120:LBL_18:449]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [121:LBL_17:454]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%t_opts_63 = binding_load(opts(0:1) ;scope: _transaction)
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_21:460, %v_21, %undefined)
BB [122:LBL_133:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [123:LBL_21:460]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_20:465, %v_22)
BB [124:LBL_19:463]
throw(%v_19)
BB [125:LBL_20:465]
%v_23 = get_global_var($!)
%t_e4_69 = copy(%v_23)
line_num(;n: 43)
BB [126:LBL_22:470]
line_num(;n: 44)
binding_store(%t_e4_69, e4(0:8) ;scope_name: _transaction)
%v_26 = call(%self, %t_conn_62, %t_opts_63 ;n:rollback_transaction, t:FU, cl:false)
BB [127:LBL_26:475]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
jump(LBL_24:487)
BB [128:LBL_25:481]
%t_e4_69 = binding_load(e4(0:8) ;scope: _transaction)
%v_27 = recv_jruby_exc()
BB [129:LBL_23:483]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [130:LBL_24:487]
%v_15 = copy(%v_26)
BB [131:LBL_27:489]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [132:LBL_16:495]
%v_28 = recv_jruby_exc()
BB [133:LBL_14:497]
put_global_var($!, %v_14)
throw(%v_28)
BB [134:LBL_15:500]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [136:LBL_8:510]
%t_committed_67 = binding_load(committed(0:6) ;scope: _transaction)
%t_conn_62 = binding_load(conn(0:0) ;scope: _transaction)
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [138:LBL_7:517]
throw(%v_61)
BB [139:LBL_3:519]
return(%v_30)
BB [140:LBL_134:-1]
------ Rescue block map ------
BB 6 --> BB 69
BB 9 --> BB 18
BB 10 --> BB 69
BB 12 --> BB 69
BB 13 --> BB 69
BB 14 --> BB 69
BB 15 --> BB 69
BB 16 --> BB 69
BB 18 --> BB 29
BB 19 --> BB 29
BB 20 --> BB 29
BB 21 --> BB 69
BB 23 --> BB 69
BB 24 --> BB 69
BB 25 --> BB 69
BB 26 --> BB 69
BB 27 --> BB 69
BB 30 --> BB 69
BB 32 --> BB 69
BB 33 --> BB 69
BB 34 --> BB 69
BB 35 --> BB 69
BB 36 --> BB 69
BB 37 --> BB 69
BB 39 --> BB 69
BB 42 --> BB 45
BB 45 --> BB 66
BB 46 --> BB 66
BB 49 --> BB 51
BB 50 --> BB 66
BB 51 --> BB 62
BB 52 --> BB 62
BB 53 --> BB 62
BB 54 --> BB 62
BB 56 --> BB 58
BB 57 --> BB 62
BB 59 --> BB 62
BB 61 --> BB 66
BB 63 --> BB 66
BB 69 --> BB 110
BB 70 --> BB 110
BB 73 --> BB 75
BB 74 --> BB 110
BB 75 --> BB 79
BB 76 --> BB 79
BB 78 --> BB 110
BB 80 --> BB 110
BB 81 --> BB 110
BB 84 --> BB 86
BB 86 --> BB 107
BB 87 --> BB 107
BB 90 --> BB 92
BB 91 --> BB 107
BB 92 --> BB 103
BB 93 --> BB 103
BB 94 --> BB 103
BB 95 --> BB 103
BB 97 --> BB 99
BB 98 --> BB 103
BB 100 --> BB 103
BB 102 --> BB 107
BB 104 --> BB 107
BB 112 --> BB 115
BB 115 --> BB 136
BB 116 --> BB 136
BB 119 --> BB 121
BB 120 --> BB 136
BB 121 --> BB 132
BB 122 --> BB 132
BB 123 --> BB 132
BB 124 --> BB 132
BB 126 --> BB 128
BB 127 --> BB 132
BB 129 --> BB 132
BB 131 --> BB 136
BB 133 --> BB 136
:Instructions
2015-05-28T14:11:20.782-05:00: BasicCompilerPassListener: Finished Add Local Variable Load/Store Instructions on scope in 9ms.
2015-05-28T14:11:20.782-05:00: BasicCompilerPassListener: Starting Optimize Dynamic Scopes on scope INSTANCE_METHOD _transaction[nested_ensures.rb:0]
2015-05-28T14:11:20.784-05:00: BasicCompilerPassListener:
Graph:
BB [1:LBL_118:-1]:>[1,139]
BB [2:LBL_119:-1]:>[2,3], <[0]
BB [3:LBL_120:-1]:>[3], <[1]
BB [4:LBL_0:11]:>[5], <[1,2]
BB [6:LBL_1:19]:>[6,38,68], <[3]
BB [7:LBL_121:-1]:>[8], <[5]
BB [9:LBL_32:32]:>[9,17], <[6]
BB [10:LBL_41:39]:>[10,11,68], <[8]
BB [11:LBL_122:-1]:>[16], <[9]
BB [12:LBL_42:46]:>[12,13,68], <[9]
BB [13:LBL_123:-1]:>[13,68], <[11]
BB [14:LBL_43:50]:>[14,15,68], <[11,12]
BB [15:LBL_124:-1]:>[15,68], <[13]
BB [16:LBL_44:54]:>[16,68], <[13,14]
BB [17:LBL_45:57]:>[37], <[10,15]
BB [18:LBL_40:60]:>[18,19,28], <[8]
BB [19:LBL_46:65]:>[28,139], <[17]
BB [20:LBL_47:67]:>[20,28], <[17]
BB [21:LBL_48:73]:>[21,22,68], <[19]
BB [22:LBL_125:-1]:>[27], <[20]
BB [23:LBL_49:80]:>[23,24,68], <[20]
BB [24:LBL_126:-1]:>[24,68], <[22]
BB [25:LBL_50:84]:>[25,26,68], <[22,23]
BB [26:LBL_127:-1]:>[26,68], <[24]
BB [27:LBL_51:88]:>[27,68], <[24,25]
BB [28:LBL_52:91]:>[37], <[21,26]
BB [29:LBL_35:95]:>[29], <[17,18,19]
BB [30:LBL_33:97]:>[30,31,68], <[28]
BB [31:LBL_128:-1]:>[36], <[29]
BB [32:LBL_36:103]:>[32,33,68], <[29]
BB [33:LBL_129:-1]:>[33,68], <[31]
BB [34:LBL_38:107]:>[34,35,68], <[31,32]
BB [35:LBL_130:-1]:>[35,68], <[33]
BB [36:LBL_39:111]:>[36,68], <[33,34]
BB [37:LBL_37:114]:>[68,139], <[30,35]
BB [38:LBL_34:116]:>[39], <[16,27]
BB [39:LBL_30:118]:>[39,68], <[5]
BB [40:LBL_31:122]:>[41], <[37,38]
BB [42:LBL_55:132]:>[43,44], <[39]
BB [44:LBL_56:139]:>[67], <[41]
BB [45:LBL_57:146]:>[45,46,65], <[41]
BB [46:LBL_58:151]:>[65,139], <[44]
BB [47:LBL_59:153]:>[48], <[44]
BB [49:LBL_61:160]:>[49,50], <[46]
BB [50:LBL_62:168]:>[63,65], <[48]
BB [51:LBL_63:173]:>[51,52,61], <[48]
BB [52:LBL_131:-1]:>[52,61], <[50]
BB [53:LBL_64:179]:>[53,54,61], <[50,51]
BB [54:LBL_65:182]:>[61,139], <[52]
BB [55:LBL_66:184]:>[55], <[52]
BB [56:LBL_67:189]:>[56,57], <[54]
BB [57:LBL_68:194]:>[59,61], <[55]
BB [58:LBL_69:200]:>[58], <[55]
BB [59:LBL_70:202]:>[61,139], <[57]
BB [60:LBL_71:206]:>[60], <[56]
BB [61:LBL_72:208]:>[63,65], <[59]
BB [62:LBL_73:214]:>[62], <[50,51,52,53,56,58]
BB [63:LBL_74:216]:>[65,139], <[61]
BB [64:LBL_75:219]:>[67], <[49,60]
BB [66:LBL_77:229]:>[139], <[44,45,49,60,62]
BB [68:LBL_79:236]:>[138], <[43,63]
BB [69:LBL_29:239]:>[69,70,109], <[5,9,11,12,13,14,15,20,22,23,24,25,26,29,31,32,33,34,35,36,38]
BB [70:LBL_80:244]:>[109,139], <[68]
BB [71:LBL_81:246]:>[72], <[68]
BB [73:LBL_82:253]:>[73,74], <[70]
BB [74:LBL_87:259]:>[80,109], <[72]
BB [75:LBL_86:264]:>[75,76,78], <[72]
BB [76:LBL_88:269]:>[78,139], <[74]
BB [77:LBL_89:271]:>[77], <[74]
BB [78:LBL_90:273]:>[80,109], <[76]
BB [79:LBL_85:279]:>[79], <[74,75]
BB [80:LBL_83:281]:>[109,139], <[78]
BB [81:LBL_84:284]:>[81,109], <[73,77]
BB [82:LBL_91:290]:>[83], <[80]
BB [84:LBL_93:297]:>[84,85], <[81]
BB [85:LBL_94:304]:>[108], <[83]
BB [86:LBL_95:311]:>[86,87,106], <[83]
BB [87:LBL_96:316]:>[106,139], <[85]
BB [88:LBL_97:318]:>[89], <[85]
BB [90:LBL_99:325]:>[90,91], <[87]
BB [91:LBL_100:333]:>[104,106], <[89]
BB [92:LBL_101:338]:>[92,93,102], <[89]
BB [93:LBL_132:-1]:>[93,102], <[91]
BB [94:LBL_102:344]:>[94,95,102], <[91,92]
BB [95:LBL_103:347]:>[102,139], <[93]
BB [96:LBL_104:349]:>[96], <[93]
BB [97:LBL_105:354]:>[97,98], <[95]
BB [98:LBL_106:359]:>[100,102], <[96]
BB [99:LBL_107:365]:>[99], <[96]
BB [100:LBL_108:367]:>[102,139], <[98]
BB [101:LBL_109:371]:>[101], <[97]
BB [102:LBL_110:373]:>[104,106], <[100]
BB [103:LBL_111:379]:>[103], <[91,92,93,94,97,99]
BB [104:LBL_112:381]:>[106,139], <[102]
BB [105:LBL_113:384]:>[108], <[90,101]
BB [107:LBL_115:394]:>[139], <[85,86,90,101,103]
BB [109:LBL_117:401]:>[138], <[84,104]
BB [110:LBL_4:405]:>[111], <[68,69,73,77,79,80]
BB [112:LBL_5:413]:>[113,114], <[109]
BB [114:LBL_10:420]:>[137], <[111]
BB [115:LBL_9:427]:>[115,116,135], <[111]
BB [116:LBL_11:432]:>[135,139], <[114]
BB [117:LBL_12:434]:>[118], <[114]
BB [119:LBL_13:441]:>[119,120], <[116]
BB [120:LBL_18:449]:>[133,135], <[118]
BB [121:LBL_17:454]:>[121,122,131], <[118]
BB [122:LBL_133:-1]:>[122,131], <[120]
BB [123:LBL_21:460]:>[123,124,131], <[120,121]
BB [124:LBL_19:463]:>[131,139], <[122]
BB [125:LBL_20:465]:>[125], <[122]
BB [126:LBL_22:470]:>[126,127], <[124]
BB [127:LBL_26:475]:>[129,131], <[125]
BB [128:LBL_25:481]:>[128], <[125]
BB [129:LBL_23:483]:>[131,139], <[127]
BB [130:LBL_24:487]:>[130], <[126]
BB [131:LBL_27:489]:>[133,135], <[129]
BB [132:LBL_16:495]:>[132], <[120,121,122,123,126,128]
BB [133:LBL_14:497]:>[135,139], <[131]
BB [134:LBL_15:500]:>[137], <[119,130]
BB [136:LBL_8:510]:>[139], <[114,115,119,130,132]
BB [138:LBL_7:517]:>[139], <[113,133]
BB [139:LBL_3:519]:>[139], <[67,108]
BB [140:LBL_134:-1]:<[0,18,36,45,53,58,62,65,69,75,79,86,94,99,103,106,115,123,128,132,135,137,138]
2015-05-28T14:11:20.785-05:00: BasicCompilerPassListener:
Instructions[nested_ensures.rb#0#_transaction,IRMethod,OptimizeDynScopesPass]:
BB [1:LBL_118:-1]
BB [2:LBL_119:-1]
%self = recv_self()
%v_0 = load_implicit_closure()
%current_scope = copy(scope<0>)
check_arity(;req: 1, opt: 1, *r: false, kw: false)
%t_conn_62 = recv_pre_reqd_arg()
%t_opts_63 = recv_opt_arg(;index:0, req: 1, pre: 1)
bne(LBL_0:11, %t_opts_63, %undefined)
BB [3:LBL_120:-1]
%v_3 = search_const(%current_scope ;name: OPTS, no_priv: false)
%t_opts_63 = copy(%v_3)
BB [4:LBL_0:11]
line_num(;n: 1)
%v_4 = call_1o(%t_opts_63, :'rollback' ;n:[], t:NO, cl:false)
%t_rollback_64 = copy(%v_4)
line_num(;n: 2)
%v_5 = get_global_var($!)
BB [6:LBL_1:19]
line_num(;n: 4)
%v_31 = call(%self, %t_conn_62, %t_opts_63 ;n:add_transaction, t:FU, cl:false)
line_num(;n: 5)
%v_32 = call(%self, %t_conn_62, %t_opts_63 ;n:begin_transaction, t:FU, cl:false)
line_num(;n: 6)
%v_33 = call_1o(%t_rollback_64, :'always' ;n:==, t:NO, cl:false)
b_false(LBL_30:118, %v_33)
BB [7:LBL_121:-1]
line_num(;n: 7)
%v_34 = get_global_var($!)
BB [9:LBL_32:32]
line_num(;n: 9)
%v_40 = yield(%v_0, %t_conn_62 ;unwrap: false)
%t_ret_65 = copy(%v_40)
%v_39 = copy(%v_40)
BB [10:LBL_41:39]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_42:46, %t_e1_66)
BB [11:LBL_122:-1]
jump(LBL_45:57)
BB [12:LBL_42:46]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_43:50, %v_36, %undefined)
BB [13:LBL_123:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [14:LBL_43:50]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_44:54, %v_37, %undefined)
BB [15:LBL_124:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [16:LBL_44:54]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [17:LBL_45:57]
jump(LBL_34:116)
BB [18:LBL_40:60]
%v_41 = recv_ruby_exc()
%v_42 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_43 = rescue_eqq(Array:[%v_42], %v_41)
b_true(LBL_47:67, %v_43)
BB [19:LBL_46:65]
throw(%v_41)
BB [20:LBL_47:67]
%v_44 = get_global_var($!)
%t_e1_66 = copy(%v_44)
line_num(;n: 12)
%v_45 = call_1o(%self, %v_44 ;n:raise, t:FU, cl:false)
%v_39 = copy(%v_45)
BB [21:LBL_48:73]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_49:80, %t_e1_66)
BB [22:LBL_125:-1]
jump(LBL_52:91)
BB [23:LBL_49:80]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_50:84, %v_36, %undefined)
BB [24:LBL_126:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [25:LBL_50:84]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_51:88, %v_37, %undefined)
BB [26:LBL_127:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [27:LBL_51:88]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [28:LBL_52:91]
jump(LBL_34:116)
BB [29:LBL_35:95]
%v_46 = recv_jruby_exc()
BB [30:LBL_33:97]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_36:103, %t_e1_66)
BB [31:LBL_128:-1]
jump(LBL_37:114)
BB [32:LBL_36:103]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_38:107, %v_36, %undefined)
BB [33:LBL_129:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [34:LBL_38:107]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_39:111, %v_37, %undefined)
BB [35:LBL_130:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [36:LBL_39:111]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [37:LBL_37:114]
throw(%v_46)
BB [38:LBL_34:116]
jump(LBL_31:122)
BB [39:LBL_30:118]
line_num(;n: 19)
%v_47 = yield(%v_0, %t_conn_62 ;unwrap: false)
%v_39 = copy(%v_47)
BB [40:LBL_31:122]
%v_30 = copy(%v_39)
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [42:LBL_55:132]
line_num(;n: 36)
%v_9 = call(%self, %t_e_70, %t_conn_62, %t_opts_63 ;n:commit_or_rollback_transaction, t:FU, cl:false)
%t_committed_67 = copy(%v_9)
BB [44:LBL_56:139]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [45:LBL_57:146]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_59:153, %v_12)
BB [46:LBL_58:151]
throw(%v_10)
BB [47:LBL_59:153]
%v_13 = get_global_var($!)
%t_e2_68 = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [49:LBL_61:160]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>%t_conn_62})
%v_18 = call(%self, %t_e2_68, %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [50:LBL_62:168]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [51:LBL_63:173]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_64:179, %v_21, %undefined)
BB [52:LBL_131:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [53:LBL_64:179]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_66:184, %v_22)
BB [54:LBL_65:182]
throw(%v_19)
BB [55:LBL_66:184]
%v_23 = get_global_var($!)
%t_e4_69 = copy(%v_23)
line_num(;n: 43)
BB [56:LBL_67:189]
line_num(;n: 44)
%v_26 = call(%self, %t_conn_62, %t_opts_63 ;n:rollback_transaction, t:FU, cl:false)
BB [57:LBL_68:194]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
jump(LBL_71:206)
BB [58:LBL_69:200]
%v_27 = recv_jruby_exc()
BB [59:LBL_70:202]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [60:LBL_71:206]
%v_15 = copy(%v_26)
BB [61:LBL_72:208]
put_global_var($!, %v_14)
jump(LBL_75:219)
BB [62:LBL_73:214]
%v_28 = recv_jruby_exc()
BB [63:LBL_74:216]
put_global_var($!, %v_14)
throw(%v_28)
BB [64:LBL_75:219]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_79:236)
BB [66:LBL_77:229]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [68:LBL_79:236]
jump(LBL_3:519)
BB [69:LBL_29:239]
%v_48 = recv_ruby_exc()
%v_49 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_50 = rescue_eqq(Array:[%v_49], %v_48)
b_true(LBL_81:246, %v_50)
BB [70:LBL_80:244]
throw(%v_48)
BB [71:LBL_81:246]
%v_51 = get_global_var($!)
%t_e_70 = copy(%v_51)
line_num(;n: 23)
%v_52 = get_global_var($!)
BB [73:LBL_82:253]
line_num(;n: 25)
%v_54 = call(%self, %t_conn_62, %t_opts_63 ;n:rollback_transaction, t:FU, cl:false)
BB [74:LBL_87:259]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [75:LBL_86:264]
%v_55 = recv_ruby_exc()
%v_56 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_57 = rescue_eqq(Array:[%v_56], %v_55)
b_true(LBL_89:271, %v_57)
BB [76:LBL_88:269]
throw(%v_55)
BB [77:LBL_89:271]
BB [78:LBL_90:273]
put_global_var($!, %v_52)
jump(LBL_84:284)
BB [79:LBL_85:279]
%v_58 = recv_jruby_exc()
BB [80:LBL_83:281]
put_global_var($!, %v_52)
throw(%v_58)
BB [81:LBL_84:284]
line_num(;n: 30)
%v_59 = copy({:'conn'=>%t_conn_62, :'rollback'=>%t_rollback_64})
%v_60 = call(%self, %t_e_70, %v_59 ;n:transaction_error, t:FU, cl:false)
line_num(;n: 31)
%v_30 = copy(%t_ret_65)
BB [82:LBL_91:290]
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [84:LBL_93:297]
line_num(;n: 36)
%v_9 = call(%self, %t_e_70, %t_conn_62, %t_opts_63 ;n:commit_or_rollback_transaction, t:FU, cl:false)
%t_committed_67 = copy(%v_9)
BB [85:LBL_94:304]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [86:LBL_95:311]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_97:318, %v_12)
BB [87:LBL_96:316]
throw(%v_10)
BB [88:LBL_97:318]
%v_13 = get_global_var($!)
%t_e2_68 = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [90:LBL_99:325]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>%t_conn_62})
%v_18 = call(%self, %t_e2_68, %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [91:LBL_100:333]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [92:LBL_101:338]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_102:344, %v_21, %undefined)
BB [93:LBL_132:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [94:LBL_102:344]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_104:349, %v_22)
BB [95:LBL_103:347]
throw(%v_19)
BB [96:LBL_104:349]
%v_23 = get_global_var($!)
%t_e4_69 = copy(%v_23)
line_num(;n: 43)
BB [97:LBL_105:354]
line_num(;n: 44)
%v_26 = call(%self, %t_conn_62, %t_opts_63 ;n:rollback_transaction, t:FU, cl:false)
BB [98:LBL_106:359]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
jump(LBL_109:371)
BB [99:LBL_107:365]
%v_27 = recv_jruby_exc()
BB [100:LBL_108:367]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [101:LBL_109:371]
%v_15 = copy(%v_26)
BB [102:LBL_110:373]
put_global_var($!, %v_14)
jump(LBL_113:384)
BB [103:LBL_111:379]
%v_28 = recv_jruby_exc()
BB [104:LBL_112:381]
put_global_var($!, %v_14)
throw(%v_28)
BB [105:LBL_113:384]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_117:401)
BB [107:LBL_115:394]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [109:LBL_117:401]
jump(LBL_3:519)
BB [110:LBL_4:405]
%v_61 = recv_jruby_exc()
put_global_var($!, %v_5)
line_num(;n: 34)
%v_6 = get_global_var($!)
BB [112:LBL_5:413]
line_num(;n: 36)
%v_9 = call(%self, %t_e_70, %t_conn_62, %t_opts_63 ;n:commit_or_rollback_transaction, t:FU, cl:false)
%t_committed_67 = copy(%v_9)
BB [114:LBL_10:420]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [115:LBL_9:427]
%v_10 = recv_ruby_exc()
%v_11 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_12 = rescue_eqq(Array:[%v_11], %v_10)
b_true(LBL_12:434, %v_12)
BB [116:LBL_11:432]
throw(%v_10)
BB [117:LBL_12:434]
%v_13 = get_global_var($!)
%t_e2_68 = copy(%v_13)
line_num(;n: 39)
%v_14 = get_global_var($!)
BB [119:LBL_13:441]
line_num(;n: 40)
%v_16 = call_0o(%self ;n:database_error_classes, t:VA, cl:false)
%v_17 = copy({:'classes'=>%v_16, :'conn'=>%t_conn_62})
%v_18 = call(%self, %t_e2_68, %v_17 ;n:raise_error, t:FU, cl:false)
%v_15 = copy(%v_18)
BB [120:LBL_18:449]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [121:LBL_17:454]
%v_19 = recv_ruby_exc()
%v_20 = search_const(%current_scope ;name: Sequel, no_priv: false)
%v_21 = inheritance_search_const(%v_20 ;name: DatabaseError, no_priv: true)
bne(LBL_21:460, %v_21, %undefined)
BB [122:LBL_133:-1]
%v_21 = const_missing(%v_20, :'DatabaseError' ;n:const_missing, t:FU, cl:false, missing: DatabaseError)
BB [123:LBL_21:460]
%v_22 = rescue_eqq(Array:[%v_21], %v_19)
b_true(LBL_20:465, %v_22)
BB [124:LBL_19:463]
throw(%v_19)
BB [125:LBL_20:465]
%v_23 = get_global_var($!)
%t_e4_69 = copy(%v_23)
line_num(;n: 43)
BB [126:LBL_22:470]
line_num(;n: 44)
%v_26 = call(%self, %t_conn_62, %t_opts_63 ;n:rollback_transaction, t:FU, cl:false)
BB [127:LBL_26:475]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
jump(LBL_24:487)
BB [128:LBL_25:481]
%v_27 = recv_jruby_exc()
BB [129:LBL_23:483]
line_num(;n: 47)
%v_25 = call_1o(%self, %t_e4_69 ;n:raise, t:FU, cl:false)
throw(%v_27)
BB [130:LBL_24:487]
%v_15 = copy(%v_26)
BB [131:LBL_27:489]
put_global_var($!, %v_14)
jump(LBL_15:500)
BB [132:LBL_16:495]
%v_28 = recv_jruby_exc()
BB [133:LBL_14:497]
put_global_var($!, %v_14)
throw(%v_28)
BB [134:LBL_15:500]
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
jump(LBL_7:517)
BB [136:LBL_8:510]
%v_29 = recv_jruby_exc()
put_global_var($!, %v_6)
line_num(;n: 52)
%v_7 = call(%self, %t_conn_62, %t_committed_67 ;n:remove_transaction, t:FU, cl:false)
throw(%v_29)
BB [138:LBL_7:517]
throw(%v_61)
BB [139:LBL_3:519]
return(%v_30)
BB [140:LBL_134:-1]
------ Rescue block map ------
BB 6 --> BB 69
BB 9 --> BB 18
BB 10 --> BB 69
BB 12 --> BB 69
BB 13 --> BB 69
BB 14 --> BB 69
BB 15 --> BB 69
BB 16 --> BB 69
BB 18 --> BB 29
BB 19 --> BB 29
BB 20 --> BB 29
BB 21 --> BB 69
BB 23 --> BB 69
BB 24 --> BB 69
BB 25 --> BB 69
BB 26 --> BB 69
BB 27 --> BB 69
BB 30 --> BB 69
BB 32 --> BB 69
BB 33 --> BB 69
BB 34 --> BB 69
BB 35 --> BB 69
BB 36 --> BB 69
BB 37 --> BB 69
BB 39 --> BB 69
BB 42 --> BB 45
BB 45 --> BB 66
BB 46 --> BB 66
BB 49 --> BB 51
BB 50 --> BB 66
BB 51 --> BB 62
BB 52 --> BB 62
BB 53 --> BB 62
BB 54 --> BB 62
BB 56 --> BB 58
BB 57 --> BB 62
BB 59 --> BB 62
BB 61 --> BB 66
BB 63 --> BB 66
BB 69 --> BB 110
BB 70 --> BB 110
BB 73 --> BB 75
BB 74 --> BB 110
BB 75 --> BB 79
BB 76 --> BB 79
BB 78 --> BB 110
BB 80 --> BB 110
BB 81 --> BB 110
BB 84 --> BB 86
BB 86 --> BB 107
BB 87 --> BB 107
BB 90 --> BB 92
BB 91 --> BB 107
BB 92 --> BB 103
BB 93 --> BB 103
BB 94 --> BB 103
BB 95 --> BB 103
BB 97 --> BB 99
BB 98 --> BB 103
BB 100 --> BB 103
BB 102 --> BB 107
BB 104 --> BB 107
BB 112 --> BB 115
BB 115 --> BB 136
BB 116 --> BB 136
BB 119 --> BB 121
BB 120 --> BB 136
BB 121 --> BB 132
BB 122 --> BB 132
BB 123 --> BB 132
BB 124 --> BB 132
BB 126 --> BB 128
BB 127 --> BB 132
BB 129 --> BB 132
BB 131 --> BB 136
BB 133 --> BB 136
:Instructions
2015-05-28T14:11:20.786-05:00: BasicCompilerPassListener: Finished Optimize Dynamic Scopes on scope in 1ms.
2015-05-28T14:11:20.786-05:00: BasicCompilerPassListener: Starting Add Call Protocol Instructions (push/pop of dyn-scope, frame, impl-class values) on scope INSTANCE_METHOD _transaction[nested_ensures.rb:0]
2015-05-28T14:11:20.789-05:00: BasicCompilerPassListener:
Graph:
BB [1:LBL_118:-1]:>[1,139]
BB [2:LBL_119:-1]:>[2,3,140], <[0]
BB [3:LBL_120:-1]:>[3,140], <[1]
BB [4:LBL_0:11]:>[5,140], <[1,2]
BB [6:LBL_1:19]:>[6,38,68], <[3]
BB [7:LBL_121:-1]:>[8,140], <[5]
BB [9:LBL_32:32]:>[9,17], <[6]
BB [10:LBL_41:39]:>[10,11,68], <[8]
BB [11:LBL_122:-1]:>[16,140], <[9]
BB [12:LBL_42:46]:>[12,13,68], <[9]
BB [13:LBL_123:-1]:>[13,68], <[11]
BB [14:LBL_43:50]:>[14,15,68], <[11,12]
BB [15:LBL_124:-1]:>[15,68], <[13]
BB [16:LBL_44:54]:>[16,68], <[13,14]
BB [17:LBL_45:57]:>[37,140], <[10,15]
BB [18:LBL_40:60]:>[18,19,28], <[8]
BB [19:LBL_46:65]:>[28,139], <[17]
BB [20:LBL_47:67]:>[20,28], <[17]
BB [21:LBL_48:73]:>[21,22,68], <[19]
BB [22:LBL_125:-1]:>[27,140], <[20]
BB [23:LBL_49:80]:>[23,24,68], <[20]
BB [24:LBL_126:-1]:>[24,68], <[22]
BB [25:LBL_50:84]:>[25,26,68], <[22,23]
BB [26:LBL_127:-1]:>[26,68], <[24]
BB [27:LBL_51:88]:>[27,68], <[24,25]
BB [28:LBL_52:91]:>[37,140], <[21,26]
BB [29:LBL_35:95]:>[29,140], <[17,18,19]
BB [30:LBL_33:97]:>[30,31,68], <[28]
BB [31:LBL_128:-1]:>[36,140], <[29]
BB [32:LBL_36:103]:>[32,33,68], <[29]
BB [33:LBL_129:-1]:>[33,68], <[31]
BB [34:LBL_38:107]:>[34,35,68], <[31,32]
BB [35:LBL_130:-1]:>[35,68], <[33]
BB [36:LBL_39:111]:>[36,68], <[33,34]
BB [37:LBL_37:114]:>[68,139], <[30,35]
BB [38:LBL_34:116]:>[39,140], <[16,27]
BB [39:LBL_30:118]:>[39,68], <[5]
BB [40:LBL_31:122]:>[41,140], <[37,38]
BB [42:LBL_55:132]:>[43,44], <[39]
BB [44:LBL_56:139]:>[67,140], <[41]
BB [45:LBL_57:146]:>[45,46,65], <[41]
BB [46:LBL_58:151]:>[65,139], <[44]
BB [47:LBL_59:153]:>[48,140], <[44]
BB [49:LBL_61:160]:>[49,50], <[46]
BB [50:LBL_62:168]:>[63,65], <[48]
BB [51:LBL_63:173]:>[51,52,61], <[48]
BB [52:LBL_131:-1]:>[52,61], <[50]
BB [53:LBL_64:179]:>[53,54,61], <[50,51]
BB [54:LBL_65:182]:>[61,139], <[52]
BB [55:LBL_66:184]:>[55,140], <[52]
BB [56:LBL_67:189]:>[56,57], <[54]
BB [57:LBL_68:194]:>[59,61], <[55]
BB [58:LBL_69:200]:>[58,140], <[55]
BB [59:LBL_70:202]:>[61,139], <[57]
BB [60:LBL_71:206]:>[60,140], <[56]
BB [61:LBL_72:208]:>[63,65], <[59]
BB [62:LBL_73:214]:>[62,140], <[50,51,52,53,56,58]
BB [63:LBL_74:216]:>[65,139], <[61]
BB [64:LBL_75:219]:>[67,140], <[49,60]
BB [66:LBL_77:229]:>[139,140], <[44,45,49,60,62]
BB [68:LBL_79:236]:>[138,140], <[43,63]
BB [69:LBL_29:239]:>[69,70,109], <[5,9,11,12,13,14,15,20,22,23,24,25,26,29,31,32,33,34,35,36,38]
BB [70:LBL_80:244]:>[109,139], <[68]
BB [71:LBL_81:246]:>[72,140], <[68]
BB [73:LBL_82:253]:>[73,74], <[70]
BB [74:LBL_87:259]:>[80,109], <[72]
BB [75:LBL_86:264]:>[75,76,78], <[72]
BB [76:LBL_88:269]:>[78,139], <[74]
BB [77:LBL_89:271]:>[77,140], <[74]
BB [78:LBL_90:273]:>[80,109], <[76]
BB [79:LBL_85:279]:>[79,140], <[74,75]
BB [80:LBL_83:281]:>[109,139], <[78]
BB [81:LBL_84:284]:>[81,109], <[73,77]
BB [82:LBL_91:290]:>[83,140], <[80]
BB [84:LBL_93:297]:>[84,85], <[81]
BB [85:LBL_94:304]:>[108,140], <[83]
BB [86:LBL_95:311]:>[86,87,106], <[83]
BB [87:LBL_96:316]:>[106,139], <[85]
BB [88:LBL_97:318]:>[89,140], <[85]
BB [90:LBL_99:325]:>[90,91], <[87]
BB [91:LBL_100:333]:>[104,106], <[89]
BB [92:LBL_101:338]:>[92,93,102], <[89]
BB [93:LBL_132:-1]:>[93,102], <[91]
BB [94:LBL_102:344]:>[94,95,102], <[91,92]
BB [95:LBL_103:347]:>[102,139], <[93]
BB [96:LBL_104:349]:>[96,140], <[93]
BB [97:LBL_105:354]:>[97,98], <[95]
BB [98:LBL_106:359]:>[100,102], <[96]
BB [99:LBL_107:365]:>[99,140], <[96]
BB [100:LBL_108:367]:>[102,139], <[98]
BB [101:LBL_109:371]:>[101,140], <[97]
BB [102:LBL_110:373]:>[104,106], <[100]
BB [103:LBL_111:379]:>[103,140], <[91,92,93,94,97,99]
BB [104:LBL_112:381]:>[106,139], <[102]
BB [105:LBL_113:384]:>[108,140], <[90,101]
BB [107:LBL_115:394]:>[139,140], <[85,86,90,101,103]
BB [109:LBL_117:401]:>[138,140], <[84,104]
BB [110:LBL_4:405]:>[111,140], <[68,69,73,77,79,80]
BB [112:LBL_5:413]:>[113,114], <[109]
BB [114:LBL_10:420]:>[137,140], <[111]
BB [115:LBL_9:427]:>[115,116,135], <[111]
BB [116:LBL_11:432]:>[135,139], <[114]
BB [117:LBL_12:434]:>[118,140], <[114]
BB [119:LBL_13:441]:>[119,120], <[116]
BB [120:LBL_18:449]:>[133,135], <[118]
BB [121:LBL_17:454]:>[121,122,131], <[118]
BB [122:LBL_133:-1]:>[122,131], <[120]
BB [123:LBL_21:460]:>[123,124,131], <[120,121]
BB [124:LBL_19:463]:>[131,139], <[122]
BB [125:LBL_20:465]:>[125,140], <[122]
BB [126:LBL_22:470]:>[126,127], <[124]
BB [127:LBL_26:475]:>[129,131], <[125]
BB [128:LBL_25:481]:>[128,140], <[125]
BB [129:LBL_23:483]:>[131,139], <[127]
BB [130:LBL_24:487]:>[130,140], <[126]
BB [131:LBL_27:489]:>[133,135], <[129]
BB [132:LBL_16:495]:>[132,140], <[120,121,122,123,126,128]
BB [133:LBL_14:497]:>[135,139], <[131]
BB [134:LBL_15:500]:>[137,140], <[119,130]
BB [136:LBL_8:510]:>[139,140], <[114,115,119,130,132]
BB [138:LBL_7:517]:>[139,140], <[113,133]
BB [139:LBL_3:519]:>[139,140], <[67,108]
BB [140:LBL_134:-1]:>[140], <[0,18,36,45,53,58,62,65,69,75,79,86,94,99,103,106,115,123,128,132,135,137,138,140]
BB [141:_GLOBAL_ENSURE_BLOCK__0:-1]:>[139], <[1,2,3,6,10,16,21,27,28,30,37,39,43,46,54,57,59,61,63,65,67,70,76,78,81,84,87,95,98,100,102,104,106,108,109,113,116,124,127,129,131,133,135,137,138,139]
2015-05-28T14:11:20.790-05:00: BasicCompilerPassListener:
Instructions[nested_ensures.rb#0#_transaction,IRMethod,AddCallProtocolInstructions]:
BB [1:LBL_118:-1]
push_frame()
BB [2:LBL_119:-1]
%self = recv_self()
%v_0 = load_implicit_closure()
%current_scope = copy(scope<0>)
check_arity(;req: 1, opt: 1, *r: false, kw: false)
%t_conn_62 = recv_pre_reqd_arg()
%t_opts_63 = recv_opt_arg(;index:0, req: 1, pre: 1)
bne(LBL_0:11, %t_opts_63, %undefined)
BB [3:LBL_120:-1]
%v_3 = search_const(%current_scope ;name: OPTS, no_priv: false)
%t_opts_63 = copy(%v_3)
BB [4:LBL_0:11]
line_num(;n: 1)
%v_4 = call_1o(%t_opts_63, :'rollback' ;n:[], t:NO, cl:false)
%t_rollback_64 = copy(%v_4)
line_num(;n: 2)
%v_5 = get_global_var($!)
BB [6:LBL_1:19]
line_num(;n: 4)
%v_31 = call(%self, %t_conn_62, %t_opts_63 ;n:add_transaction, t:FU, cl:false)
line_num(;n: 5)
%v_32 = call(%self, %t_conn_62, %t_opts_63 ;n:begin_transaction, t:FU, cl:false)
line_num(;n: 6)
%v_33 = call_1o(%t_rollback_64, :'always' ;n:==, t:NO, cl:false)
b_false(LBL_30:118, %v_33)
BB [7:LBL_121:-1]
line_num(;n: 7)
%v_34 = get_global_var($!)
BB [9:LBL_32:32]
line_num(;n: 9)
%v_40 = yield(%v_0, %t_conn_62 ;unwrap: false)
%t_ret_65 = copy(%v_40)
%v_39 = copy(%v_40)
BB [10:LBL_41:39]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_42:46, %t_e1_66)
BB [11:LBL_122:-1]
jump(LBL_45:57)
BB [12:LBL_42:46]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_43:50, %v_36, %undefined)
BB [13:LBL_123:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [14:LBL_43:50]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_44:54, %v_37, %undefined)
BB [15:LBL_124:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [16:LBL_44:54]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [17:LBL_45:57]
jump(LBL_34:116)
BB [18:LBL_40:60]
%v_41 = recv_ruby_exc()
%v_42 = search_const(%current_scope ;name: Exception, no_priv: false)
%v_43 = rescue_eqq(Array:[%v_42], %v_41)
b_true(LBL_47:67, %v_43)
BB [19:LBL_46:65]
throw(%v_41)
BB [20:LBL_47:67]
%v_44 = get_global_var($!)
%t_e1_66 = copy(%v_44)
line_num(;n: 12)
%v_45 = call_1o(%self, %v_44 ;n:raise, t:FU, cl:false)
%v_39 = copy(%v_45)
BB [21:LBL_48:73]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_49:80, %t_e1_66)
BB [22:LBL_125:-1]
jump(LBL_52:91)
BB [23:LBL_49:80]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_50:84, %v_36, %undefined)
BB [24:LBL_126:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [25:LBL_50:84]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_51:88, %v_37, %undefined)
BB [26:LBL_127:-1]
%v_37 = const_missing(%v_36, :'Rollback' ;n:const_missing, t:FU, cl:false, missing: Rollback)
BB [27:LBL_51:88]
%v_38 = call_1o(%self, %v_37 ;n:raise, t:FU, cl:false)
BB [28:LBL_52:91]
jump(LBL_34:116)
BB [29:LBL_35:95]
%v_46 = recv_jruby_exc()
BB [30:LBL_33:97]
put_global_var($!, %v_34)
line_num(;n: 15)
b_false(LBL_36:103, %t_e1_66)
BB [31:LBL_128:-1]
jump(LBL_37:114)
BB [32:LBL_36:103]
%v_36 = inheritance_search_const(<Class:Object> ;name: Sequel, no_priv: true)
bne(LBL_38:107, %v_36, %undefined)
BB [33:LBL_129:-1]
%v_36 = const_missing(<Class:Object>, :'Sequel' ;n:const_missing, t:FU, cl:false, missing: Sequel)
BB [34:LBL_38:107]
%v_37 = inheritance_search_const(%v_36 ;name: Rollback, no_priv: true)
bne(LBL_39:111, %v_37, %undefined)
BB [35:LBL_130:-1]