Skip to content

Instantly share code, notes, and snippets.

@kanaka
Created March 20, 2017 16:48
Show Gist options
  • Save kanaka/9c36e0b979748c10c8919af63ca5e5f1 to your computer and use it in GitHub Desktop.
Save kanaka/9c36e0b979748c10c8919af63ca5e5f1 to your computer and use it in GitHub Desktop.
[296568f953bd68] {jit-log-opt-loop
# Loop 1 (0x30c get_local(0x14)) : loop with 191 ops
[i0, i1, i2, p3, p4, p5, p6]
+375: label(i0, i1, i2, p3, p4, p5, p6, descr=TargetToken(139900644630560))
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+384: i8 = int_add(i0, 1)
+395: i10 = int_lt(i1, 0)
+403: guard_false(i10, descr=<Guard0x7f3d283a8020>) [i2, i1, i8, p6, p5, p4, p3]
+409: p11 = getarrayitem_gc_r(p5, i1, descr=<ArrayP 8>)
+428: i13 = int_lt(i8, 0)
+432: guard_false(i13, descr=<Guard0x7f3d2839a060>) [i2, i1, i8, p6, p5, p4, p3]
+484: setarrayitem_gc(p4, i8, p11, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x30e i64.const(0x11)')
+489: i15 = int_add(i8, 1)
+493: i17 = int_lt(i15, 0)
+497: guard_false(i17, descr=<Guard0x7f3d283a8080>) [i2, i1, i15, p6, p5, p4, p3]
+503: p18 = new_with_vtable(descr=<SizeDescr 16>)
+573: setfield_gc(p18, 1.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+626: setarrayitem_gc(p4, i15, p18, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x310 i64.le_u(0x6d)')
+631: p20 = getarrayitem_gc_r(p4, i15, descr=<ArrayP 8>)
+636: p21 = getarrayitem_gc_r(p4, i8, descr=<ArrayP 8>)
+641: i23 = int_sub(i15, 2)
+645: f24 = getfield_gc_f(p21, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+650: f25 = getfield_gc_f(p20, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+655: i26 = float_le(f24, f25)
+668: f27 = cast_int_to_float(i26)
+673: i29 = int_add(i23, 1)
+678: i31 = int_lt(i29, 0)
+682: guard_false(i31, descr=<Guard0x7f3d283a80e0>) [i29, i2, i1, p6, p5, p4, p3, f27]
+688: p32 = new_with_vtable(descr=<SizeDescr 16>)
+699: setfield_gc(p32, f27, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+743: setarrayitem_gc(p4, i29, p32, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x311 if(0x3)')
+748: i34 = int_add(i2, 1)
+759: i36 = int_lt(i34, 0)
+763: guard_false(i36, descr=<Guard0x7f3d283a8140>) [i34, i1, i29, p6, p5, p4, p3, None]
+769: p38 = new(descr=<SizeDescr 32>)
+787: setfield_gc(p38, ConstPtr(ptr39), descr=<FieldP tuple3.item0 8 pure>)
+791: setfield_gc(p38, i29, descr=<FieldS tuple3.item1 16 pure>)
+795: setfield_gc(p38, 0, descr=<FieldS tuple3.item2 24 pure>)
+851: setarrayitem_gc(p6, i34, p38, descr=<ArrayP 8>)
+856: p41 = getarrayitem_gc_r(p4, i29, descr=<ArrayP 8>)
+861: f42 = getfield_gc_f(p41, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+867: i44 = float_ne(f42, 0.000000)
+888: guard_false(i44, descr=<Guard0x7f3d283a81a0>) [i34, i1, i23, p6, p5, p4, p3, f42, None]
+894: i46 = getfield_gc_i(ConstPtr(ptr45), descr=<FieldS warpy.Block.inst_else_addr 48>)
+898: i47 = int_is_zero(i46)
+901: guard_false(i47, descr=<Guard0x7f3d2839a0a0>) [i34, i1, i23, p6, p5, p4, p3, f42, None]
+907: i49 = int_lt(i46, 884)
+914: guard_true(i49, descr=<Guard0x7f3d2839a0e0>) [i34, i1, i23, p6, p5, p4, p3, f42, None]
+927: i51 = getarrayitem_gc_pure_i(ConstPtr(ptr50), i46, descr=<ArrayS 8>)
+932: guard_value(i51, 20, descr=<Guard0x7f3d2839a120>) [i34, i1, i23, p6, p5, p4, p3, f42, None]
+942: guard_value(i46, 790, descr=<Guard0x7f3d2839a160>) [i34, i1, i23, p6, p5, p4, p3, f42, None]
debug_merge_point(0, 0, '0x316 get_local(0x14)')
+955: p54 = getarrayitem_gc_r(p5, i1, descr=<ArrayP 8>)
+999: setarrayitem_gc(p4, i29, p54, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x318 i64.const(0x11)')
+1004: i56 = int_add(i29, 1)
+1008: p57 = new_with_vtable(descr=<SizeDescr 16>)
+1020: setfield_gc(p57, 2.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1074: setarrayitem_gc(p4, i56, p57, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31a i64.sub(0x5c)')
+1079: p59 = getarrayitem_gc_r(p4, i56, descr=<ArrayP 8>)
+1084: p60 = getarrayitem_gc_r(p4, i29, descr=<ArrayP 8>)
+1089: i62 = int_sub(i56, 2)
+1093: f63 = getfield_gc_f(p60, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1099: f64 = getfield_gc_f(p59, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1104: f65 = float_sub(f63, f64)
+1108: i66 = cast_float_to_int(f65)
+1113: f67 = cast_int_to_float(i66)
+1118: i69 = int_add(i62, 1)
+1122: p70 = new_with_vtable(descr=<SizeDescr 16>)
+1134: setfield_gc(p70, f67, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1178: setarrayitem_gc(p4, i69, p70, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31b i32.const(0x10)')
+1183: i72 = int_add(i69, 1)
+1187: p73 = new_with_vtable(descr=<SizeDescr 16>)
+1198: setfield_gc(p73, 13.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1251: setarrayitem_gc(p4, i72, p73, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31d call_indirect(0x17)')
+1256: p75 = getarrayitem_gc_r(p4, i72, descr=<ArrayP 8>)
+1261: f76 = getfield_gc_f(p75, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1267: i77 = cast_float_to_int(f76)
+1272: i79 = int_lt(i77, 0)
+1276: guard_false(i79, descr=<Guard0x7f3d283a8200>) [i69, i34, i1, i77, p6, p5, p4, p3, None]
+1282: i81 = int_ge(i77, 23)
+1286: guard_false(i81, descr=<Guard0x7f3d2839a1a0>) [i69, i34, i1, i77, p6, p5, p4, p3, None]
+1299: i83 = getarrayitem_gc_i(ConstPtr(ptr82), i77, descr=<ArrayS 8>)
+1311: p86 = call_r(ConstClass(get_function), ConstPtr(ptr85), i83, descr=<Callr 8 ri EF=0>)
+1335: p89 = call_r(ConstClass(do_call), i69, p4, i1, p5, i34, p6, p86, 799, descr=<Callr 8 iririrri EF=5>)
+1431: guard_no_exception(descr=<Guard0x7f3d283a8260>) [p89, p6, p5, p4, p3, None]
+1446: i90 = getfield_gc_i(p89, descr=<FieldS tuple4.item0 8 pure>)
+1450: i91 = getfield_gc_i(p89, descr=<FieldS tuple4.item1 16 pure>)
+1454: i92 = getfield_gc_i(p89, descr=<FieldS tuple4.item2 24 pure>)
+1458: i93 = getfield_gc_i(p89, descr=<FieldS tuple4.item3 32 pure>)
+1462: i95 = int_lt(i90, 884)
+1469: guard_true(i95, descr=<Guard0x7f3d2839a1e0>) [p89, p6, p5, p4, p3, None]
+1475: i97 = getarrayitem_gc_pure_i(ConstPtr(ptr96), i90, descr=<ArrayS 8>)
+1487: guard_value(i97, 20, descr=<Guard0x7f3d2839a220>) [p89, p6, p5, p4, p3, None]
+1497: guard_value(i90, 780, descr=<Guard0x7f3d2839a260>) [p89, p6, p5, p4, p3, None]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+1510: label(i91, i92, i93, p3, p4, p5, p6, descr=TargetToken(139900644630640))
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+1520: i101 = int_add(i91, 1)
+1524: i103 = int_lt(i92, 0)
+1528: guard_false(i103, descr=<Guard0x7f3d283a82c0>) [i93, i92, i101, p6, p5, p4, p3]
+1534: p104 = getarrayitem_gc_r(p5, i92, descr=<ArrayP 8>)
+1546: i106 = int_lt(i101, 0)
+1550: guard_false(i106, descr=<Guard0x7f3d2839a2a0>) [i93, i92, i101, p6, p5, p4, p3]
+1602: setarrayitem_gc(p4, i101, p104, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x30e i64.const(0x11)')
+1607: i108 = int_add(i101, 1)
+1611: i110 = int_lt(i108, 0)
+1615: guard_false(i110, descr=<Guard0x7f3d283a8320>) [i93, i92, i108, p6, p5, p4, p3]
+1621: p111 = new_with_vtable(descr=<SizeDescr 16>)
+1688: setfield_gc(p111, 1.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1741: setarrayitem_gc(p4, i108, p111, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x310 i64.le_u(0x6d)')
+1746: p113 = getarrayitem_gc_r(p4, i108, descr=<ArrayP 8>)
+1751: p114 = getarrayitem_gc_r(p4, i101, descr=<ArrayP 8>)
+1756: i116 = int_sub(i108, 2)
+1760: f117 = getfield_gc_f(p114, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1766: f118 = getfield_gc_f(p113, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1771: i119 = float_le(f117, f118)
+1784: f120 = cast_int_to_float(i119)
+1789: i122 = int_add(i116, 1)
+1793: i124 = int_lt(i122, 0)
+1797: guard_false(i124, descr=<Guard0x7f3d283a8380>) [i122, i93, i92, p6, p5, p4, p3, f120]
+1803: p125 = new_with_vtable(descr=<SizeDescr 16>)
+1814: setfield_gc(p125, f120, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1859: setarrayitem_gc(p4, i122, p125, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x311 if(0x3)')
+1864: i127 = int_add(i93, 1)
+1868: i129 = int_lt(i127, 0)
+1872: guard_false(i129, descr=<Guard0x7f3d283a83e0>) [i127, i92, i122, p6, p5, p4, p3, None]
+1878: p130 = new(descr=<SizeDescr 32>)
+1896: setfield_gc(p130, ConstPtr(ptr131), descr=<FieldP tuple3.item0 8 pure>)
+1900: setfield_gc(p130, i122, descr=<FieldS tuple3.item1 16 pure>)
+1904: setfield_gc(p130, 0, descr=<FieldS tuple3.item2 24 pure>)
+1960: setarrayitem_gc(p6, i127, p130, descr=<ArrayP 8>)
+1965: p133 = getarrayitem_gc_r(p4, i122, descr=<ArrayP 8>)
+1970: f134 = getfield_gc_f(p133, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1975: i136 = float_ne(f134, 0.000000)
+1996: guard_false(i136, descr=<Guard0x7f3d283a8440>) [i127, i92, i116, p6, p5, p4, p3, f134, None]
debug_merge_point(0, 0, '0x316 get_local(0x14)')
+2002: p137 = getarrayitem_gc_r(p5, i92, descr=<ArrayP 8>)
+2046: setarrayitem_gc(p4, i122, p137, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x318 i64.const(0x11)')
+2051: i139 = int_add(i122, 1)
+2055: p140 = new_with_vtable(descr=<SizeDescr 16>)
+2066: setfield_gc(p140, 2.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+2119: setarrayitem_gc(p4, i139, p140, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31a i64.sub(0x5c)')
+2124: p142 = getarrayitem_gc_r(p4, i139, descr=<ArrayP 8>)
+2129: p143 = getarrayitem_gc_r(p4, i122, descr=<ArrayP 8>)
+2134: i145 = int_sub(i139, 2)
+2138: f146 = getfield_gc_f(p143, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+2144: f147 = getfield_gc_f(p142, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+2150: f148 = float_sub(f146, f147)
+2154: i149 = cast_float_to_int(f148)
+2159: f150 = cast_int_to_float(i149)
+2164: i152 = int_add(i145, 1)
+2168: p153 = new_with_vtable(descr=<SizeDescr 16>)
+2179: setfield_gc(p153, f150, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+2223: setarrayitem_gc(p4, i152, p153, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31b i32.const(0x10)')
+2228: i155 = int_add(i152, 1)
+2232: p156 = new_with_vtable(descr=<SizeDescr 16>)
+2243: setfield_gc(p156, 13.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+2296: setarrayitem_gc(p4, i155, p156, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31d call_indirect(0x17)')
+2301: p158 = getarrayitem_gc_r(p4, i155, descr=<ArrayP 8>)
+2306: f159 = getfield_gc_f(p158, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+2312: i160 = cast_float_to_int(f159)
+2317: i162 = int_lt(i160, 0)
+2321: guard_false(i162, descr=<Guard0x7f3d283a84a0>) [i152, i127, i92, i160, p6, p5, p4, p3, None]
+2327: i164 = int_ge(i160, 23)
+2331: guard_false(i164, descr=<Guard0x7f3d2839a2e0>) [i152, i127, i92, i160, p6, p5, p4, p3, None]
+2344: i166 = getarrayitem_gc_i(ConstPtr(ptr165), i160, descr=<ArrayS 8>)
+2356: p169 = call_r(ConstClass(get_function), ConstPtr(ptr168), i166, descr=<Callr 8 ri EF=0>)
+2374: p172 = call_r(ConstClass(do_call), i152, p4, i92, p5, i127, p6, p169, 799, descr=<Callr 8 iririrri EF=5>)
+2459: guard_no_exception(descr=<Guard0x7f3d283a8500>) [p172, p6, p5, p4, p3, None]
+2474: i173 = getfield_gc_i(p172, descr=<FieldS tuple4.item0 8 pure>)
+2478: i174 = getfield_gc_i(p172, descr=<FieldS tuple4.item1 16 pure>)
+2482: i175 = getfield_gc_i(p172, descr=<FieldS tuple4.item2 24 pure>)
+2486: i176 = getfield_gc_i(p172, descr=<FieldS tuple4.item3 32 pure>)
+2490: i178 = int_lt(i173, 884)
+2497: guard_true(i178, descr=<Guard0x7f3d2839a320>) [p172, p6, p5, p4, p3, None]
+2510: i180 = getarrayitem_gc_pure_i(ConstPtr(ptr179), i173, descr=<ArrayS 8>)
+2515: guard_value(i180, 20, descr=<Guard0x7f3d2839a360>) [p172, p6, p5, p4, p3, None]
+2525: guard_value(i173, 780, descr=<Guard0x7f3d2839a3a0>) [p172, p6, p5, p4, p3, None]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+2538: jump(i174, i175, i176, p3, p4, p5, p6, descr=TargetToken(139900644630640))
+2560: --end of the loop--
[296568f97b9728] jit-log-opt-loop}
[296568f9b59db8] {jit-log-opt-loop
# Loop 2 (0x32a end(0xf)) : entry bridge with 104 ops
[i0, i1, i2, p3, p4, p5, p6]
debug_merge_point(0, 0, '0x32a end(0xf)')
+343: i8 = int_lt(i2, 0)
+351: guard_false(i8, descr=<Guard0x7f3d283a8560>) [p6, p5, p4, p3, i2, i1, i0]
+357: p9 = getarrayitem_gc_r(p6, i2, descr=<ArrayP 8>)
+376: p10 = getfield_gc_r(p9, descr=<FieldP tuple3.item0 8 pure>)
+380: i11 = getfield_gc_i(p9, descr=<FieldS tuple3.item1 16 pure>)
+384: i12 = getfield_gc_i(p9, descr=<FieldS tuple3.item2 24 pure>)
+388: i14 = int_sub(i2, 1)
+392: p15 = getfield_gc_r(p10, descr=<FieldP warpy.Code.inst_type 40>)
+396: p16 = getfield_gc_r(p15, descr=<FieldP warpy.Type.inst_params 24>)
+400: i17 = arraylen_gc(p16, descr=<ArrayU 8>)
+404: p18 = getfield_gc_r(p10, descr=<FieldP warpy.Code.inst_locals 24>)
+408: i19 = getfield_gc_i(p18, descr=<FieldS list.length 8>)
+412: i20 = int_add(i17, i19)
+415: i21 = int_sub(i1, i20)
+425: p22 = getfield_gc_r(p15, descr=<FieldP warpy.Type.inst_results 32>)
+429: i23 = arraylen_gc(p22, descr=<ArrayU 8>)
+434: i25 = int_gt(i23, 1)
+438: guard_false(i25, descr=<Guard0x7f3d2839a3e0>) [p6, p5, p4, p3, i2, i1, i0]
+444: i27 = int_add(i0, 1)
+455: i28 = int_gt(i23, i27)
+458: guard_false(i28, descr=<Guard0x7f3d2839a420>) [p6, p5, p4, p3, i2, i1, i0]
+464: i30 = int_eq(i23, 1)
+468: guard_true(i30, descr=<Guard0x7f3d2839a460>) [p6, p5, p4, p3, i2, i1, i0]
+474: i32 = int_lt(i0, 0)
+482: guard_false(i32, descr=<Guard0x7f3d2839a4a0>) [p6, p5, p4, p3, i2, i1, i0]
+488: p33 = getarrayitem_gc_r(p4, i0, descr=<ArrayP 8>)
+507: i35 = int_sub(i0, 1)
+511: i37 = getarrayitem_gc_pure_i(p22, 0, descr=<ArrayU 8>)
+516: guard_nonnull_class(p33, 10063512, descr=<Guard0x7f3d283a85c0>) [p6, p5, p4, p3, i2, i1, i0]
+535: i39 = getfield_raw_i(i37, descr=<FieldS object_vtable.subclassrange_min 0 pure>)
+538: i40 = getfield_raw_i(i37, descr=<FieldS object_vtable.subclassrange_max 8 pure>)
+542: i41 = int_sub(i40, i39)
+545: i43 = int_sub(106, i39)
+553: i44 = uint_lt(i43, i41)
+556: guard_true(i44, descr=<Guard0x7f3d2839a4e0>) [p6, p5, p4, p3, i2, i1, i0]
+562: i45 = int_lt(i11, i35)
+565: guard_false(i45, descr=<Guard0x7f3d2839a520>) [p6, p5, p4, p3, i2, i1, i0]
+617: setarrayitem_gc(p4, i0, p33, descr=<ArrayP 8>)
+622: guard_class(p10, ConstClass(Function), descr=<Guard0x7f3d283a8620>) [i12, i14, i21, i0, p10, p6, p5, p4, p3]
+634: i48 = int_eq(i14, -1)
+638: guard_false(i48, descr=<Guard0x7f3d2839a560>) [i12, i14, i21, i0, p10, p6, p5, p4, p3]
+644: i50 = int_lt(i12, 884)
+651: guard_true(i50, descr=<Guard0x7f3d2839a5a0>) [i12, i14, i21, i0, p10, p6, p5, p4, p3]
+664: i52 = getarrayitem_gc_pure_i(ConstPtr(ptr51), i12, descr=<ArrayS 8>)
+669: guard_value(i52, 20, descr=<Guard0x7f3d2839a5e0>) [i12, i14, i21, i0, p10, p6, p5, p4, p3]
+679: guard_value(i12, 799, descr=<Guard0x7f3d2839a620>) [i12, i14, i21, i0, p10, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x31f get_local(0x14)')
+692: i56 = int_lt(i21, 0)
+696: guard_false(i56, descr=<Guard0x7f3d2839a660>) [i12, i14, i21, i0, p10, p6, p5, p4, p3]
+702: p57 = getarrayitem_gc_r(p5, i21, descr=<ArrayP 8>)
+753: setarrayitem_gc(p4, i27, p57, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x321 i64.const(0x11)')
+758: i59 = int_add(i27, 1)
+762: i61 = int_lt(i59, 0)
+766: guard_false(i61, descr=<Guard0x7f3d283a8680>) [i14, i21, i59, p6, p5, p4, p3]
+772: p62 = new_with_vtable(descr=<SizeDescr 16>)
+839: setfield_gc(p62, 1.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+892: setarrayitem_gc(p4, i59, p62, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x323 i64.sub(0x5c)')
+897: p64 = getarrayitem_gc_r(p4, i59, descr=<ArrayP 8>)
+902: p65 = getarrayitem_gc_r(p4, i27, descr=<ArrayP 8>)
+907: i67 = int_sub(i59, 2)
+911: f68 = getfield_gc_f(p65, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+916: f69 = getfield_gc_f(p64, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+921: f70 = float_sub(f68, f69)
+925: i71 = cast_float_to_int(f70)
+930: f72 = cast_int_to_float(i71)
+935: i74 = int_add(i67, 1)
+939: i76 = int_lt(i74, 0)
+943: guard_false(i76, descr=<Guard0x7f3d283a86e0>) [i74, i14, i21, p6, p5, p4, p3, f72]
+949: p77 = new_with_vtable(descr=<SizeDescr 16>)
+960: setfield_gc(p77, f72, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1005: setarrayitem_gc(p4, i74, p77, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x324 i32.const(0x10)')
+1010: i79 = int_add(i74, 1)
+1014: p80 = new_with_vtable(descr=<SizeDescr 16>)
+1025: setfield_gc(p80, 13.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1078: setarrayitem_gc(p4, i79, p80, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x326 call_indirect(0x17)')
+1083: p82 = getarrayitem_gc_r(p4, i79, descr=<ArrayP 8>)
+1088: f83 = getfield_gc_f(p82, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1093: i84 = cast_float_to_int(f83)
+1098: i86 = int_lt(i84, 0)
+1102: guard_false(i86, descr=<Guard0x7f3d283a8740>) [i74, i14, i21, i84, p6, p5, p4, p3, None]
+1108: i89 = int_ge(i84, 23)
+1112: guard_false(i89, descr=<Guard0x7f3d2839a6a0>) [i74, i14, i21, i84, p6, p5, p4, p3, None]
+1125: i91 = getarrayitem_gc_i(ConstPtr(ptr90), i84, descr=<ArrayS 8>)
+1137: p94 = call_r(ConstClass(get_function), ConstPtr(ptr93), i91, descr=<Callr 8 ri EF=0>)
+1155: p97 = call_r(ConstClass(do_call), i74, p4, i21, p5, i14, p6, p94, 808, descr=<Callr 8 iririrri EF=5>)
+1251: guard_no_exception(descr=<Guard0x7f3d283a87a0>) [p97, p6, p5, p4, p3, None]
+1266: i98 = getfield_gc_i(p97, descr=<FieldS tuple4.item0 8 pure>)
+1270: i99 = getfield_gc_i(p97, descr=<FieldS tuple4.item1 16 pure>)
+1274: i100 = getfield_gc_i(p97, descr=<FieldS tuple4.item2 24 pure>)
+1278: i101 = getfield_gc_i(p97, descr=<FieldS tuple4.item3 32 pure>)
+1282: i103 = int_lt(i98, 884)
+1289: guard_true(i103, descr=<Guard0x7f3d2839a6e0>) [p97, p6, p5, p4, p3, None]
+1295: i105 = getarrayitem_gc_pure_i(ConstPtr(ptr104), i98, descr=<ArrayS 8>)
+1307: guard_value(i105, 20, descr=<Guard0x7f3d2839a720>) [p97, p6, p5, p4, p3, None]
+1317: guard_value(i98, 780, descr=<Guard0x7f3d2839a760>) [p97, p6, p5, p4, p3, None]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+1337: i109 = getfield_gc_i(ConstPtr(ptr108), descr=<FieldS warpy.Block.inst_else_addr 48>)
+1341: guard_value(i109, 790, descr=<Guard0x7f3d283a8800>) [i101, i100, i99, p6, p5, p4, p3, None]
+1354: jump(i99, i100, i101, p3, p4, p5, p6, descr=TargetToken(139900644630640))
+1376: --end of the loop--
[296568f9c333e0] jit-log-opt-loop}
[296568fa2544e8] {jit-log-opt-bridge
# bridge out of Guard 0x7f3d283a8440 with 150 ops
[i0, i1, i2, p3, p4, p5, p6, f7]
+350: i9 = float_ne(f7, 0.000000)
+371: guard_true(i9, descr=<Guard0x7f3d283a8860>) [i0, i1, i2, p3, p4, p5, p6, f7]
debug_merge_point(0, 0, '0x313 i64.const(0x11)')
+377: i11 = int_add(i2, 1)
+381: i13 = int_lt(i11, 0)
+385: guard_false(i13, descr=<Guard0x7f3d2839a7a0>) [i0, i1, i2, p3, p4, p5, p6, f7]
+391: p14 = new_with_vtable(descr=<SizeDescr 16>)
+462: setfield_gc(p14, 1.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+515: setarrayitem_gc(p5, i11, p14, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x315 else(0x4)')
+520: i17 = int_lt(i0, 0)
+528: guard_false(i17, descr=<Guard0x7f3d283a88c0>) [p3, p4, p5, p6, i0, i1, i11]
+534: p18 = getarrayitem_gc_r(p3, i0, descr=<ArrayP 8>)
+546: p19 = getfield_gc_r(p18, descr=<FieldP tuple3.item0 8 pure>)
+550: i20 = getfield_gc_i(p18, descr=<FieldS tuple3.item1 16 pure>)
+554: i21 = getfield_gc_i(p18, descr=<FieldS tuple3.item2 24 pure>)
+554: i23 = int_sub(i0, 1)
+558: p24 = getfield_gc_r(p19, descr=<FieldP warpy.Code.inst_type 40>)
+562: p25 = getfield_gc_r(p24, descr=<FieldP warpy.Type.inst_params 24>)
+566: i26 = arraylen_gc(p25, descr=<ArrayU 8>)
+577: p27 = getfield_gc_r(p19, descr=<FieldP warpy.Code.inst_locals 24>)
+581: i28 = getfield_gc_i(p27, descr=<FieldS list.length 8>)
+592: i29 = int_add(i26, i28)
+595: i30 = int_sub(i1, i29)
+601: p31 = getfield_gc_r(p24, descr=<FieldP warpy.Type.inst_results 32>)
+605: i32 = arraylen_gc(p31, descr=<ArrayU 8>)
+609: i34 = int_gt(i32, 1)
+613: guard_false(i34, descr=<Guard0x7f3d2839a7e0>) [p3, p4, p5, p6, i0, i1, i11]
+619: i36 = int_add(i11, 1)
+623: i37 = int_gt(i32, i36)
+626: guard_false(i37, descr=<Guard0x7f3d2839a820>) [p3, p4, p5, p6, i0, i1, i11]
+632: i39 = int_eq(i32, 1)
+636: guard_true(i39, descr=<Guard0x7f3d2839a860>) [p3, p4, p5, p6, i0, i1, i11]
+642: p40 = getarrayitem_gc_r(p5, i11, descr=<ArrayP 8>)
+647: i42 = getarrayitem_gc_pure_i(p31, 0, descr=<ArrayU 8>)
+651: guard_nonnull_class(p40, 10063512, descr=<Guard0x7f3d283a8920>) [p3, p4, p5, p6, i0, i1, i11]
+669: i44 = getfield_raw_i(i42, descr=<FieldS object_vtable.subclassrange_min 0 pure>)
+672: i45 = getfield_raw_i(i42, descr=<FieldS object_vtable.subclassrange_max 8 pure>)
+683: i46 = int_sub(i45, i44)
+686: i48 = int_sub(106, i44)
+694: i49 = uint_lt(i48, i46)
+697: guard_true(i49, descr=<Guard0x7f3d2839a8a0>) [p3, p4, p5, p6, i0, i1, i11]
+703: i50 = int_lt(i20, i2)
+706: guard_false(i50, descr=<Guard0x7f3d2839a8e0>) [p3, p4, p5, p6, i0, i1, i11]
+760: setarrayitem_gc(p5, i11, p40, descr=<ArrayP 8>)
+765: i51 = getfield_gc_i(p19, descr=<FieldS warpy.Code.inst_br_addr 8>)
+769: i53 = int_lt(i51, 884)
+776: guard_true(i53, descr=<Guard0x7f3d283a8980>) [i23, i30, i11, i51, p3, p4, p5, p6]
+789: i55 = getarrayitem_gc_pure_i(ConstPtr(ptr54), i51, descr=<ArrayS 8>)
+794: guard_value(i55, 15, descr=<Guard0x7f3d2839a920>) [i23, i30, i11, i51, p3, p4, p5, p6]
+804: guard_value(i51, 810, descr=<Guard0x7f3d2839a960>) [i23, i30, i11, i51, p3, p4, p5, p6]
debug_merge_point(0, 0, '0x32a end(0xf)')
+817: i59 = int_lt(i23, 0)
+821: guard_false(i59, descr=<Guard0x7f3d2839a9a0>) [i23, i30, i11, i51, p3, p4, p5, p6]
+827: p60 = getarrayitem_gc_r(p3, i23, descr=<ArrayP 8>)
+839: p61 = getfield_gc_r(p60, descr=<FieldP tuple3.item0 8 pure>)
+843: i62 = getfield_gc_i(p60, descr=<FieldS tuple3.item1 16 pure>)
+847: i63 = getfield_gc_i(p60, descr=<FieldS tuple3.item2 24 pure>)
+851: i65 = int_sub(i23, 1)
+855: p66 = getfield_gc_r(p61, descr=<FieldP warpy.Code.inst_type 40>)
+859: p67 = getfield_gc_r(p66, descr=<FieldP warpy.Type.inst_params 24>)
+863: i68 = arraylen_gc(p67, descr=<ArrayU 8>)
+874: p69 = getfield_gc_r(p61, descr=<FieldP warpy.Code.inst_locals 24>)
+878: i70 = getfield_gc_i(p69, descr=<FieldS list.length 8>)
+889: i71 = int_add(i68, i70)
+892: i72 = int_sub(i30, i71)
+898: p73 = getfield_gc_r(p66, descr=<FieldP warpy.Type.inst_results 32>)
+902: i74 = arraylen_gc(p73, descr=<ArrayU 8>)
+906: i76 = int_gt(i74, 1)
+910: guard_false(i76, descr=<Guard0x7f3d2839a9e0>) [i23, i30, i11, i51, p3, p4, p5, p6]
+916: i78 = int_add(i11, 1)
+920: i80 = int_eq(i74, 1)
+924: guard_true(i80, descr=<Guard0x7f3d2839aa20>) [i23, i30, i11, i51, p3, p4, p5, p6]
+930: p81 = getarrayitem_gc_r(p5, i11, descr=<ArrayP 8>)
+942: i83 = getarrayitem_gc_pure_i(p73, 0, descr=<ArrayU 8>)
+953: guard_nonnull_class(p81, 10063512, descr=<Guard0x7f3d283a89e0>) [i23, i30, i11, i51, p3, p4, p5, p6]
+972: i85 = getfield_raw_i(i83, descr=<FieldS object_vtable.subclassrange_min 0 pure>)
+976: i86 = getfield_raw_i(i83, descr=<FieldS object_vtable.subclassrange_max 8 pure>)
+988: i87 = int_sub(i86, i85)
+991: i89 = int_sub(106, i85)
+1000: i90 = uint_lt(i89, i87)
+1003: guard_true(i90, descr=<Guard0x7f3d2839aa60>) [i23, i30, i11, i51, p3, p4, p5, p6]
+1009: i91 = int_lt(i62, i2)
+1012: guard_false(i91, descr=<Guard0x7f3d2839aaa0>) [i23, i30, i11, i51, p3, p4, p5, p6]
+1064: setarrayitem_gc(p5, i11, p81, descr=<ArrayP 8>)
+1069: guard_class(p61, ConstClass(Function), descr=<Guard0x7f3d283a8a40>) [i63, i65, i72, i11, p61, p3, p4, p5, p6]
+1081: i94 = int_eq(i65, -1)
+1089: guard_false(i94, descr=<Guard0x7f3d2839aae0>) [i63, i65, i72, i11, p61, p3, p4, p5, p6]
+1095: i96 = int_lt(i63, 884)
+1102: guard_true(i96, descr=<Guard0x7f3d2839ab20>) [i63, i65, i72, i11, p61, p3, p4, p5, p6]
+1108: i98 = getarrayitem_gc_pure_i(ConstPtr(ptr97), i63, descr=<ArrayS 8>)
+1120: guard_value(i98, 20, descr=<Guard0x7f3d2839ab60>) [i63, i65, i72, i11, p61, p3, p4, p5, p6]
+1130: guard_value(i63, 799, descr=<Guard0x7f3d2839aba0>) [i63, i65, i72, i11, p61, p3, p4, p5, p6]
debug_merge_point(0, 0, '0x31f get_local(0x14)')
+1143: i102 = int_lt(i72, 0)
+1151: guard_false(i102, descr=<Guard0x7f3d2839abe0>) [i63, i65, i72, i11, p61, p3, p4, p5, p6]
+1157: p103 = getarrayitem_gc_r(p4, i72, descr=<ArrayP 8>)
+1222: setarrayitem_gc(p5, i78, p103, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x321 i64.const(0x11)')
+1227: i105 = int_add(i78, 1)
+1231: i107 = int_lt(i105, 0)
+1235: guard_false(i107, descr=<Guard0x7f3d283a8aa0>) [i65, i72, i105, p3, p4, p5, p6]
+1241: p108 = new_with_vtable(descr=<SizeDescr 16>)
+1252: setfield_gc(p108, 1.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1305: setarrayitem_gc(p5, i105, p108, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x323 i64.sub(0x5c)')
+1310: p110 = getarrayitem_gc_r(p5, i105, descr=<ArrayP 8>)
+1315: p111 = getarrayitem_gc_r(p5, i78, descr=<ArrayP 8>)
+1320: i113 = int_sub(i105, 2)
+1324: f114 = getfield_gc_f(p111, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1330: f115 = getfield_gc_f(p110, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1336: f116 = float_sub(f114, f115)
+1341: i117 = cast_float_to_int(f116)
+1346: f118 = cast_int_to_float(i117)
+1351: i120 = int_add(i113, 1)
+1355: i122 = int_lt(i120, 0)
+1359: guard_false(i122, descr=<Guard0x7f3d283a8b00>) [i120, i65, i72, p3, p4, p5, p6, f118]
+1365: p123 = new_with_vtable(descr=<SizeDescr 16>)
+1376: setfield_gc(p123, f118, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1421: setarrayitem_gc(p5, i120, p123, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x324 i32.const(0x10)')
+1426: i125 = int_add(i120, 1)
+1430: p126 = new_with_vtable(descr=<SizeDescr 16>)
+1441: setfield_gc(p126, 13.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1494: setarrayitem_gc(p5, i125, p126, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x326 call_indirect(0x17)')
+1499: p128 = getarrayitem_gc_r(p5, i125, descr=<ArrayP 8>)
+1504: f129 = getfield_gc_f(p128, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1510: i130 = cast_float_to_int(f129)
+1515: i132 = int_lt(i130, 0)
+1519: guard_false(i132, descr=<Guard0x7f3d283a8b60>) [i120, i65, i72, i130, p3, p4, p5, p6, None]
+1525: i135 = int_ge(i130, 23)
+1529: guard_false(i135, descr=<Guard0x7f3d2839ac20>) [i120, i65, i72, i130, p3, p4, p5, p6, None]
+1542: i137 = getarrayitem_gc_i(ConstPtr(ptr136), i130, descr=<ArrayS 8>)
+1554: p140 = call_r(ConstClass(get_function), ConstPtr(ptr139), i137, descr=<Callr 8 ri EF=0>)
+1575: p143 = call_r(ConstClass(do_call), i120, p5, i72, p4, i65, p3, p140, 808, descr=<Callr 8 iririrri EF=5>)
+1668: guard_no_exception(descr=<Guard0x7f3d283a8bc0>) [p143, p3, p4, p5, p6, None]
+1683: i144 = getfield_gc_i(p143, descr=<FieldS tuple4.item0 8 pure>)
+1687: i145 = getfield_gc_i(p143, descr=<FieldS tuple4.item1 16 pure>)
+1691: i146 = getfield_gc_i(p143, descr=<FieldS tuple4.item2 24 pure>)
+1695: i147 = getfield_gc_i(p143, descr=<FieldS tuple4.item3 32 pure>)
+1699: i149 = int_lt(i144, 884)
+1706: guard_true(i149, descr=<Guard0x7f3d2839ac60>) [p143, p3, p4, p5, p6, None]
+1712: i151 = getarrayitem_gc_pure_i(ConstPtr(ptr150), i144, descr=<ArrayS 8>)
+1724: guard_value(i151, 20, descr=<Guard0x7f3d2839aca0>) [p143, p3, p4, p5, p6, None]
+1734: guard_value(i144, 780, descr=<Guard0x7f3d2839ace0>) [p143, p3, p4, p5, p6, None]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+1754: i155 = getfield_gc_i(ConstPtr(ptr154), descr=<FieldS warpy.Block.inst_else_addr 48>)
+1759: guard_value(i155, 790, descr=<Guard0x7f3d283a8c20>) [i147, i146, i145, p3, p4, p5, p6, None]
+1772: jump(i145, i146, i147, p6, p5, p4, p3, descr=TargetToken(139900644630640))
+1824: --end of the loop--
[296568fa3735d8] jit-log-opt-bridge}
[296568fa951cce] {jit-log-opt-loop
# Loop 4 (0x328 i64.add(0x5b)) : loop with 197 ops
[i0, i1, i2, p3, p4, p5, p6]
+455: label(i0, i1, i2, p3, p4, p5, p6, descr=TargetToken(139900644630720))
+464: i8 = int_lt(i0, 0)
+472: guard_false(i8, descr=<Guard0x7f3d283a8c80>) [i2, i1, i0, p6, p5, p4, p3]
+478: p9 = getarrayitem_gc_r(p4, i0, descr=<ArrayP 8>)
+497: i11 = int_sub(i0, 1)
+501: i13 = int_lt(i11, 0)
+505: guard_false(i13, descr=<Guard0x7f3d2839ad20>) [i2, i1, i0, p6, p5, p4, p3]
+511: p14 = getarrayitem_gc_r(p4, i11, descr=<ArrayP 8>)
+516: i16 = int_sub(i0, 2)
+520: f17 = getfield_gc_f(p14, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+525: f18 = getfield_gc_f(p9, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+530: f19 = float_add(f17, f18)
+534: i20 = cast_float_to_int(f19)
+539: f21 = cast_int_to_float(i20)
+544: i23 = int_add(i16, 1)
+548: p24 = new_with_vtable(descr=<SizeDescr 16>)
+618: setfield_gc(p24, f21, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+665: setarrayitem_gc(p4, i23, p24, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x329 end(0xf)')
+670: i26 = int_lt(i2, 0)
+678: guard_false(i26, descr=<Guard0x7f3d283a8ce0>) [p6, p5, p4, p3, i2, i1, i23]
+684: p27 = getarrayitem_gc_r(p6, i2, descr=<ArrayP 8>)
+703: p28 = getfield_gc_r(p27, descr=<FieldP tuple3.item0 8 pure>)
+707: i29 = getfield_gc_i(p27, descr=<FieldS tuple3.item1 16 pure>)
+711: i30 = getfield_gc_i(p27, descr=<FieldS tuple3.item2 24 pure>)
+715: i32 = int_sub(i2, 1)
+719: p33 = getfield_gc_r(p28, descr=<FieldP warpy.Code.inst_type 40>)
+723: p34 = getfield_gc_r(p33, descr=<FieldP warpy.Type.inst_params 24>)
+727: i35 = arraylen_gc(p34, descr=<ArrayU 8>)
+731: p36 = getfield_gc_r(p28, descr=<FieldP warpy.Code.inst_locals 24>)
+735: i37 = getfield_gc_i(p36, descr=<FieldS list.length 8>)
+739: i38 = int_add(i35, i37)
+742: i39 = int_sub(i1, i38)
+752: p40 = getfield_gc_r(p33, descr=<FieldP warpy.Type.inst_results 32>)
+756: i41 = arraylen_gc(p40, descr=<ArrayU 8>)
+760: i43 = int_gt(i41, 1)
+764: guard_false(i43, descr=<Guard0x7f3d2839ad60>) [p6, p5, p4, p3, i2, i1, i23]
+770: i45 = int_add(i23, 1)
+770: i47 = int_eq(i41, 1)
+774: guard_true(i47, descr=<Guard0x7f3d2839ada0>) [p6, p5, p4, p3, i2, i1, i23]
+780: p48 = getarrayitem_gc_r(p4, i23, descr=<ArrayP 8>)
+785: i50 = getarrayitem_gc_pure_i(p40, 0, descr=<ArrayU 8>)
+789: guard_nonnull_class(p48, 10063512, descr=<Guard0x7f3d283a8d40>) [p6, p5, p4, p3, i2, i1, i23]
+808: i52 = getfield_raw_i(i50, descr=<FieldS object_vtable.subclassrange_min 0 pure>)
+811: i53 = getfield_raw_i(i50, descr=<FieldS object_vtable.subclassrange_max 8 pure>)
+815: i54 = int_sub(i53, i52)
+818: i56 = int_sub(106, i52)
+827: i57 = uint_lt(i56, i54)
+830: guard_true(i57, descr=<Guard0x7f3d2839ade0>) [p6, p5, p4, p3, i2, i1, i23]
+836: i58 = int_lt(i29, i16)
+839: guard_false(i58, descr=<Guard0x7f3d2839ae20>) [p6, p5, p4, p3, i2, i1, i23]
+891: setarrayitem_gc(p4, i23, p48, descr=<ArrayP 8>)
+896: guard_class(p28, ConstClass(Block), descr=<Guard0x7f3d283a8da0>) [i30, i32, i39, i23, p28, p6, p5, p4, p3]
+908: i60 = getfield_gc_i(p28, descr=<FieldS warpy.Block.inst_kind 56>)
+912: i61 = int_is_zero(i60)
+915: guard_false(i61, descr=<Guard0x7f3d2839ae60>) [i30, i32, i39, i23, p28, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x32a end(0xf)')
+921: i63 = int_lt(i32, 0)
+925: guard_false(i63, descr=<Guard0x7f3d2839aea0>) [i30, i32, i39, i23, p28, p6, p5, p4, p3]
+931: p64 = getarrayitem_gc_r(p6, i32, descr=<ArrayP 8>)
+936: p65 = getfield_gc_r(p64, descr=<FieldP tuple3.item0 8 pure>)
+940: i66 = getfield_gc_i(p64, descr=<FieldS tuple3.item1 16 pure>)
+944: i67 = getfield_gc_i(p64, descr=<FieldS tuple3.item2 24 pure>)
+948: i69 = int_sub(i32, 1)
+952: p70 = getfield_gc_r(p65, descr=<FieldP warpy.Code.inst_type 40>)
+956: p71 = getfield_gc_r(p70, descr=<FieldP warpy.Type.inst_params 24>)
+960: i72 = arraylen_gc(p71, descr=<ArrayU 8>)
+964: p73 = getfield_gc_r(p65, descr=<FieldP warpy.Code.inst_locals 24>)
+968: i74 = getfield_gc_i(p73, descr=<FieldS list.length 8>)
+979: i75 = int_add(i72, i74)
+982: i76 = int_sub(i39, i75)
+988: p77 = getfield_gc_r(p70, descr=<FieldP warpy.Type.inst_results 32>)
+992: i78 = arraylen_gc(p77, descr=<ArrayU 8>)
+996: i80 = int_gt(i78, 1)
+1000: guard_false(i80, descr=<Guard0x7f3d2839aee0>) [i30, i32, i39, i23, p28, p6, p5, p4, p3]
+1006: i82 = int_add(i23, 1)
+1006: i84 = int_eq(i78, 1)
+1010: guard_true(i84, descr=<Guard0x7f3d2839af20>) [i30, i32, i39, i23, p28, p6, p5, p4, p3]
+1016: p85 = getarrayitem_gc_r(p4, i23, descr=<ArrayP 8>)
+1028: i87 = getarrayitem_gc_pure_i(p77, 0, descr=<ArrayU 8>)
+1032: guard_nonnull_class(p85, 10063512, descr=<Guard0x7f3d283a8e00>) [i30, i32, i39, i23, p28, p6, p5, p4, p3]
+1050: i89 = getfield_raw_i(i87, descr=<FieldS object_vtable.subclassrange_min 0 pure>)
+1053: i90 = getfield_raw_i(i87, descr=<FieldS object_vtable.subclassrange_max 8 pure>)
+1064: i91 = int_sub(i90, i89)
+1067: i93 = int_sub(106, i89)
+1076: i94 = uint_lt(i93, i91)
+1079: guard_true(i94, descr=<Guard0x7f3d2839af60>) [i30, i32, i39, i23, p28, p6, p5, p4, p3]
+1085: i95 = int_lt(i66, i16)
+1088: guard_false(i95, descr=<Guard0x7f3d2839afa0>) [i30, i32, i39, i23, p28, p6, p5, p4, p3]
+1140: setarrayitem_gc(p4, i23, p85, descr=<ArrayP 8>)
+1145: guard_class(p65, ConstClass(Function), descr=<Guard0x7f3d283a8e60>) [i67, i69, i76, i23, p65, p6, p5, p4, p3]
+1157: i98 = int_eq(i69, -1)
+1165: guard_false(i98, descr=<Guard0x7f3d2839afe0>) [i67, i69, i76, i23, p65, p6, p5, p4, p3]
+1171: i100 = int_lt(i67, 884)
+1178: guard_true(i100, descr=<Guard0x7f3d2839b020>) [i67, i69, i76, i23, p65, p6, p5, p4, p3]
+1191: i102 = getarrayitem_gc_pure_i(ConstPtr(ptr101), i67, descr=<ArrayS 8>)
+1196: guard_value(i102, 91, descr=<Guard0x7f3d2839b060>) [i67, i69, i76, i23, p65, p6, p5, p4, p3]
+1206: guard_value(i67, 808, descr=<Guard0x7f3d2839b0a0>) [i67, i69, i76, i23, p65, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x328 i64.add(0x5b)')
+1219: label(i23, i76, i69, p3, p4, p5, p6, descr=TargetToken(139900644630800))
+1232: p105 = getarrayitem_gc_r(p4, i23, descr=<ArrayP 8>)
+1237: i107 = int_sub(i23, 1)
+1242: i109 = int_lt(i107, 0)
+1246: guard_false(i109, descr=<Guard0x7f3d283a8ec0>) [i107, i23, i69, i76, p105, p6, p5, p4, p3]
+1252: p110 = getarrayitem_gc_r(p4, i107, descr=<ArrayP 8>)
+1257: i112 = int_sub(i23, 2)
+1262: f113 = getfield_gc_f(p110, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1267: f114 = getfield_gc_f(p105, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1272: f115 = float_add(f113, f114)
+1276: i116 = cast_float_to_int(f115)
+1281: f117 = cast_int_to_float(i116)
+1286: i119 = int_add(i112, 1)
+1290: p120 = new_with_vtable(descr=<SizeDescr 16>)
+1354: setfield_gc(p120, f117, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+1398: setarrayitem_gc(p4, i119, p120, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x329 end(0xf)')
+1403: i122 = int_lt(i69, 0)
+1411: guard_false(i122, descr=<Guard0x7f3d283a8f20>) [p6, p5, p4, p3, i69, i76, i119]
+1417: p123 = getarrayitem_gc_r(p6, i69, descr=<ArrayP 8>)
+1436: p124 = getfield_gc_r(p123, descr=<FieldP tuple3.item0 8 pure>)
+1441: i125 = getfield_gc_i(p123, descr=<FieldS tuple3.item1 16 pure>)
+1446: i126 = getfield_gc_i(p123, descr=<FieldS tuple3.item2 24 pure>)
+1451: i128 = int_sub(i69, 1)
+1455: p129 = getfield_gc_r(p124, descr=<FieldP warpy.Code.inst_type 40>)
+1459: p130 = getfield_gc_r(p129, descr=<FieldP warpy.Type.inst_params 24>)
+1463: i131 = arraylen_gc(p130, descr=<ArrayU 8>)
+1467: p132 = getfield_gc_r(p124, descr=<FieldP warpy.Code.inst_locals 24>)
+1471: i133 = getfield_gc_i(p132, descr=<FieldS list.length 8>)
+1475: i134 = int_add(i131, i133)
+1478: i135 = int_sub(i76, i134)
+1488: p136 = getfield_gc_r(p129, descr=<FieldP warpy.Type.inst_results 32>)
+1492: i137 = arraylen_gc(p136, descr=<ArrayU 8>)
+1496: i139 = int_gt(i137, 1)
+1500: guard_false(i139, descr=<Guard0x7f3d2839b0e0>) [p6, p5, p4, p3, i69, i76, i119]
+1506: i141 = int_add(i119, 1)
+1506: i143 = int_eq(i137, 1)
+1510: guard_true(i143, descr=<Guard0x7f3d2839b120>) [p6, p5, p4, p3, i69, i76, i119]
+1516: p144 = getarrayitem_gc_r(p4, i119, descr=<ArrayP 8>)
+1521: i146 = getarrayitem_gc_pure_i(p136, 0, descr=<ArrayU 8>)
+1525: guard_nonnull_class(p144, 10063512, descr=<Guard0x7f3d283a8f80>) [p6, p5, p4, p3, i69, i76, i119]
+1545: i148 = getfield_raw_i(i146, descr=<FieldS object_vtable.subclassrange_min 0 pure>)
+1548: i149 = getfield_raw_i(i146, descr=<FieldS object_vtable.subclassrange_max 8 pure>)
+1559: i150 = int_sub(i149, i148)
+1562: i152 = int_sub(106, i148)
+1571: i153 = uint_lt(i152, i150)
+1574: guard_true(i153, descr=<Guard0x7f3d2839b160>) [p6, p5, p4, p3, i69, i76, i119]
+1580: i154 = int_lt(i125, i112)
+1583: guard_false(i154, descr=<Guard0x7f3d2839b1a0>) [p6, p5, p4, p3, i69, i76, i119]
+1635: setarrayitem_gc(p4, i119, p144, descr=<ArrayP 8>)
+1640: guard_class(p124, ConstClass(Block), descr=<Guard0x7f3d283a8fe0>) [i126, i128, i135, i119, p124, p6, p5, p4, p3]
+1652: i156 = getfield_gc_i(p124, descr=<FieldS warpy.Block.inst_kind 56>)
+1656: i157 = int_is_zero(i156)
+1659: guard_false(i157, descr=<Guard0x7f3d2839b1e0>) [i126, i128, i135, i119, p124, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x32a end(0xf)')
+1665: i159 = int_lt(i128, 0)
+1669: guard_false(i159, descr=<Guard0x7f3d2839b220>) [i126, i128, i135, i119, p124, p6, p5, p4, p3]
+1675: p160 = getarrayitem_gc_r(p6, i128, descr=<ArrayP 8>)
+1680: p161 = getfield_gc_r(p160, descr=<FieldP tuple3.item0 8 pure>)
+1684: i162 = getfield_gc_i(p160, descr=<FieldS tuple3.item1 16 pure>)
+1688: i163 = getfield_gc_i(p160, descr=<FieldS tuple3.item2 24 pure>)
+1692: i165 = int_sub(i128, 1)
+1697: p166 = getfield_gc_r(p161, descr=<FieldP warpy.Code.inst_type 40>)
+1701: p167 = getfield_gc_r(p166, descr=<FieldP warpy.Type.inst_params 24>)
+1712: i168 = arraylen_gc(p167, descr=<ArrayU 8>)
+1716: p169 = getfield_gc_r(p161, descr=<FieldP warpy.Code.inst_locals 24>)
+1720: i170 = getfield_gc_i(p169, descr=<FieldS list.length 8>)
+1724: i171 = int_add(i168, i170)
+1727: i172 = int_sub(i135, i171)
+1733: p173 = getfield_gc_r(p166, descr=<FieldP warpy.Type.inst_results 32>)
+1737: i174 = arraylen_gc(p173, descr=<ArrayU 8>)
+1741: i176 = int_gt(i174, 1)
+1745: guard_false(i176, descr=<Guard0x7f3d2839b260>) [i126, i128, i135, i119, p124, p6, p5, p4, p3]
+1751: i178 = int_add(i119, 1)
+1751: i180 = int_eq(i174, 1)
+1755: guard_true(i180, descr=<Guard0x7f3d2839b2a0>) [i126, i128, i135, i119, p124, p6, p5, p4, p3]
+1761: p181 = getarrayitem_gc_r(p4, i119, descr=<ArrayP 8>)
+1787: i183 = getarrayitem_gc_pure_i(p173, 0, descr=<ArrayU 8>)
+1798: guard_nonnull_class(p181, 10063512, descr=<Guard0x7f3d283a9040>) [i126, i128, i135, i119, p124, p6, p5, p4, p3]
+1818: i185 = getfield_raw_i(i183, descr=<FieldS object_vtable.subclassrange_min 0 pure>)
+1821: i186 = getfield_raw_i(i183, descr=<FieldS object_vtable.subclassrange_max 8 pure>)
+1825: i187 = int_sub(i186, i185)
+1828: i189 = int_sub(106, i185)
+1837: i190 = uint_lt(i189, i187)
+1840: guard_true(i190, descr=<Guard0x7f3d2839b2e0>) [i126, i128, i135, i119, p124, p6, p5, p4, p3]
+1846: i191 = int_lt(i162, i112)
+1849: guard_false(i191, descr=<Guard0x7f3d2839b320>) [i126, i128, i135, i119, p124, p6, p5, p4, p3]
+1901: setarrayitem_gc(p4, i119, p181, descr=<ArrayP 8>)
+1906: guard_class(p161, ConstClass(Function), descr=<Guard0x7f3d283a90a0>) [i163, i165, i172, i119, p161, p6, p5, p4, p3]
+1919: i194 = int_eq(i165, -1)
+1927: guard_false(i194, descr=<Guard0x7f3d2839b360>) [i163, i165, i172, i119, p161, p6, p5, p4, p3]
+1933: i196 = int_lt(i163, 884)
+1940: guard_true(i196, descr=<Guard0x7f3d2839b3a0>) [i163, i165, i172, i119, p161, p6, p5, p4, p3]
+1953: i198 = getarrayitem_gc_pure_i(ConstPtr(ptr197), i163, descr=<ArrayS 8>)
+1958: guard_value(i198, 91, descr=<Guard0x7f3d2839b3e0>) [i163, i165, i172, i119, p161, p6, p5, p4, p3]
+1968: guard_value(i163, 808, descr=<Guard0x7f3d2839b420>) [i163, i165, i172, i119, p161, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x328 i64.add(0x5b)')
+1981: jump(i119, i172, i165, p3, p4, p5, p6, descr=TargetToken(139900644630800))
+2032: --end of the loop--
[296568faa4ff9f] jit-log-opt-loop}
[296568fb20a48d] {jit-log-opt-bridge
# bridge out of Guard 0x7f3d2839ab60 with 16 ops
[i0, i1, i2, i3, p4, p5, p6, p7, p8]
+126: guard_class(p4, ConstClass(Function), descr=<Guard0x7f3d283a9100>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+138: i11 = int_eq(i1, -1)
+146: guard_false(i11, descr=<Guard0x7f3d283ba1a0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+152: i13 = int_lt(i0, 884)
+159: guard_true(i13, descr=<Guard0x7f3d283ba1e0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+172: i15 = getarrayitem_gc_pure_i(ConstPtr(ptr14), i0, descr=<ArrayS 8>)
+177: guard_value(i15, 91, descr=<Guard0x7f3d283ba220>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+187: guard_value(i0, 808, descr=<Guard0x7f3d283ba260>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
debug_merge_point(0, 0, '0x328 i64.add(0x5b)')
+200: i19 = int_ge(i3, 0)
+204: guard_true(i19, descr=<Guard0x7f3d283a9160>) [i1, i2, i3, p5, p6, p7, p8]
+210: i21 = int_ge(i1, -1)
+218: guard_true(i21, descr=<Guard0x7f3d283a91c0>) [i1, i2, i3, p5, p6, p7, p8]
+224: guard_nonnull(p7, descr=<Guard0x7f3d283a9220>) [i1, i2, i3, p5, p6, p7, p8]
+233: guard_nonnull(p5, descr=<Guard0x7f3d283a9280>) [i1, i2, i3, p5, p6, p7, p8]
+247: jump(i3, i2, i1, p8, p7, p6, p5, descr=TargetToken(139900644630800))
+320: --end of the loop--
[296568fb2241af] jit-log-opt-bridge}
[296568fb3b2d6e] {jit-log-opt-bridge
# bridge out of Guard 0x7f3d2839b3e0 with 69 ops
[i0, i1, i2, i3, p4, p5, p6, p7, p8]
+222: guard_class(p4, ConstClass(Function), descr=<Guard0x7f3d283a92e0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+235: i11 = int_eq(i1, -1)
+243: guard_false(i11, descr=<Guard0x7f3d283ba2a0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+249: i13 = int_lt(i0, 884)
+256: guard_true(i13, descr=<Guard0x7f3d283ba2e0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+269: i15 = getarrayitem_gc_pure_i(ConstPtr(ptr14), i0, descr=<ArrayS 8>)
+274: guard_value(i15, 20, descr=<Guard0x7f3d283ba320>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+284: guard_value(i0, 799, descr=<Guard0x7f3d283ba360>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
debug_merge_point(0, 0, '0x31f get_local(0x14)')
+297: i19 = int_add(i3, 1)
+301: i21 = int_lt(i2, 0)
+309: guard_false(i21, descr=<Guard0x7f3d283ba3a0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+315: p22 = getarrayitem_gc_r(p6, i2, descr=<ArrayP 8>)
+334: i24 = int_lt(i19, 0)
+338: guard_false(i24, descr=<Guard0x7f3d283ba3e0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+383: setarrayitem_gc(p7, i19, p22, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x321 i64.const(0x11)')
+388: i26 = int_add(i19, 1)
+392: i28 = int_lt(i26, 0)
+396: guard_false(i28, descr=<Guard0x7f3d283a9340>) [i1, i2, i26, p5, p6, p7, p8]
+402: p29 = new_with_vtable(descr=<SizeDescr 16>)
+466: setfield_gc(p29, 1.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+519: setarrayitem_gc(p7, i26, p29, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x323 i64.sub(0x5c)')
+524: p31 = getarrayitem_gc_r(p7, i26, descr=<ArrayP 8>)
+529: p32 = getarrayitem_gc_r(p7, i19, descr=<ArrayP 8>)
+534: i34 = int_sub(i26, 2)
+538: f35 = getfield_gc_f(p32, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+544: f36 = getfield_gc_f(p31, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+550: f37 = float_sub(f35, f36)
+555: i38 = cast_float_to_int(f37)
+560: f39 = cast_int_to_float(i38)
+565: i41 = int_add(i34, 1)
+569: i43 = int_lt(i41, 0)
+573: guard_false(i43, descr=<Guard0x7f3d283a93a0>) [i41, i1, i2, p5, p6, p7, p8, f39]
+579: p44 = new_with_vtable(descr=<SizeDescr 16>)
+591: setfield_gc(p44, f39, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+636: setarrayitem_gc(p7, i41, p44, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x324 i32.const(0x10)')
+641: i46 = int_add(i41, 1)
+645: p47 = new_with_vtable(descr=<SizeDescr 16>)
+656: setfield_gc(p47, 13.000000, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+709: setarrayitem_gc(p7, i46, p47, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x326 call_indirect(0x17)')
+714: p49 = getarrayitem_gc_r(p7, i46, descr=<ArrayP 8>)
+719: f50 = getfield_gc_f(p49, descr=<FieldF warpy.NumericValueType.inst_val 8>)
+725: i51 = cast_float_to_int(f50)
+730: i53 = int_lt(i51, 0)
+734: guard_false(i53, descr=<Guard0x7f3d283a9400>) [i41, i1, i2, i51, p5, p6, p7, p8, None]
+740: i56 = int_ge(i51, 23)
+744: guard_false(i56, descr=<Guard0x7f3d283ba420>) [i41, i1, i2, i51, p5, p6, p7, p8, None]
+757: i58 = getarrayitem_gc_i(ConstPtr(ptr57), i51, descr=<ArrayS 8>)
+769: p61 = call_r(ConstClass(get_function), ConstPtr(ptr60), i58, descr=<Callr 8 ri EF=0>)
+797: p64 = call_r(ConstClass(do_call), i41, p7, i2, p6, i1, p5, p61, 808, descr=<Callr 8 iririrri EF=5>)
+897: guard_no_exception(descr=<Guard0x7f3d283a9460>) [p64, p5, p6, p7, p8, None]
+912: i65 = getfield_gc_i(p64, descr=<FieldS tuple4.item0 8 pure>)
+916: i66 = getfield_gc_i(p64, descr=<FieldS tuple4.item1 16 pure>)
+920: i67 = getfield_gc_i(p64, descr=<FieldS tuple4.item2 24 pure>)
+924: i68 = getfield_gc_i(p64, descr=<FieldS tuple4.item3 32 pure>)
+928: i70 = int_lt(i65, 884)
+935: guard_true(i70, descr=<Guard0x7f3d283ba460>) [p64, p5, p6, p7, p8, None]
+941: i72 = getarrayitem_gc_pure_i(ConstPtr(ptr71), i65, descr=<ArrayS 8>)
+953: guard_value(i72, 20, descr=<Guard0x7f3d283ba4a0>) [p64, p5, p6, p7, p8, None]
+963: guard_value(i65, 780, descr=<Guard0x7f3d283ba4e0>) [p64, p5, p6, p7, p8, None]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+976: guard_nonnull(p5, descr=<Guard0x7f3d283a94c0>) [i68, i67, i66, p5, p6, p7, p8, None]
+997: i76 = getfield_gc_i(ConstPtr(ptr75), descr=<FieldS warpy.Block.inst_else_addr 48>)
+1001: guard_value(i76, 790, descr=<Guard0x7f3d283a9520>) [i68, i67, i66, p5, p6, p7, p8, None]
+1014: jump(i66, i67, i68, p8, p7, p6, p5, descr=TargetToken(139900644630640))
+1056: --end of the loop--
[296568fb405fca] jit-log-opt-bridge}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment