Skip to content

Instantly share code, notes, and snippets.

@kanaka
Created March 21, 2017 16:26
Show Gist options
  • Save kanaka/008c06be84784140840658fa22e54e74 to your computer and use it in GitHub Desktop.
Save kanaka/008c06be84784140840658fa22e54e74 to your computer and use it in GitHub Desktop.
[2a5c261150a330] {jit-log-opt-loop
# Loop 1 (0x30c get_local(0x14)) : loop with 194 ops
[i0, i1, i2, p3, p4, p5, p6]
+407: label(i0, i1, i2, p3, p4, p5, p6, descr=TargetToken(139953923088416))
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+416: i8 = int_add(i0, 1)
+427: i10 = int_lt(i1, 0)
+435: guard_false(i10, descr=<Guard0x7f498fdf2020>) [i2, i1, i8, p6, p5, p4, p3]
+441: p11 = getarrayitem_gc_r(p5, i1, descr=<ArrayP 8>)
+460: i13 = int_lt(i8, 0)
+464: guard_false(i13, descr=<Guard0x7f498fde60a0>) [i2, i1, i8, p6, p5, p4, p3]
+509: setarrayitem_gc(p5, i8, p11, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x30e i64.const(0x11)')
+514: i15 = int_add(i8, 1)
+518: i17 = int_lt(i15, 0)
+522: guard_false(i17, descr=<Guard0x7f498fdf2080>) [i2, i1, i15, p6, p5, p4, p3]
+574: setarrayitem_gc(p5, i15, ConstPtr(ptr18), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x310 i64.le_u(0x6d)')
+579: p19 = getarrayitem_gc_r(p5, i15, descr=<ArrayP 8>)
+584: p20 = getarrayitem_gc_r(p5, i8, descr=<ArrayP 8>)
+589: i22 = int_sub(i15, 2)
+593: i23 = getfield_gc_i(p20, descr=<FieldS tuple3.item1 16 pure>)
+597: i24 = getfield_gc_i(p19, descr=<FieldS tuple3.item1 16 pure>)
+601: i25 = int_le(i23, i24)
+613: i27 = int_add(i22, 1)
+617: i29 = int_lt(i27, 0)
+621: guard_false(i29, descr=<Guard0x7f498fdf20e0>) [i27, i2, i1, p6, p5, p4, p3, i25]
+627: p30 = new(descr=<SizeDescr 32>)
+700: setfield_gc(p30, 1, descr=<FieldS tuple3.item0 8 pure>)
+708: setfield_gc(p30, i25, descr=<FieldS tuple3.item1 16 pure>)
+712: setfield_gc(p30, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+759: setarrayitem_gc(p5, i27, p30, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x311 if(0x3)')
+764: i34 = int_add(i2, 1)
+775: i36 = int_lt(i34, 0)
+779: guard_false(i36, descr=<Guard0x7f498fdf2140>) [i34, i1, i27, p6, p5, p4, p3, None]
+785: p38 = new(descr=<SizeDescr 40>)
+803: setfield_gc(p38, ConstPtr(ptr39), descr=<FieldP tuple4.item0 8 pure>)
+807: setfield_gc(p38, i27, descr=<FieldS tuple4.item1 16 pure>)
+811: setfield_gc(p38, i1, descr=<FieldS tuple4.item2 24 pure>)
+815: setfield_gc(p38, 0, descr=<FieldS tuple4.item3 32 pure>)
+871: setarrayitem_gc(p6, i34, p38, descr=<ArrayP 8>)
+876: p41 = getarrayitem_gc_r(p5, i27, descr=<ArrayP 8>)
+881: i42 = getfield_gc_i(p41, descr=<FieldS tuple3.item1 16 pure>)
+885: i43 = int_is_true(i42)
+888: guard_false(i43, descr=<Guard0x7f498fdf21a0>) [i42, i34, i1, i22, p6, p5, p4, p3, None]
+894: i45 = getfield_gc_i(ConstPtr(ptr44), descr=<FieldS warpy.Block.inst_else_addr 48>)
+898: i46 = int_is_zero(i45)
+901: guard_false(i46, descr=<Guard0x7f498fde60e0>) [i42, i34, i1, i22, p6, p5, p4, p3, None]
+907: i48 = int_lt(i45, 884)
+914: guard_true(i48, descr=<Guard0x7f498fde6120>) [i42, i34, i1, i22, p6, p5, p4, p3, None]
+927: i50 = getarrayitem_gc_pure_i(ConstPtr(ptr49), i45, descr=<ArrayS 8>)
+932: guard_value(i50, 20, descr=<Guard0x7f498fde6160>) [i42, i34, i1, i22, p6, p5, p4, p3, None]
+942: guard_value(i45, 790, descr=<Guard0x7f498fde61a0>) [i42, i34, i1, i22, p6, p5, p4, p3, None]
debug_merge_point(0, 0, '0x316 get_local(0x14)')
+955: p53 = getarrayitem_gc_r(p5, i1, descr=<ArrayP 8>)
+999: setarrayitem_gc(p5, i27, p53, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x318 i64.const(0x11)')
+1004: i55 = int_add(i27, 1)
+1054: setarrayitem_gc(p5, i55, ConstPtr(ptr56), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31a i64.sub(0x5c)')
+1059: p57 = getarrayitem_gc_r(p5, i55, descr=<ArrayP 8>)
+1064: p58 = getarrayitem_gc_r(p5, i27, descr=<ArrayP 8>)
+1069: i60 = int_sub(i55, 2)
+1073: i61 = getfield_gc_i(p58, descr=<FieldS tuple3.item1 16 pure>)
+1077: i62 = getfield_gc_i(p57, descr=<FieldS tuple3.item1 16 pure>)
+1081: i63 = int_sub(i61, i62)
+1084: i65 = int_add(i60, 1)
+1088: p66 = new(descr=<SizeDescr 32>)
+1099: setfield_gc(p66, 2, descr=<FieldS tuple3.item0 8 pure>)
+1107: setfield_gc(p66, i63, descr=<FieldS tuple3.item1 16 pure>)
+1111: setfield_gc(p66, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+1158: setarrayitem_gc(p5, i65, p66, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31b i32.const(0x10)')
+1163: i70 = int_add(i65, 1)
+1213: setarrayitem_gc(p5, i70, ConstPtr(ptr71), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31d call_indirect(0x17)')
+1218: p72 = getarrayitem_gc_r(p5, i70, descr=<ArrayP 8>)
+1223: i73 = getfield_gc_i(p72, descr=<FieldS tuple3.item1 16 pure>)
+1227: guard_value(i73, 13, descr=<Guard0x7f498fdf2200>) [i65, i34, i1, i73, p6, p5, p4, p3, None]
+1244: p76 = getfield_gc_r(ConstPtr(ptr75), descr=<FieldP warpy.Code.inst_type 40>)
+1248: i78 = int_add(i34, 1)
+1252: p79 = getfield_gc_r(p76, descr=<FieldP warpy.Type.inst_params 24>)
+1256: i80 = arraylen_gc(p79, descr=<ArrayS 8>)
+1260: i81 = int_sub(i65, i80)
+1270: i83 = int_lt(i78, 0)
+1274: guard_false(i83, descr=<Guard0x7f498fde61e0>) [i65, i34, i1, i73, p6, p5, p4, p3, None]
+1280: p84 = new(descr=<SizeDescr 40>)
+1291: setfield_gc(p84, ConstPtr(ptr85), descr=<FieldP tuple4.item0 8 pure>)
+1295: setfield_gc(p84, i81, descr=<FieldS tuple4.item1 16 pure>)
+1299: setfield_gc(p84, i1, descr=<FieldS tuple4.item2 24 pure>)
+1303: setfield_gc(p84, 799, descr=<FieldS tuple4.item3 32 pure>)
+1352: setarrayitem_gc(p6, i78, p84, descr=<ArrayP 8>)
+1357: i88 = getfield_gc_i(ConstPtr(ptr87), descr=<FieldS warpy.Code.inst_start 32>)
+1361: i90 = int_add(i81, 1)
+1365: i92 = int_ge(0, i80)
+1369: guard_false(i92, descr=<Guard0x7f498fdf2260>) [p6, p5, p4, p3, i90, i80, i88, i78, i65, p76, None]
+1375: i94 = getarrayitem_gc_pure_i(p79, 0, descr=<ArrayS 8>)
+1379: i96 = int_lt(i90, 0)
+1383: guard_false(i96, descr=<Guard0x7f498fde6220>) [p6, p5, p4, p3, i90, i80, i88, i78, i65, p76, None]
+1389: p97 = getarrayitem_gc_r(p5, i90, descr=<ArrayP 8>)
+1401: i98 = getfield_gc_i(p97, descr=<FieldS tuple3.item0 8 pure>)
+1405: i99 = int_ne(i94, i98)
+1408: guard_false(i99, descr=<Guard0x7f498fde6260>) [p6, p5, p4, p3, i90, i80, i88, i78, i65, p76, None]
+1414: i101 = int_ge(1, i80)
+1418: guard_true(i101, descr=<Guard0x7f498fde62a0>) [p6, p5, p4, p3, i90, i80, i88, i78, i65, p76, None]
+1424: p103 = getfield_gc_r(ConstPtr(ptr102), descr=<FieldP warpy.Code.inst_locals 24>)
+1428: i104 = getfield_gc_i(p103, descr=<FieldS list.length 8>)
+1432: i106 = int_ge(0, i104)
+1436: guard_true(i106, descr=<Guard0x7f498fde62e0>) [p6, p5, p4, p3, i90, i80, i88, i78, i65, p76, None]
+1442: i108 = int_lt(i88, 884)
+1449: guard_true(i108, descr=<Guard0x7f498fde6320>) [p6, p5, p4, p3, i90, i80, i88, i78, i65, p76, None]
+1455: i110 = getarrayitem_gc_pure_i(ConstPtr(ptr109), i88, descr=<ArrayS 8>)
+1460: guard_value(i110, 20, descr=<Guard0x7f498fde6360>) [p6, p5, p4, p3, i90, i80, i88, i78, i65, p76, None]
+1470: guard_value(i88, 780, descr=<Guard0x7f498fde63a0>) [p6, p5, p4, p3, i90, i80, i88, i78, i65, p76, None]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+1483: label(i65, i90, i78, p3, p4, p5, p6, i70, p76, i80, i94, p103, descr=TargetToken(139953923088496))
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+1504: p113 = getarrayitem_gc_r(p5, i90, descr=<ArrayP 8>)
+1550: setarrayitem_gc(p5, i70, p113, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x30e i64.const(0x11)')
+1555: i115 = int_add(i70, 1)
+1559: i117 = int_lt(i115, 0)
+1563: guard_false(i117, descr=<Guard0x7f498fdf22c0>) [i78, i90, i115, p6, p5, p4, p3]
+1617: setarrayitem_gc(p5, i115, ConstPtr(ptr118), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x310 i64.le_u(0x6d)')
+1622: p119 = getarrayitem_gc_r(p5, i115, descr=<ArrayP 8>)
+1627: p120 = getarrayitem_gc_r(p5, i70, descr=<ArrayP 8>)
+1632: i122 = int_sub(i115, 2)
+1636: i123 = getfield_gc_i(p120, descr=<FieldS tuple3.item1 16 pure>)
+1640: i124 = getfield_gc_i(p119, descr=<FieldS tuple3.item1 16 pure>)
+1644: i125 = int_le(i123, i124)
+1656: i127 = int_add(i122, 1)
+1660: i129 = int_lt(i127, 0)
+1664: guard_false(i129, descr=<Guard0x7f498fdf2320>) [i127, i78, i90, p6, p5, p4, p3, i125]
+1670: p130 = new(descr=<SizeDescr 32>)
+1737: setfield_gc(p130, 1, descr=<FieldS tuple3.item0 8 pure>)
+1745: setfield_gc(p130, i125, descr=<FieldS tuple3.item1 16 pure>)
+1749: setfield_gc(p130, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+1798: setarrayitem_gc(p5, i127, p130, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x311 if(0x3)')
+1803: i134 = int_add(i78, 1)
+1807: i136 = int_lt(i134, 0)
+1811: guard_false(i136, descr=<Guard0x7f498fdf2380>) [i134, i90, i127, p6, p5, p4, p3, None]
+1817: p137 = new(descr=<SizeDescr 40>)
+1835: setfield_gc(p137, ConstPtr(ptr138), descr=<FieldP tuple4.item0 8 pure>)
+1839: setfield_gc(p137, i127, descr=<FieldS tuple4.item1 16 pure>)
+1843: setfield_gc(p137, i90, descr=<FieldS tuple4.item2 24 pure>)
+1847: setfield_gc(p137, 0, descr=<FieldS tuple4.item3 32 pure>)
+1896: setarrayitem_gc(p6, i134, p137, descr=<ArrayP 8>)
+1901: p140 = getarrayitem_gc_r(p5, i127, descr=<ArrayP 8>)
+1906: i141 = getfield_gc_i(p140, descr=<FieldS tuple3.item1 16 pure>)
+1910: i142 = int_is_true(i141)
+1913: guard_false(i142, descr=<Guard0x7f498fdf23e0>) [i141, i134, i90, i122, p6, p5, p4, p3, None]
debug_merge_point(0, 0, '0x316 get_local(0x14)')
+1919: p143 = getarrayitem_gc_r(p5, i90, descr=<ArrayP 8>)
+1965: setarrayitem_gc(p5, i127, p143, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x318 i64.const(0x11)')
+1970: i145 = int_add(i127, 1)
+2022: setarrayitem_gc(p5, i145, ConstPtr(ptr146), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31a i64.sub(0x5c)')
+2027: p147 = getarrayitem_gc_r(p5, i145, descr=<ArrayP 8>)
+2032: p148 = getarrayitem_gc_r(p5, i127, descr=<ArrayP 8>)
+2037: i150 = int_sub(i145, 2)
+2041: i151 = getfield_gc_i(p148, descr=<FieldS tuple3.item1 16 pure>)
+2045: i152 = getfield_gc_i(p147, descr=<FieldS tuple3.item1 16 pure>)
+2049: i153 = int_sub(i151, i152)
+2052: i155 = int_add(i150, 1)
+2056: p156 = new(descr=<SizeDescr 32>)
+2068: setfield_gc(p156, 2, descr=<FieldS tuple3.item0 8 pure>)
+2076: setfield_gc(p156, i153, descr=<FieldS tuple3.item1 16 pure>)
+2080: setfield_gc(p156, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+2129: setarrayitem_gc(p5, i155, p156, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31b i32.const(0x10)')
+2134: i160 = int_add(i155, 1)
+2186: setarrayitem_gc(p5, i160, ConstPtr(ptr161), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x31d call_indirect(0x17)')
+2191: p162 = getarrayitem_gc_r(p5, i160, descr=<ArrayP 8>)
+2196: i163 = getfield_gc_i(p162, descr=<FieldS tuple3.item1 16 pure>)
+2200: guard_value(i163, 13, descr=<Guard0x7f498fdf2440>) [i155, i134, i90, i163, p6, p5, p4, p3, None]
+2210: i166 = int_add(i134, 1)
+2214: i168 = int_sub(i155, 1)
+2218: i170 = int_lt(i166, 0)
+2222: guard_false(i170, descr=<Guard0x7f498fde63e0>) [i155, i134, i90, i163, p6, p5, p4, p3, None]
+2228: p171 = new(descr=<SizeDescr 40>)
+2246: setfield_gc(p171, ConstPtr(ptr172), descr=<FieldP tuple4.item0 8 pure>)
+2250: setfield_gc(p171, i168, descr=<FieldS tuple4.item1 16 pure>)
+2254: setfield_gc(p171, i90, descr=<FieldS tuple4.item2 24 pure>)
+2258: setfield_gc(p171, 799, descr=<FieldS tuple4.item3 32 pure>)
+2307: setarrayitem_gc(p6, i166, p171, descr=<ArrayP 8>)
+2312: i175 = int_sub(i155, 1)
+2312: p176 = getarrayitem_gc_r(p5, i155, descr=<ArrayP 8>)
+2317: i177 = getfield_gc_i(p176, descr=<FieldS tuple3.item0 8 pure>)
+2321: i178 = int_ne(i94, i177)
+2324: guard_false(i178, descr=<Guard0x7f498fdf24a0>) [p6, p5, p4, p3, i155, i80, i94, i177, i166, p76, p176, None]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+2330: jump(i155, i155, i166, p3, p4, p5, p6, i160, p76, 1, i94, p103, descr=TargetToken(139953923088496))
+2368: --end of the loop--
[2a5c26117961a8] jit-log-opt-loop}
[2a5c2611baeb3d] {jit-log-opt-loop
# Loop 2 (0x329 end(0xf)) : entry bridge with 135 ops
[i0, i1, i2, p3, p4, p5, p6]
debug_merge_point(0, 0, '0x329 end(0xf)')
+407: i8 = int_lt(i2, 0)
+415: guard_false(i8, descr=<Guard0x7f498fdf2500>) [p6, p5, p4, p3, i2, i0]
+421: p9 = getarrayitem_gc_r(p6, i2, descr=<ArrayP 8>)
+440: p10 = getfield_gc_r(p9, descr=<FieldP tuple4.item0 8 pure>)
+444: i11 = getfield_gc_i(p9, descr=<FieldS tuple4.item1 16 pure>)
+448: i12 = getfield_gc_i(p9, descr=<FieldS tuple4.item2 24 pure>)
+452: i13 = getfield_gc_i(p9, descr=<FieldS tuple4.item3 32 pure>)
+456: i15 = int_sub(i2, 1)
+460: p16 = getfield_gc_r(p10, descr=<FieldP warpy.Code.inst_type 40>)
+464: p17 = getfield_gc_r(p16, descr=<FieldP warpy.Type.inst_results 32>)
+468: i18 = arraylen_gc(p17, descr=<ArrayS 8>)
+472: i20 = int_gt(i18, 1)
+476: guard_false(i20, descr=<Guard0x7f498fde6420>) [p6, p5, p4, p3, i2, i0]
+482: i22 = int_add(i0, 1)
+493: i23 = int_gt(i18, i22)
+496: guard_false(i23, descr=<Guard0x7f498fde6460>) [p6, p5, p4, p3, i2, i0]
+502: i25 = int_eq(i18, 1)
+506: guard_true(i25, descr=<Guard0x7f498fde64a0>) [p6, p5, p4, p3, i2, i0]
+512: i27 = int_lt(i0, 0)
+520: guard_false(i27, descr=<Guard0x7f498fde64e0>) [p6, p5, p4, p3, i2, i0]
+526: p28 = getarrayitem_gc_r(p5, i0, descr=<ArrayP 8>)
+545: i30 = int_sub(i0, 1)
+550: i31 = getfield_gc_i(p28, descr=<FieldS tuple3.item0 8 pure>)
+554: i33 = getarrayitem_gc_pure_i(p17, 0, descr=<ArrayS 8>)
+558: i34 = int_ne(i31, i33)
+561: guard_false(i34, descr=<Guard0x7f498fde6520>) [p6, p5, p4, p3, i2, i0]
+567: i35 = int_lt(i11, i30)
+570: guard_false(i35, descr=<Guard0x7f498fde6560>) [p6, p5, p4, p3, i2, i0]
+617: setarrayitem_gc(p5, i0, p28, descr=<ArrayP 8>)
+622: guard_class(p10, ConstClass(Block), descr=<Guard0x7f498fdf2560>) [i13, i15, i12, i0, p10, p6, p5, p4, p3]
+634: i37 = getfield_gc_i(p10, descr=<FieldS warpy.Block.inst_kind 56>)
+638: i38 = int_is_zero(i37)
+641: guard_false(i38, descr=<Guard0x7f498fde65a0>) [i13, i15, i12, i0, p10, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x32a end(0xf)')
+647: i40 = int_lt(i15, 0)
+651: guard_false(i40, descr=<Guard0x7f498fde65e0>) [i13, i15, i12, i0, p10, p6, p5, p4, p3]
+657: p41 = getarrayitem_gc_r(p6, i15, descr=<ArrayP 8>)
+669: p42 = getfield_gc_r(p41, descr=<FieldP tuple4.item0 8 pure>)
+673: i43 = getfield_gc_i(p41, descr=<FieldS tuple4.item1 16 pure>)
+677: i44 = getfield_gc_i(p41, descr=<FieldS tuple4.item2 24 pure>)
+681: i45 = getfield_gc_i(p41, descr=<FieldS tuple4.item3 32 pure>)
+685: i47 = int_sub(i15, 1)
+689: p48 = getfield_gc_r(p42, descr=<FieldP warpy.Code.inst_type 40>)
+693: p49 = getfield_gc_r(p48, descr=<FieldP warpy.Type.inst_results 32>)
+697: i50 = arraylen_gc(p49, descr=<ArrayS 8>)
+701: i52 = int_gt(i50, 1)
+705: guard_false(i52, descr=<Guard0x7f498fde6620>) [i13, i15, i12, i0, p10, p6, p5, p4, p3]
+711: i54 = int_eq(i50, 1)
+715: guard_true(i54, descr=<Guard0x7f498fde6660>) [i13, i15, i12, i0, p10, p6, p5, p4, p3]
+721: p55 = getarrayitem_gc_r(p5, i0, descr=<ArrayP 8>)
+733: i56 = getfield_gc_i(p55, descr=<FieldS tuple3.item0 8 pure>)
+744: i58 = getarrayitem_gc_pure_i(p49, 0, descr=<ArrayS 8>)
+755: i59 = int_ne(i56, i58)
+758: guard_false(i59, descr=<Guard0x7f498fde66a0>) [i13, i15, i12, i0, p10, p6, p5, p4, p3]
+764: i60 = int_lt(i43, i30)
+767: guard_true(i60, descr=<Guard0x7f498fde66e0>) [i13, i15, i12, i0, p10, p6, p5, p4, p3]
+773: i62 = int_add(i43, 1)
+777: i64 = int_lt(i62, 0)
+781: guard_false(i64, descr=<Guard0x7f498fde6720>) [i13, i15, i12, i0, p10, p6, p5, p4, p3]
+833: setarrayitem_gc(p5, i62, p55, descr=<ArrayP 8>)
+838: guard_class(p42, ConstClass(Function), descr=<Guard0x7f498fdf25c0>) [i45, i47, i44, i62, p42, p6, p5, p4, p3]
+850: i67 = int_eq(i47, -1)
+858: guard_false(i67, descr=<Guard0x7f498fde6760>) [i45, i47, i44, i62, p42, p6, p5, p4, p3]
+864: i69 = int_lt(i45, 884)
+871: guard_true(i69, descr=<Guard0x7f498fde67a0>) [i45, i47, i44, i62, p42, p6, p5, p4, p3]
+884: i71 = getarrayitem_gc_pure_i(ConstPtr(ptr70), i45, descr=<ArrayS 8>)
+889: guard_value(i71, 20, descr=<Guard0x7f498fde67e0>) [i45, i47, i44, i62, p42, p6, p5, p4, p3]
+899: guard_value(i45, 799, descr=<Guard0x7f498fde6820>) [i45, i47, i44, i62, p42, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x31f get_local(0x14)')
+912: i75 = int_add(i62, 1)
+916: i77 = int_lt(i44, 0)
+924: guard_false(i77, descr=<Guard0x7f498fde6860>) [i45, i47, i44, i62, p42, p6, p5, p4, p3]
+930: p78 = getarrayitem_gc_r(p5, i44, descr=<ArrayP 8>)
+981: setarrayitem_gc(p5, i75, p78, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x321 i64.const(0x11)')
+986: i80 = int_add(i75, 1)
+1037: setarrayitem_gc(p5, i80, ConstPtr(ptr81), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x323 i64.sub(0x5c)')
+1042: p82 = getarrayitem_gc_r(p5, i80, descr=<ArrayP 8>)
+1047: p83 = getarrayitem_gc_r(p5, i75, descr=<ArrayP 8>)
+1052: i85 = int_sub(i80, 2)
+1056: i86 = getfield_gc_i(p83, descr=<FieldS tuple3.item1 16 pure>)
+1060: i87 = getfield_gc_i(p82, descr=<FieldS tuple3.item1 16 pure>)
+1064: i88 = int_sub(i86, i87)
+1067: i90 = int_add(i85, 1)
+1072: p91 = new(descr=<SizeDescr 32>)
+1136: setfield_gc(p91, 2, descr=<FieldS tuple3.item0 8 pure>)
+1144: setfield_gc(p91, i88, descr=<FieldS tuple3.item1 16 pure>)
+1148: setfield_gc(p91, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+1195: setarrayitem_gc(p5, i90, p91, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x324 i32.const(0x10)')
+1200: i95 = int_add(i90, 1)
+1250: setarrayitem_gc(p5, i95, ConstPtr(ptr96), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x326 call_indirect(0x17)')
+1255: p97 = getarrayitem_gc_r(p5, i95, descr=<ArrayP 8>)
+1260: i98 = getfield_gc_i(p97, descr=<FieldS tuple3.item1 16 pure>)
+1264: guard_value(i98, 13, descr=<Guard0x7f498fdf2620>) [i90, i47, i44, i98, p6, p5, p4, p3]
+1281: p101 = getfield_gc_r(ConstPtr(ptr100), descr=<FieldP warpy.Code.inst_type 40>)
+1286: i103 = int_add(i47, 1)
+1297: p104 = getfield_gc_r(p101, descr=<FieldP warpy.Type.inst_params 24>)
+1301: i105 = arraylen_gc(p104, descr=<ArrayS 8>)
+1305: i106 = int_sub(i90, i105)
+1311: p107 = new(descr=<SizeDescr 40>)
+1323: setfield_gc(p107, ConstPtr(ptr108), descr=<FieldP tuple4.item0 8 pure>)
+1327: setfield_gc(p107, i106, descr=<FieldS tuple4.item1 16 pure>)
+1331: setfield_gc(p107, i44, descr=<FieldS tuple4.item2 24 pure>)
+1335: setfield_gc(p107, 808, descr=<FieldS tuple4.item3 32 pure>)
+1389: setarrayitem_gc(p6, i103, p107, descr=<ArrayP 8>)
+1394: i111 = getfield_gc_i(ConstPtr(ptr110), descr=<FieldS warpy.Code.inst_start 32>)
+1399: i113 = int_add(i106, 1)
+1403: i115 = int_ge(0, i105)
+1407: guard_false(i115, descr=<Guard0x7f498fdf2680>) [p6, p5, p4, p3, i113, i105, i111, i103, i90, p101]
+1413: i117 = getarrayitem_gc_pure_i(p104, 0, descr=<ArrayS 8>)
+1417: i119 = int_lt(i113, 0)
+1421: guard_false(i119, descr=<Guard0x7f498fde68a0>) [p6, p5, p4, p3, i113, i105, i111, i103, i90, p101]
+1427: p120 = getarrayitem_gc_r(p5, i113, descr=<ArrayP 8>)
+1432: i121 = getfield_gc_i(p120, descr=<FieldS tuple3.item0 8 pure>)
+1436: i122 = int_ne(i117, i121)
+1439: guard_false(i122, descr=<Guard0x7f498fde68e0>) [p6, p5, p4, p3, i113, i105, i111, i103, i90, p101]
+1445: i124 = int_ge(1, i105)
+1449: guard_true(i124, descr=<Guard0x7f498fde6920>) [p6, p5, p4, p3, i113, i105, i111, i103, i90, p101]
+1455: p126 = getfield_gc_r(ConstPtr(ptr125), descr=<FieldP warpy.Code.inst_locals 24>)
+1460: i127 = getfield_gc_i(p126, descr=<FieldS list.length 8>)
+1464: i129 = int_ge(0, i127)
+1468: guard_true(i129, descr=<Guard0x7f498fde6960>) [p6, p5, p4, p3, i113, i105, i111, i103, i90, p101]
+1474: i131 = int_lt(i111, 884)
+1481: guard_true(i131, descr=<Guard0x7f498fde69a0>) [p6, p5, p4, p3, i113, i105, i111, i103, i90, p101]
+1487: i133 = getarrayitem_gc_pure_i(ConstPtr(ptr132), i111, descr=<ArrayS 8>)
+1492: guard_value(i133, 20, descr=<Guard0x7f498fde69e0>) [p6, p5, p4, p3, i113, i105, i111, i103, i90, p101]
+1502: guard_value(i111, 780, descr=<Guard0x7f498fde6a20>) [p6, p5, p4, p3, i113, i105, i111, i103, i90, p101]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+1522: i137 = getfield_gc_i(ConstPtr(ptr136), descr=<FieldS warpy.Block.inst_else_addr 48>)
+1526: guard_value(i137, 790, descr=<Guard0x7f498fdf26e0>) [i103, i113, i90, p6, p5, p4, p3]
+1539: jump(i90, i113, i103, p3, p4, p5, p6, i95, p101, 1, i117, p126, descr=TargetToken(139953923088496))
+1616: --end of the loop--
[2a5c2611ca336c] jit-log-opt-loop}
[2a5c26122cac08] {jit-log-opt-bridge
# bridge out of Guard 0x7f498fdf23e0 with 148 ops
[i0, i1, i2, i3, p4, p5, p6, p7]
+382: i8 = int_is_true(i0)
+385: guard_true(i8, descr=<Guard0x7f498fdf2740>) [i0, i1, i2, i3, p4, p5, p6, p7]
debug_merge_point(0, 0, '0x313 i64.const(0x11)')
+391: i10 = int_add(i3, 1)
+395: i12 = int_lt(i10, 0)
+399: guard_false(i12, descr=<Guard0x7f498fde6a60>) [i0, i1, i2, i3, p4, p5, p6, p7]
+453: setarrayitem_gc(p5, i10, ConstPtr(ptr13), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x315 else(0x4)')
+458: i15 = int_lt(i1, 0)
+462: guard_false(i15, descr=<Guard0x7f498fdf27a0>) [i1, i2, i10, p4, p5, p6, p7]
+468: p16 = getarrayitem_gc_r(p4, i1, descr=<ArrayP 8>)
+473: p17 = getfield_gc_r(p16, descr=<FieldP tuple4.item0 8 pure>)
+477: i18 = getfield_gc_i(p17, descr=<FieldS warpy.Code.inst_br_addr 8>)
+481: i20 = int_lt(i18, 884)
+488: guard_true(i20, descr=<Guard0x7f498fde6aa0>) [i1, i2, i10, p4, p5, p6, p7]
+501: i22 = getarrayitem_gc_pure_i(ConstPtr(ptr21), i18, descr=<ArrayS 8>)
+506: guard_value(i22, 15, descr=<Guard0x7f498fde6ae0>) [i1, i2, i10, p4, p5, p6, p7]
+516: guard_value(i18, 809, descr=<Guard0x7f498fde6b20>) [i1, i2, i10, p4, p5, p6, p7]
debug_merge_point(0, 0, '0x329 end(0xf)')
+529: p25 = getarrayitem_gc_r(p4, i1, descr=<ArrayP 8>)
+534: p26 = getfield_gc_r(p25, descr=<FieldP tuple4.item0 8 pure>)
+538: i27 = getfield_gc_i(p25, descr=<FieldS tuple4.item1 16 pure>)
+542: i28 = getfield_gc_i(p25, descr=<FieldS tuple4.item2 24 pure>)
+546: i29 = getfield_gc_i(p25, descr=<FieldS tuple4.item3 32 pure>)
+550: i31 = int_sub(i1, 1)
+554: p32 = getfield_gc_r(p26, descr=<FieldP warpy.Code.inst_type 40>)
+558: p33 = getfield_gc_r(p32, descr=<FieldP warpy.Type.inst_results 32>)
+569: i34 = arraylen_gc(p33, descr=<ArrayS 8>)
+573: i36 = int_gt(i34, 1)
+577: guard_false(i36, descr=<Guard0x7f498fde6b60>) [i1, i2, i10, p4, p5, p6, p7]
+583: i38 = int_add(i10, 1)
+594: i39 = int_gt(i34, i38)
+597: guard_false(i39, descr=<Guard0x7f498fde6ba0>) [i1, i2, i10, p4, p5, p6, p7]
+603: i41 = int_eq(i34, 1)
+607: guard_true(i41, descr=<Guard0x7f498fde6be0>) [i1, i2, i10, p4, p5, p6, p7]
+613: p42 = getarrayitem_gc_r(p5, i10, descr=<ArrayP 8>)
+625: i43 = getfield_gc_i(p42, descr=<FieldS tuple3.item0 8 pure>)
+629: i45 = getarrayitem_gc_pure_i(p33, 0, descr=<ArrayS 8>)
+640: i46 = int_ne(i43, i45)
+643: guard_false(i46, descr=<Guard0x7f498fde6c20>) [i1, i2, i10, p4, p5, p6, p7]
+649: i47 = int_lt(i27, i3)
+652: guard_false(i47, descr=<Guard0x7f498fde6c60>) [i1, i2, i10, p4, p5, p6, p7]
+708: setarrayitem_gc(p5, i10, p42, descr=<ArrayP 8>)
+713: guard_class(p26, ConstClass(Block), descr=<Guard0x7f498fdf2800>) [i29, i31, i28, i10, p26, p4, p5, p6, p7]
+726: i49 = getfield_gc_i(p26, descr=<FieldS warpy.Block.inst_kind 56>)
+730: i50 = int_is_zero(i49)
+733: guard_false(i50, descr=<Guard0x7f498fde6ca0>) [i29, i31, i28, i10, p26, p4, p5, p6, p7]
debug_merge_point(0, 0, '0x32a end(0xf)')
+739: i52 = int_lt(i31, 0)
+743: guard_false(i52, descr=<Guard0x7f498fde6ce0>) [i29, i31, i28, i10, p26, p4, p5, p6, p7]
+749: p53 = getarrayitem_gc_r(p4, i31, descr=<ArrayP 8>)
+761: p54 = getfield_gc_r(p53, descr=<FieldP tuple4.item0 8 pure>)
+765: i55 = getfield_gc_i(p53, descr=<FieldS tuple4.item1 16 pure>)
+769: i56 = getfield_gc_i(p53, descr=<FieldS tuple4.item2 24 pure>)
+773: i57 = getfield_gc_i(p53, descr=<FieldS tuple4.item3 32 pure>)
+777: i59 = int_sub(i31, 1)
+781: p60 = getfield_gc_r(p54, descr=<FieldP warpy.Code.inst_type 40>)
+785: p61 = getfield_gc_r(p60, descr=<FieldP warpy.Type.inst_results 32>)
+790: i62 = arraylen_gc(p61, descr=<ArrayS 8>)
+794: i64 = int_gt(i62, 1)
+798: guard_false(i64, descr=<Guard0x7f498fde6d20>) [i29, i31, i28, i10, p26, p4, p5, p6, p7]
+804: i66 = int_eq(i62, 1)
+808: guard_true(i66, descr=<Guard0x7f498fde6d60>) [i29, i31, i28, i10, p26, p4, p5, p6, p7]
+814: p67 = getarrayitem_gc_r(p5, i10, descr=<ArrayP 8>)
+826: i68 = getfield_gc_i(p67, descr=<FieldS tuple3.item0 8 pure>)
+838: i70 = getarrayitem_gc_pure_i(p61, 0, descr=<ArrayS 8>)
+849: i71 = int_ne(i68, i70)
+852: guard_false(i71, descr=<Guard0x7f498fde6da0>) [i29, i31, i28, i10, p26, p4, p5, p6, p7]
+858: i72 = int_lt(i55, i3)
+861: guard_true(i72, descr=<Guard0x7f498fde6de0>) [i29, i31, i28, i10, p26, p4, p5, p6, p7]
+867: i74 = int_add(i55, 1)
+871: i76 = int_lt(i74, 0)
+875: guard_false(i76, descr=<Guard0x7f498fde6e20>) [i29, i31, i28, i10, p26, p4, p5, p6, p7]
+929: setarrayitem_gc(p5, i74, p67, descr=<ArrayP 8>)
+934: guard_class(p54, ConstClass(Function), descr=<Guard0x7f498fdf2860>) [i57, i59, i56, i74, p54, p4, p5, p6, p7]
+946: i79 = int_eq(i59, -1)
+954: guard_false(i79, descr=<Guard0x7f498fde6e60>) [i57, i59, i56, i74, p54, p4, p5, p6, p7]
+960: i81 = int_lt(i57, 884)
+967: guard_true(i81, descr=<Guard0x7f498fde6ea0>) [i57, i59, i56, i74, p54, p4, p5, p6, p7]
+973: i83 = getarrayitem_gc_pure_i(ConstPtr(ptr82), i57, descr=<ArrayS 8>)
+985: guard_value(i83, 20, descr=<Guard0x7f498fde6ee0>) [i57, i59, i56, i74, p54, p4, p5, p6, p7]
+995: guard_value(i57, 799, descr=<Guard0x7f498fde6f20>) [i57, i59, i56, i74, p54, p4, p5, p6, p7]
debug_merge_point(0, 0, '0x31f get_local(0x14)')
+1008: i87 = int_add(i74, 1)
+1012: i89 = int_lt(i56, 0)
+1020: guard_false(i89, descr=<Guard0x7f498fde6f60>) [i57, i59, i56, i74, p54, p4, p5, p6, p7]
+1026: p90 = getarrayitem_gc_r(p5, i56, descr=<ArrayP 8>)
+1079: setarrayitem_gc(p5, i87, p90, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x321 i64.const(0x11)')
+1084: i92 = int_add(i87, 1)
+1136: setarrayitem_gc(p5, i92, ConstPtr(ptr93), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x323 i64.sub(0x5c)')
+1141: p94 = getarrayitem_gc_r(p5, i92, descr=<ArrayP 8>)
+1146: p95 = getarrayitem_gc_r(p5, i87, descr=<ArrayP 8>)
+1151: i97 = int_sub(i92, 2)
+1155: i98 = getfield_gc_i(p95, descr=<FieldS tuple3.item1 16 pure>)
+1159: i99 = getfield_gc_i(p94, descr=<FieldS tuple3.item1 16 pure>)
+1163: i100 = int_sub(i98, i99)
+1166: i102 = int_add(i97, 1)
+1170: p103 = new(descr=<SizeDescr 32>)
+1234: setfield_gc(p103, 2, descr=<FieldS tuple3.item0 8 pure>)
+1242: setfield_gc(p103, i100, descr=<FieldS tuple3.item1 16 pure>)
+1246: setfield_gc(p103, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+1295: setarrayitem_gc(p5, i102, p103, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x324 i32.const(0x10)')
+1300: i107 = int_add(i102, 1)
+1352: setarrayitem_gc(p5, i107, ConstPtr(ptr108), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x326 call_indirect(0x17)')
+1357: p109 = getarrayitem_gc_r(p5, i107, descr=<ArrayP 8>)
+1362: i110 = getfield_gc_i(p109, descr=<FieldS tuple3.item1 16 pure>)
+1366: guard_value(i110, 13, descr=<Guard0x7f498fdf28c0>) [i102, i59, i56, i110, p4, p5, p6, p7]
+1383: p113 = getfield_gc_r(ConstPtr(ptr112), descr=<FieldP warpy.Code.inst_type 40>)
+1387: i115 = int_add(i59, 1)
+1398: p116 = getfield_gc_r(p113, descr=<FieldP warpy.Type.inst_params 24>)
+1402: i117 = arraylen_gc(p116, descr=<ArrayS 8>)
+1406: i118 = int_sub(i102, i117)
+1412: p119 = new(descr=<SizeDescr 40>)
+1423: setfield_gc(p119, ConstPtr(ptr120), descr=<FieldP tuple4.item0 8 pure>)
+1427: setfield_gc(p119, i118, descr=<FieldS tuple4.item1 16 pure>)
+1431: setfield_gc(p119, i56, descr=<FieldS tuple4.item2 24 pure>)
+1435: setfield_gc(p119, 808, descr=<FieldS tuple4.item3 32 pure>)
+1489: setarrayitem_gc(p4, i115, p119, descr=<ArrayP 8>)
+1494: i123 = getfield_gc_i(ConstPtr(ptr122), descr=<FieldS warpy.Code.inst_start 32>)
+1498: i125 = int_add(i118, 1)
+1502: i127 = int_ge(0, i117)
+1506: guard_false(i127, descr=<Guard0x7f498fdf2920>) [p4, p5, p6, p7, i125, i117, i123, i115, i102, p113]
+1512: i129 = getarrayitem_gc_pure_i(p116, 0, descr=<ArrayS 8>)
+1516: i131 = int_lt(i125, 0)
+1520: guard_false(i131, descr=<Guard0x7f498fde6fa0>) [p4, p5, p6, p7, i125, i117, i123, i115, i102, p113]
+1526: p132 = getarrayitem_gc_r(p5, i125, descr=<ArrayP 8>)
+1531: i133 = getfield_gc_i(p132, descr=<FieldS tuple3.item0 8 pure>)
+1535: i134 = int_ne(i129, i133)
+1538: guard_false(i134, descr=<Guard0x7f498fde6fe0>) [p4, p5, p6, p7, i125, i117, i123, i115, i102, p113]
+1544: i136 = int_ge(1, i117)
+1548: guard_true(i136, descr=<Guard0x7f498fde7020>) [p4, p5, p6, p7, i125, i117, i123, i115, i102, p113]
+1554: p138 = getfield_gc_r(ConstPtr(ptr137), descr=<FieldP warpy.Code.inst_locals 24>)
+1558: i139 = getfield_gc_i(p138, descr=<FieldS list.length 8>)
+1562: i141 = int_ge(0, i139)
+1566: guard_true(i141, descr=<Guard0x7f498fde7060>) [p4, p5, p6, p7, i125, i117, i123, i115, i102, p113]
+1572: i143 = int_lt(i123, 884)
+1579: guard_true(i143, descr=<Guard0x7f498fde70a0>) [p4, p5, p6, p7, i125, i117, i123, i115, i102, p113]
+1585: i145 = getarrayitem_gc_pure_i(ConstPtr(ptr144), i123, descr=<ArrayS 8>)
+1590: guard_value(i145, 20, descr=<Guard0x7f498fde70e0>) [p4, p5, p6, p7, i125, i117, i123, i115, i102, p113]
+1600: guard_value(i123, 780, descr=<Guard0x7f498fde7120>) [p4, p5, p6, p7, i125, i117, i123, i115, i102, p113]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+1620: i149 = getfield_gc_i(ConstPtr(ptr148), descr=<FieldS warpy.Block.inst_else_addr 48>)
+1624: guard_value(i149, 790, descr=<Guard0x7f498fdf2980>) [i115, i125, i102, p4, p5, p6, p7]
+1637: jump(i102, i125, i115, p7, p6, p5, p4, i107, p113, 1, i129, p138, descr=TargetToken(139953923088496))
+1712: --end of the loop--
[2a5c2612401448] jit-log-opt-bridge}
[2a5c2612985bb0] {jit-log-opt-loop
# Loop 4 (0x328 i64.add(0x5b)) : loop with 165 ops
[i0, i1, i2, p3, p4, p5, p6]
+439: label(i0, i1, i2, p3, p4, p5, p6, descr=TargetToken(139953923088576))
+448: i8 = int_lt(i0, 0)
+456: guard_false(i8, descr=<Guard0x7f498fdf29e0>) [i2, i1, i0, p6, p5, p4, p3]
+462: p9 = getarrayitem_gc_r(p5, i0, descr=<ArrayP 8>)
+481: i11 = int_sub(i0, 1)
+485: i13 = int_lt(i11, 0)
+489: guard_false(i13, descr=<Guard0x7f498fde7160>) [i2, i1, i0, p6, p5, p4, p3]
+495: p14 = getarrayitem_gc_r(p5, i11, descr=<ArrayP 8>)
+500: i16 = int_sub(i0, 2)
+504: i17 = getfield_gc_i(p14, descr=<FieldS tuple3.item1 16 pure>)
+508: i18 = getfield_gc_i(p9, descr=<FieldS tuple3.item1 16 pure>)
+512: i19 = int_add(i17, i18)
+515: i21 = int_add(i16, 1)
+519: p22 = new(descr=<SizeDescr 32>)
+586: setfield_gc(p22, 2, descr=<FieldS tuple3.item0 8 pure>)
+594: setfield_gc(p22, i19, descr=<FieldS tuple3.item1 16 pure>)
+598: setfield_gc(p22, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+649: setarrayitem_gc(p5, i21, p22, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x329 end(0xf)')
+654: i26 = int_lt(i2, 0)
+662: guard_false(i26, descr=<Guard0x7f498fdf2a40>) [p6, p5, p4, p3, i2, i21]
+668: p27 = getarrayitem_gc_r(p6, i2, descr=<ArrayP 8>)
+687: p28 = getfield_gc_r(p27, descr=<FieldP tuple4.item0 8 pure>)
+691: i29 = getfield_gc_i(p27, descr=<FieldS tuple4.item1 16 pure>)
+695: i30 = getfield_gc_i(p27, descr=<FieldS tuple4.item2 24 pure>)
+699: i31 = getfield_gc_i(p27, descr=<FieldS tuple4.item3 32 pure>)
+703: i33 = int_sub(i2, 1)
+707: p34 = getfield_gc_r(p28, descr=<FieldP warpy.Code.inst_type 40>)
+711: p35 = getfield_gc_r(p34, descr=<FieldP warpy.Type.inst_results 32>)
+715: i36 = arraylen_gc(p35, descr=<ArrayS 8>)
+719: i38 = int_gt(i36, 1)
+723: guard_false(i38, descr=<Guard0x7f498fde71a0>) [p6, p5, p4, p3, i2, i21]
+729: i40 = int_add(i21, 1)
+729: i42 = int_eq(i36, 1)
+733: guard_true(i42, descr=<Guard0x7f498fde71e0>) [p6, p5, p4, p3, i2, i21]
+739: p43 = getarrayitem_gc_r(p5, i21, descr=<ArrayP 8>)
+744: i44 = getfield_gc_i(p43, descr=<FieldS tuple3.item0 8 pure>)
+748: i46 = getarrayitem_gc_pure_i(p35, 0, descr=<ArrayS 8>)
+752: i47 = int_ne(i44, i46)
+755: guard_false(i47, descr=<Guard0x7f498fde7220>) [p6, p5, p4, p3, i2, i21]
+761: i48 = int_lt(i29, i16)
+764: guard_false(i48, descr=<Guard0x7f498fde7260>) [p6, p5, p4, p3, i2, i21]
+816: setarrayitem_gc(p5, i21, p43, descr=<ArrayP 8>)
+821: guard_class(p28, ConstClass(Block), descr=<Guard0x7f498fdf2aa0>) [i31, i33, i30, i21, p28, p6, p5, p4, p3]
+833: i50 = getfield_gc_i(p28, descr=<FieldS warpy.Block.inst_kind 56>)
+837: i51 = int_is_zero(i50)
+840: guard_false(i51, descr=<Guard0x7f498fde72a0>) [i31, i33, i30, i21, p28, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x32a end(0xf)')
+846: i53 = int_lt(i33, 0)
+850: guard_false(i53, descr=<Guard0x7f498fde72e0>) [i31, i33, i30, i21, p28, p6, p5, p4, p3]
+856: p54 = getarrayitem_gc_r(p6, i33, descr=<ArrayP 8>)
+861: p55 = getfield_gc_r(p54, descr=<FieldP tuple4.item0 8 pure>)
+865: i56 = getfield_gc_i(p54, descr=<FieldS tuple4.item1 16 pure>)
+869: i57 = getfield_gc_i(p54, descr=<FieldS tuple4.item2 24 pure>)
+873: i58 = getfield_gc_i(p54, descr=<FieldS tuple4.item3 32 pure>)
+877: i60 = int_sub(i33, 1)
+881: p61 = getfield_gc_r(p55, descr=<FieldP warpy.Code.inst_type 40>)
+885: p62 = getfield_gc_r(p61, descr=<FieldP warpy.Type.inst_results 32>)
+889: i63 = arraylen_gc(p62, descr=<ArrayS 8>)
+893: i65 = int_gt(i63, 1)
+897: guard_false(i65, descr=<Guard0x7f498fde7320>) [i31, i33, i30, i21, p28, p6, p5, p4, p3]
+903: i67 = int_eq(i63, 1)
+907: guard_true(i67, descr=<Guard0x7f498fde7360>) [i31, i33, i30, i21, p28, p6, p5, p4, p3]
+913: p68 = getarrayitem_gc_r(p5, i21, descr=<ArrayP 8>)
+925: i69 = getfield_gc_i(p68, descr=<FieldS tuple3.item0 8 pure>)
+936: i71 = getarrayitem_gc_pure_i(p62, 0, descr=<ArrayS 8>)
+947: i72 = int_ne(i69, i71)
+950: guard_false(i72, descr=<Guard0x7f498fde73a0>) [i31, i33, i30, i21, p28, p6, p5, p4, p3]
+956: i73 = int_lt(i56, i16)
+959: guard_true(i73, descr=<Guard0x7f498fde73e0>) [i31, i33, i30, i21, p28, p6, p5, p4, p3]
+965: i75 = int_add(i56, 1)
+970: i77 = int_lt(i75, 0)
+974: guard_false(i77, descr=<Guard0x7f498fde7420>) [i31, i33, i30, i21, p28, p6, p5, p4, p3]
+1026: setarrayitem_gc(p5, i75, p68, descr=<ArrayP 8>)
+1031: guard_class(p55, ConstClass(Function), descr=<Guard0x7f498fdf2b00>) [i58, i60, i57, i75, p55, p6, p5, p4, p3]
+1044: i80 = int_eq(i60, -1)
+1052: guard_false(i80, descr=<Guard0x7f498fde7460>) [i58, i60, i57, i75, p55, p6, p5, p4, p3]
+1058: i82 = int_lt(i58, 884)
+1065: guard_true(i82, descr=<Guard0x7f498fde74a0>) [i58, i60, i57, i75, p55, p6, p5, p4, p3]
+1078: i84 = getarrayitem_gc_pure_i(ConstPtr(ptr83), i58, descr=<ArrayS 8>)
+1083: guard_value(i84, 91, descr=<Guard0x7f498fde74e0>) [i58, i60, i57, i75, p55, p6, p5, p4, p3]
+1093: guard_value(i58, 808, descr=<Guard0x7f498fde7520>) [i58, i60, i57, i75, p55, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x328 i64.add(0x5b)')
+1106: label(i75, i57, i60, p3, p4, p5, p6, descr=TargetToken(139953923088656))
+1120: p87 = getarrayitem_gc_r(p5, i75, descr=<ArrayP 8>)
+1125: i89 = int_sub(i75, 1)
+1129: i91 = int_lt(i89, 0)
+1133: guard_false(i91, descr=<Guard0x7f498fdf2b60>) [i89, i75, i60, i57, p87, p6, p5, p4, p3]
+1139: p92 = getarrayitem_gc_r(p5, i89, descr=<ArrayP 8>)
+1144: i94 = int_sub(i75, 2)
+1148: i95 = getfield_gc_i(p92, descr=<FieldS tuple3.item1 16 pure>)
+1152: i96 = getfield_gc_i(p87, descr=<FieldS tuple3.item1 16 pure>)
+1156: i97 = int_add(i95, i96)
+1159: i99 = int_add(i94, 1)
+1163: p100 = new(descr=<SizeDescr 32>)
+1227: setfield_gc(p100, 2, descr=<FieldS tuple3.item0 8 pure>)
+1235: setfield_gc(p100, i97, descr=<FieldS tuple3.item1 16 pure>)
+1239: setfield_gc(p100, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+1286: setarrayitem_gc(p5, i99, p100, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x329 end(0xf)')
+1291: i104 = int_lt(i60, 0)
+1299: guard_false(i104, descr=<Guard0x7f498fdf2bc0>) [p6, p5, p4, p3, i60, i99]
+1305: p105 = getarrayitem_gc_r(p6, i60, descr=<ArrayP 8>)
+1324: p106 = getfield_gc_r(p105, descr=<FieldP tuple4.item0 8 pure>)
+1328: i107 = getfield_gc_i(p105, descr=<FieldS tuple4.item1 16 pure>)
+1332: i108 = getfield_gc_i(p105, descr=<FieldS tuple4.item2 24 pure>)
+1336: i109 = getfield_gc_i(p105, descr=<FieldS tuple4.item3 32 pure>)
+1340: i111 = int_sub(i60, 1)
+1344: p112 = getfield_gc_r(p106, descr=<FieldP warpy.Code.inst_type 40>)
+1348: p113 = getfield_gc_r(p112, descr=<FieldP warpy.Type.inst_results 32>)
+1352: i114 = arraylen_gc(p113, descr=<ArrayS 8>)
+1356: i116 = int_gt(i114, 1)
+1360: guard_false(i116, descr=<Guard0x7f498fe067a0>) [p6, p5, p4, p3, i60, i99]
+1366: i118 = int_add(i99, 1)
+1366: i120 = int_eq(i114, 1)
+1370: guard_true(i120, descr=<Guard0x7f498fe06720>) [p6, p5, p4, p3, i60, i99]
+1376: p121 = getarrayitem_gc_r(p5, i99, descr=<ArrayP 8>)
+1381: i122 = getfield_gc_i(p121, descr=<FieldS tuple3.item0 8 pure>)
+1385: i124 = getarrayitem_gc_pure_i(p113, 0, descr=<ArrayS 8>)
+1396: i125 = int_ne(i122, i124)
+1399: guard_false(i125, descr=<Guard0x7f498fe066a0>) [p6, p5, p4, p3, i60, i99]
+1405: i126 = int_lt(i107, i94)
+1408: guard_false(i126, descr=<Guard0x7f498fe06620>) [p6, p5, p4, p3, i60, i99]
+1460: setarrayitem_gc(p5, i99, p121, descr=<ArrayP 8>)
+1465: guard_class(p106, ConstClass(Block), descr=<Guard0x7f498fdf2c80>) [i109, i111, i108, i99, p106, p6, p5, p4, p3]
+1478: i128 = getfield_gc_i(p106, descr=<FieldS warpy.Block.inst_kind 56>)
+1482: i129 = int_is_zero(i128)
+1485: guard_false(i129, descr=<Guard0x7f498fe065a0>) [i109, i111, i108, i99, p106, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x32a end(0xf)')
+1491: i131 = int_lt(i111, 0)
+1495: guard_false(i131, descr=<Guard0x7f498fe06560>) [i109, i111, i108, i99, p106, p6, p5, p4, p3]
+1501: p132 = getarrayitem_gc_r(p6, i111, descr=<ArrayP 8>)
+1506: p133 = getfield_gc_r(p132, descr=<FieldP tuple4.item0 8 pure>)
+1510: i134 = getfield_gc_i(p132, descr=<FieldS tuple4.item1 16 pure>)
+1514: i135 = getfield_gc_i(p132, descr=<FieldS tuple4.item2 24 pure>)
+1518: i136 = getfield_gc_i(p132, descr=<FieldS tuple4.item3 32 pure>)
+1522: i138 = int_sub(i111, 1)
+1526: p139 = getfield_gc_r(p133, descr=<FieldP warpy.Code.inst_type 40>)
+1530: p140 = getfield_gc_r(p139, descr=<FieldP warpy.Type.inst_results 32>)
+1534: i141 = arraylen_gc(p140, descr=<ArrayS 8>)
+1538: i143 = int_gt(i141, 1)
+1542: guard_false(i143, descr=<Guard0x7f498fe06520>) [i109, i111, i108, i99, p106, p6, p5, p4, p3]
+1548: i145 = int_eq(i141, 1)
+1552: guard_true(i145, descr=<Guard0x7f498fe064e0>) [i109, i111, i108, i99, p106, p6, p5, p4, p3]
+1558: p146 = getarrayitem_gc_r(p5, i99, descr=<ArrayP 8>)
+1577: i147 = getfield_gc_i(p146, descr=<FieldS tuple3.item0 8 pure>)
+1588: i149 = getarrayitem_gc_pure_i(p140, 0, descr=<ArrayS 8>)
+1592: i150 = int_ne(i147, i149)
+1595: guard_false(i150, descr=<Guard0x7f498fe064a0>) [i109, i111, i108, i99, p106, p6, p5, p4, p3]
+1601: i151 = int_lt(i134, i94)
+1604: guard_true(i151, descr=<Guard0x7f498fe06460>) [i109, i111, i108, i99, p106, p6, p5, p4, p3]
+1610: i153 = int_add(i134, 1)
+1614: i155 = int_lt(i153, 0)
+1618: guard_false(i155, descr=<Guard0x7f498fe06420>) [i109, i111, i108, i99, p106, p6, p5, p4, p3]
+1672: setarrayitem_gc(p5, i153, p146, descr=<ArrayP 8>)
+1677: guard_class(p133, ConstClass(Function), descr=<Guard0x7f498fdf2c20>) [i136, i138, i135, i153, p133, p6, p5, p4, p3]
+1690: i158 = int_eq(i138, -1)
+1698: guard_false(i158, descr=<Guard0x7f498fe063a0>) [i136, i138, i135, i153, p133, p6, p5, p4, p3]
+1704: i160 = int_lt(i136, 884)
+1711: guard_true(i160, descr=<Guard0x7f498fe06360>) [i136, i138, i135, i153, p133, p6, p5, p4, p3]
+1724: i162 = getarrayitem_gc_pure_i(ConstPtr(ptr161), i136, descr=<ArrayS 8>)
+1729: guard_value(i162, 91, descr=<Guard0x7f498fe06320>) [i136, i138, i135, i153, p133, p6, p5, p4, p3]
+1739: guard_value(i136, 808, descr=<Guard0x7f498fe062e0>) [i136, i138, i135, i153, p133, p6, p5, p4, p3]
debug_merge_point(0, 0, '0x328 i64.add(0x5b)')
+1752: jump(i153, i135, i138, p3, p4, p5, p6, descr=TargetToken(139953923088656))
+1792: --end of the loop--
[2a5c2612f73c52] jit-log-opt-loop}
[2a5c2613123e05] {jit-log-opt-bridge
# bridge out of Guard 0x7f498fde6ee0 with 16 ops
[i0, i1, i2, i3, p4, p5, p6, p7, p8]
+126: guard_class(p4, ConstClass(Function), descr=<Guard0x7f498fdf2ce0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+138: i11 = int_eq(i1, -1)
+146: guard_false(i11, descr=<Guard0x7f498fe06ca0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+152: i13 = int_lt(i0, 884)
+159: guard_true(i13, descr=<Guard0x7f498fe06ce0>) [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=<Guard0x7f498fe06d20>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+187: guard_value(i0, 808, descr=<Guard0x7f498fe06d60>) [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=<Guard0x7f498fdf2d40>) [i1, i2, i3, p5, p6, p7, p8]
+210: i21 = int_ge(i1, -1)
+218: guard_true(i21, descr=<Guard0x7f498fdf2da0>) [i1, i2, i3, p5, p6, p7, p8]
+224: guard_nonnull(p6, descr=<Guard0x7f498fdf2e00>) [i1, i2, i3, p5, p6, p7, p8]
+233: guard_nonnull(p5, descr=<Guard0x7f498fdf2e60>) [i1, i2, i3, p5, p6, p7, p8]
+247: jump(i3, i2, i1, p8, p7, p6, p5, descr=TargetToken(139953923088656))
+320: --end of the loop--
[2a5c2613139fff] jit-log-opt-bridge}
[2a5c261332ad12] {jit-log-opt-bridge
# bridge out of Guard 0x7f498fe06320 with 82 ops
[i0, i1, i2, i3, p4, p5, p6, p7, p8]
+254: guard_class(p4, ConstClass(Function), descr=<Guard0x7f498fdf2ec0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+267: i11 = int_eq(i1, -1)
+275: guard_false(i11, descr=<Guard0x7f498fe06da0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+281: i13 = int_lt(i0, 884)
+288: guard_true(i13, descr=<Guard0x7f498fe06de0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+301: i15 = getarrayitem_gc_pure_i(ConstPtr(ptr14), i0, descr=<ArrayS 8>)
+306: guard_value(i15, 20, descr=<Guard0x7f498fe06e20>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+316: guard_value(i0, 799, descr=<Guard0x7f498fe06e60>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
debug_merge_point(0, 0, '0x31f get_local(0x14)')
+329: i19 = int_add(i3, 1)
+333: i21 = int_lt(i2, 0)
+341: guard_false(i21, descr=<Guard0x7f498fe06ea0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+347: p22 = getarrayitem_gc_r(p6, i2, descr=<ArrayP 8>)
+359: i24 = int_lt(i19, 0)
+363: guard_false(i24, descr=<Guard0x7f498fe06ee0>) [i0, i1, i2, i3, p4, p5, p6, p7, p8]
+410: setarrayitem_gc(p6, i19, p22, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x321 i64.const(0x11)')
+415: i26 = int_add(i19, 1)
+420: i28 = int_lt(i26, 0)
+424: guard_false(i28, descr=<Guard0x7f498fdf2f20>) [i1, i2, i26, p5, p6, p7, p8]
+478: setarrayitem_gc(p6, i26, ConstPtr(ptr29), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x323 i64.sub(0x5c)')
+483: p30 = getarrayitem_gc_r(p6, i26, descr=<ArrayP 8>)
+488: p31 = getarrayitem_gc_r(p6, i19, descr=<ArrayP 8>)
+493: i33 = int_sub(i26, 2)
+497: i34 = getfield_gc_i(p31, descr=<FieldS tuple3.item1 16 pure>)
+501: i35 = getfield_gc_i(p30, descr=<FieldS tuple3.item1 16 pure>)
+505: i36 = int_sub(i34, i35)
+508: i38 = int_add(i33, 1)
+513: i40 = int_lt(i38, 0)
+517: guard_false(i40, descr=<Guard0x7f498fdf2f80>) [i38, i1, i2, p5, p6, p7, p8, i36]
+523: p41 = new(descr=<SizeDescr 32>)
+587: setfield_gc(p41, 2, descr=<FieldS tuple3.item0 8 pure>)
+595: setfield_gc(p41, i36, descr=<FieldS tuple3.item1 16 pure>)
+599: setfield_gc(p41, 0.000000, descr=<FieldF tuple3.item2 24 pure>)
+648: setarrayitem_gc(p6, i38, p41, descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x324 i32.const(0x10)')
+653: i45 = int_add(i38, 1)
+705: setarrayitem_gc(p6, i45, ConstPtr(ptr46), descr=<ArrayP 8>)
debug_merge_point(0, 0, '0x326 call_indirect(0x17)')
+710: p47 = getarrayitem_gc_r(p6, i45, descr=<ArrayP 8>)
+715: i48 = getfield_gc_i(p47, descr=<FieldS tuple3.item1 16 pure>)
+719: guard_value(i48, 13, descr=<Guard0x7f498fdf2fe0>) [i38, i1, i2, i48, p5, p6, p7, p8, None]
+736: p52 = getfield_gc_r(ConstPtr(ptr51), descr=<FieldP warpy.Code.inst_type 40>)
+740: i54 = int_add(i1, 1)
+751: p55 = getfield_gc_r(p52, descr=<FieldP warpy.Type.inst_params 24>)
+755: i56 = arraylen_gc(p55, descr=<ArrayS 8>)
+759: i57 = int_sub(i38, i56)
+765: i59 = int_lt(i54, 0)
+769: guard_false(i59, descr=<Guard0x7f498fe06f20>) [i38, i1, i2, i48, p5, p6, p7, p8, None]
+775: p60 = new(descr=<SizeDescr 40>)
+787: setfield_gc(p60, ConstPtr(ptr61), descr=<FieldP tuple4.item0 8 pure>)
+792: setfield_gc(p60, i57, descr=<FieldS tuple4.item1 16 pure>)
+797: setfield_gc(p60, i2, descr=<FieldS tuple4.item2 24 pure>)
+802: setfield_gc(p60, 808, descr=<FieldS tuple4.item3 32 pure>)
+859: setarrayitem_gc(p5, i54, p60, descr=<ArrayP 8>)
+864: i64 = getfield_gc_i(ConstPtr(ptr63), descr=<FieldS warpy.Code.inst_start 32>)
+868: i66 = int_add(i57, 1)
+872: i68 = int_ge(0, i56)
+876: guard_false(i68, descr=<Guard0x7f498fdf3040>) [p5, p6, p7, p8, i66, i56, i64, i54, i38, p52, None]
+882: i70 = getarrayitem_gc_pure_i(p55, 0, descr=<ArrayS 8>)
+886: i72 = int_lt(i66, 0)
+890: guard_false(i72, descr=<Guard0x7f498fe06f60>) [p5, p6, p7, p8, i66, i56, i64, i54, i38, p52, None]
+896: p73 = getarrayitem_gc_r(p6, i66, descr=<ArrayP 8>)
+901: i74 = getfield_gc_i(p73, descr=<FieldS tuple3.item0 8 pure>)
+912: i75 = int_ne(i70, i74)
+915: guard_false(i75, descr=<Guard0x7f498fe06fa0>) [p5, p6, p7, p8, i66, i56, i64, i54, i38, p52, None]
+921: i77 = int_ge(1, i56)
+925: guard_true(i77, descr=<Guard0x7f498fe06fe0>) [p5, p6, p7, p8, i66, i56, i64, i54, i38, p52, None]
+931: p79 = getfield_gc_r(ConstPtr(ptr78), descr=<FieldP warpy.Code.inst_locals 24>)
+935: i80 = getfield_gc_i(p79, descr=<FieldS list.length 8>)
+939: i82 = int_ge(0, i80)
+943: guard_true(i82, descr=<Guard0x7f498fe07020>) [p5, p6, p7, p8, i66, i56, i64, i54, i38, p52, None]
+949: i84 = int_lt(i64, 884)
+956: guard_true(i84, descr=<Guard0x7f498fe07060>) [p5, p6, p7, p8, i66, i56, i64, i54, i38, p52, None]
+962: i86 = getarrayitem_gc_pure_i(ConstPtr(ptr85), i64, descr=<ArrayS 8>)
+967: guard_value(i86, 20, descr=<Guard0x7f498fe070a0>) [p5, p6, p7, p8, i66, i56, i64, i54, i38, p52, None]
+977: guard_value(i64, 780, descr=<Guard0x7f498fe070e0>) [p5, p6, p7, p8, i66, i56, i64, i54, i38, p52, None]
debug_merge_point(0, 0, '0x30c get_local(0x14)')
+997: i90 = getfield_gc_i(ConstPtr(ptr89), descr=<FieldS warpy.Block.inst_else_addr 48>)
+1002: guard_value(i90, 790, descr=<Guard0x7f498fdf30a0>) [i54, i66, i38, p5, p6, p7, p8, None]
+1015: jump(i38, i66, i54, p8, p7, p6, p5, i45, p52, 1, i70, p79, descr=TargetToken(139953923088496))
+1088: --end of the loop--
[2a5c2613391471] jit-log-opt-bridge}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment