Skip to content

Instantly share code, notes, and snippets.

@halgari
Created August 13, 2012 14:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save halgari/3341474 to your computer and use it in GitHub Desktop.
Save halgari/3341474 to your computer and use it in GitHub Desktop.
jitlog
[13235a60055c] {jit-log-opt-loop
# Loop 0 (0 LOAD_ARG) : loop with 196 ops
[p0, p1, p2]
+84: label(p0, p1, p2, descr=TargetToken(140251232256032))
debug_merge_point(0, 0, '0 LOAD_ARG')
+135: p4 = getfield_gc(ConstPtr(ptr3), descr=<FieldP system.interpreter.Interpreter.inst__call_stack 16>)
+148: p6 = call(ConstClass(W_InternalList.getFirst), p4, descr=<Callr 8 r EF=0>)
+167: i7 = getfield_gc(ConstPtr(ptr3), descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
+180: i9 = call(ConstClass(get_bcode_at), p6, i7, descr=<Calli 8 ri EF=0>)
+209: i11 = int_add(i7, 1)
+220: setfield_gc(ConstPtr(ptr3), i11, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
+233: guard_value(i9, 5, descr=<Guard2>) [i9]
+243: i14 = call(ConstClass(get_bcode_at), p6, i11, descr=<Calli 8 ri EF=0>)
+269: i16 = int_add(i11, 1)
+280: p17 = getfield_gc(ConstPtr(ptr3), descr=<FieldP system.interpreter.Interpreter.inst__arg_stack 8>)
+293: p19 = call(ConstClass(W_InternalList.getFirst), p17, descr=<Callr 8 r EF=0>)
+326: p21 = call(ConstClass(W_Array.getNthInterp), p19, i14, descr=<Callr 8 ri EF=0>)
+352: p22 = getfield_gc(ConstPtr(ptr3), descr=<FieldP system.interpreter.Interpreter.inst__stack 48>)
+365: i23 = getfield_gc(ConstPtr(ptr3), descr=<FieldS system.interpreter.Interpreter.inst__sp 40>)
+378: setfield_gc(ConstPtr(ptr3), i16, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
+398: i25 = int_lt(i23, 0)
guard_false(i25, descr=<Guard3>) [i23, p22, p21]
setarrayitem_gc(p22, i23, p21, descr=<ArrayP 8>)
+452: i27 = int_add(i23, 1)
+456: p28 = getfield_gc(p6, descr=<FieldP system.objspace.Object.inst__bcode 16>)
+467: i29 = strlen(p28)
+471: setfield_gc(ConstPtr(ptr3), i27, descr=<FieldS system.interpreter.Interpreter.inst__sp 40>)
+484: guard_value(i29, 21, descr=<Guard4>) [i16, i29]
+494: i31 = int_lt(i16, 21)
guard_true(i31, descr=<Guard5>) []
+504: i33 = instance_ptr_eq(p17, ConstPtr(ptr32))
guard_false(i33, descr=<Guard6>) [i16, p6]
+521: p34 = getarrayitem_gc(p22, i23, descr=<ArrayP 8>)
+526: i36 = int_sub(i27, 2)
+530: i38 = int_lt(i36, 0)
guard_true(i38, descr=<Guard7>) [i36, i16, p19, p22, p34, p6]
+540: i39 = arraylen_gc(p22, descr=<ArrayP 8>)
+544: i40 = int_add(i36, i39)
+547: p41 = getarrayitem_gc(p22, i40, descr=<ArrayP 8>)
+552: guard_value(i16, 2, descr=<Guard8>) [i16, p19, p41, p34, p6]
+562: guard_value(p6, ConstPtr(ptr43), descr=<Guard9>) [p19, p41, p34, p6]
debug_merge_point(0, 0, '2 LOAD_ARG')
+581: p45 = call(ConstClass(W_Array.getNthInterp), p19, 1, descr=<Callr 8 ri EF=0>)
+616: setfield_gc(ConstPtr(ptr3), 4, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
+633: i48 = int_lt(i27, 0)
guard_false(i48, descr=<Guard10>) [i27, p22, p45]
setarrayitem_gc(p22, i27, p45, descr=<ArrayP 8>)
+705: i50 = int_add(i27, 1)
+709: p51 = getarrayitem_gc(p22, i27, descr=<ArrayP 8>)
+714: i53 = int_sub(i50, 2)
+718: setfield_gc(ConstPtr(ptr3), i50, descr=<FieldS system.interpreter.Interpreter.inst__sp 40>)
+731: i55 = int_lt(i53, 0)
guard_false(i55, descr=<Guard11>) [i53, p19, p22, p51]
+741: p57 = getarrayitem_gc(p22, 0, descr=<ArrayP 8>)
debug_merge_point(0, 0, '4 IS_EQ')
+745: p59 = getarrayitem_gc(p22, 1, descr=<ArrayP 8>)
+749: i60 = getfield_gc_pure(p59, descr=<FieldS system.objspace.W_Int.inst_int_value 32>)
+753: i61 = getfield_gc_pure(p57, descr=<FieldS system.objspace.W_Int.inst_int_value 32>)
+757: setfield_gc(ConstPtr(ptr3), 5, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
+774: setfield_gc(ConstPtr(ptr3), 0, descr=<FieldS system.interpreter.Interpreter.inst__sp 40>)
+791: setarrayitem_gc(p22, 1, ConstPtr(ptr64), descr=<ArrayP 8>)
+799: setarrayitem_gc(p22, 0, ConstPtr(ptr65), descr=<ArrayP 8>)
+807: i66 = int_eq(i60, i61)
guard_false(i66, descr=<Guard12>) []
+816: i68 = int_add(-1, i39)
+826: p69 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
debug_merge_point(0, 0, '5 JUMP_IF_FALSE')
+826: i71 = getfield_gc(ConstPtr(ptr70), descr=<FieldU system.objspace.W_Bool.inst_bool_value 32>)
+835: setfield_gc(ConstPtr(ptr3), 7, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
+852: guard_false(i71, descr=<Guard13>) []
+861: p73 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
+861: i75 = int_add(-2, i39)
+871: p76 = getarrayitem_gc(p22, i75, descr=<ArrayP 8>)
debug_merge_point(0, 0, '11 LOAD_CONST')
+871: p77 = getfield_gc(ConstPtr(ptr43), descr=<FieldP system.objspace.Object.inst__consts 24>)
+884: p80 = call(ConstClass(W_Array.getNthInterp), p77, 0, descr=<Callr 8 ri EF=0>)
+908: p81 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
debug_merge_point(0, 0, '13 LOAD_ARG')
setarrayitem_gc(p22, 0, p80, descr=<ArrayP 8>)
+947: p84 = call(ConstClass(W_Array.getNthInterp), p19, 0, descr=<Callr 8 ri EF=0>)
debug_merge_point(0, 0, '15 BINARY_ADD')
+975: i85 = getfield_gc_pure(p84, descr=<FieldS system.objspace.W_Int.inst_int_value 32>)
+979: i86 = getfield_gc_pure(p80, descr=<FieldS system.objspace.W_Int.inst_int_value 32>)
+990: i87 = int_add(i85, i86)
+993: p88 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
debug_merge_point(0, 0, '16 LOAD_ARG')
debug_merge_point(0, 0, '18 CUR_FUNC')
debug_merge_point(0, 0, '19 TAIL_CALL')
+993: p90 = call(ConstClass(W_InternalList.getNext), p4, descr=<Callr 8 r EF=0>)
+1023: p92 = call(ConstClass(W_InternalList.getNext), p17, descr=<Callr 8 r EF=0>)
p94 = new_with_vtable(9593848)
+1116: setfield_gc(p94, ConstPtr(ptr43), descr=<FieldP system.objspace.W_InternalList.inst__w_head 32>)
+1130: p96 = call(ConstClass(W_InternalList.getFirst), p94, descr=<Callr 8 r EF=0>)
setfield_gc(ConstPtr(ptr3), p92, descr=<FieldP system.interpreter.Interpreter.inst__arg_stack 8>)
+1210: setfield_gc(ConstPtr(ptr3), 2, descr=<FieldS system.interpreter.Interpreter.inst__sp 40>)
p99 = new_with_vtable(9593640)
+1297: setfield_gc(p99, i87, descr=<FieldS system.objspace.W_Int.inst_int_value 32>)
setarrayitem_gc(p22, 0, p99, descr=<ArrayP 8>)
setarrayitem_gc(p22, 1, p45, descr=<ArrayP 8>)
+1386: setarrayitem_gc(p22, 2, ConstPtr(ptr102), descr=<ArrayP 8>)
+1394: call(ConstClass(Interpreter.push_arg_stack), ConstPtr(ptr3), p96, 2, descr=<Callv 0 rri EF=4>)
+1428: setfield_gc(ConstPtr(ptr3), 0, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
setfield_gc(ConstPtr(ptr3), p94, descr=<FieldP system.interpreter.Interpreter.inst__call_stack 16>)
setfield_gc(p94, p90, descr=<FieldP system.objspace.W_InternalList.inst__w_tail 40>)
+1537: guard_no_exception(, descr=<Guard14>) []
+1552: p106 = getfield_gc(ConstPtr(ptr3), descr=<FieldP system.interpreter.Interpreter.inst__arg_stack 8>)
+1565: i108 = instance_ptr_eq(p106, ConstPtr(ptr107))
guard_false(i108, descr=<Guard15>) []
+1578: p110 = call(ConstClass(W_InternalList.getFirst), p106, descr=<Callr 8 r EF=0>)
+1597: i111 = getfield_gc(ConstPtr(ptr3), descr=<FieldS system.interpreter.Interpreter.inst__sp 40>)
+1610: i113 = int_sub(i111, 1)
+1614: i115 = int_lt(i113, 0)
guard_true(i115, descr=<Guard16>) [i113, p22]
+1624: i116 = int_add(i113, i39)
+1627: p117 = getarrayitem_gc(p22, i116, descr=<ArrayP 8>)
+1627: i119 = int_sub(i111, 2)
+1631: i121 = int_lt(i119, 0)
guard_true(i121, descr=<Guard17>) [i119, p22]
+1641: i122 = int_add(i119, i39)
+1644: p123 = getarrayitem_gc(p22, i122, descr=<ArrayP 8>)
+1644: p124 = getfield_gc(p96, descr=<FieldP system.objspace.Object.inst__bcode 16>)
+1656: i125 = strlen(p124)
+1660: guard_value(i125, 21, descr=<Guard18>) [i125]
+1670: p127 = getarrayitem_gc(p22, i116, descr=<ArrayP 8>)
+1682: p128 = getarrayitem_gc(p22, i122, descr=<ArrayP 8>)
+1687: guard_value(p96, ConstPtr(ptr129), descr=<Guard19>) [p110, p128, p127, p96]
debug_merge_point(0, 0, '0 LOAD_ARG')
+1706: p130 = same_as(p110)
+1709: label(p127, p128, p110, p130, i111, p22, i68, i75, i86, p94, p106, i39, descr=TargetToken(140251232256120))
debug_merge_point(0, 0, '0 LOAD_ARG')
+1774: p132 = call(ConstClass(W_Array.getNthInterp), p130, 0, descr=<Callr 8 ri EF=0>)
+1805: setfield_gc(ConstPtr(ptr3), 2, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
+1822: i134 = int_lt(i111, 0)
guard_false(i134, descr=<Guard20>) [i111, p22, p132]
+1836: p135 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
debug_merge_point(0, 0, '2 LOAD_ARG')
setarrayitem_gc(p22, 0, p132, descr=<ArrayP 8>)
+1878: p137 = call(ConstClass(W_Array.getNthInterp), p130, 1, descr=<Callr 8 ri EF=0>)
debug_merge_point(0, 0, '4 IS_EQ')
+1902: i138 = getfield_gc_pure(p137, descr=<FieldS system.objspace.W_Int.inst_int_value 32>)
+1906: i139 = getfield_gc_pure(p132, descr=<FieldS system.objspace.W_Int.inst_int_value 32>)
+1917: setfield_gc(ConstPtr(ptr3), 5, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
+1934: setarrayitem_gc(p22, 0, ConstPtr(ptr65), descr=<ArrayP 8>)
+1949: setarrayitem_gc(p22, 1, ConstPtr(ptr64), descr=<ArrayP 8>)
+1957: i142 = int_eq(i138, i139)
guard_false(i142, descr=<Guard21>) []
+1966: p143 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
debug_merge_point(0, 0, '5 JUMP_IF_FALSE')
+1966: p144 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
+1966: p145 = getarrayitem_gc(p22, i75, descr=<ArrayP 8>)
debug_merge_point(0, 0, '11 LOAD_CONST')
+1966: p146 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
debug_merge_point(0, 0, '13 LOAD_ARG')
debug_merge_point(0, 0, '15 BINARY_ADD')
+1966: i147 = int_add(i139, i86)
+1973: p148 = getarrayitem_gc(p22, i68, descr=<ArrayP 8>)
debug_merge_point(0, 0, '16 LOAD_ARG')
debug_merge_point(0, 0, '18 CUR_FUNC')
debug_merge_point(0, 0, '19 TAIL_CALL')
+1973: p149 = call(ConstClass(W_InternalList.getNext), p94, descr=<Callr 8 r EF=0>)
+2003: p150 = call(ConstClass(W_InternalList.getNext), p106, descr=<Callr 8 r EF=0>)
p151 = new_with_vtable(9593848)
+2096: setfield_gc(p151, ConstPtr(ptr43), descr=<FieldP system.objspace.W_InternalList.inst__w_head 32>)
+2110: p152 = call(ConstClass(W_InternalList.getFirst), p151, descr=<Callr 8 r EF=0>)
setfield_gc(ConstPtr(ptr3), p150, descr=<FieldP system.interpreter.Interpreter.inst__arg_stack 8>)
+2190: setfield_gc(ConstPtr(ptr3), 2, descr=<FieldS system.interpreter.Interpreter.inst__sp 40>)
p154 = new_with_vtable(9593640)
+2277: setfield_gc(p154, i147, descr=<FieldS system.objspace.W_Int.inst_int_value 32>)
setarrayitem_gc(p22, 0, p154, descr=<ArrayP 8>)
setarrayitem_gc(p22, 1, p137, descr=<ArrayP 8>)
+2366: setarrayitem_gc(p22, 2, ConstPtr(ptr102), descr=<ArrayP 8>)
+2374: call(ConstClass(Interpreter.push_arg_stack), ConstPtr(ptr3), p152, 2, descr=<Callv 0 rri EF=4>)
+2408: setfield_gc(ConstPtr(ptr3), 0, descr=<FieldS system.interpreter.Interpreter.inst__ip 24>)
setfield_gc(ConstPtr(ptr3), p151, descr=<FieldP system.interpreter.Interpreter.inst__call_stack 16>)
setfield_gc(p151, p149, descr=<FieldP system.objspace.W_InternalList.inst__w_tail 40>)
+2517: guard_no_exception(, descr=<Guard22>) []
+2532: p156 = getfield_gc(ConstPtr(ptr3), descr=<FieldP system.interpreter.Interpreter.inst__arg_stack 8>)
+2545: i157 = instance_ptr_eq(p156, ConstPtr(ptr107))
guard_false(i157, descr=<Guard23>) []
+2558: p158 = call(ConstClass(W_InternalList.getFirst), p156, descr=<Callr 8 r EF=0>)
+2577: i159 = getfield_gc(ConstPtr(ptr3), descr=<FieldS system.interpreter.Interpreter.inst__sp 40>)
+2590: i160 = int_sub(i159, 1)
+2594: i161 = int_lt(i160, 0)
guard_true(i161, descr=<Guard24>) [i160, p22]
+2604: i162 = int_add(i160, i39)
+2607: p163 = getarrayitem_gc(p22, i162, descr=<ArrayP 8>)
+2607: i164 = int_sub(i159, 2)
+2611: i165 = int_lt(i164, 0)
guard_true(i165, descr=<Guard25>) [i164, p22]
+2621: i166 = int_add(i164, i39)
+2624: p167 = getarrayitem_gc(p22, i166, descr=<ArrayP 8>)
+2624: p168 = getfield_gc(p152, descr=<FieldP system.objspace.Object.inst__bcode 16>)
+2635: i169 = strlen(p168)
+2639: guard_value(i169, 21, descr=<Guard26>) [i169]
+2649: p170 = getarrayitem_gc(p22, i162, descr=<ArrayP 8>)
+2661: p171 = getarrayitem_gc(p22, i166, descr=<ArrayP 8>)
+2666: guard_value(p152, ConstPtr(ptr129), descr=<Guard27>) [p158, p171, p170, p152]
debug_merge_point(0, 0, '0 LOAD_ARG')
+2685: jump(p170, p171, p158, p158, i159, p22, i68, i75, i86, p151, p156, i39, descr=TargetToken(140251232256120))
+2745: --end of the loop--
[13235a6ba754] jit-log-opt-loop}
[13235c2f5b74] {jit-backend-counts
entry 0:1
TargetToken(140251232256032):1
TargetToken(140251232256120):98939
[13235c2ff751] jit-backend-counts}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment