Skip to content

Instantly share code, notes, and snippets.

@krono
Created April 27, 2015 18:11
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 krono/18131648ba6dd7d7184c to your computer and use it in GitHub Desktop.
Save krono/18131648ba6dd7d7184c to your computer and use it in GitHub Desktop.
Pypylog first 200 lines
[b57859139b7] {jit-log-opt-loop
# Loop 0 ((jitdriver: get_printable_location disabled, no debug_print)) : entry bridge with 65 ops
[p0]
+61: p1 = getfield_gc(p0, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.inst__w_self 52>)
+70: i2 = getfield_gc(p0, descr=<FieldS spyvm.storage_contexts.ContextPartShadow.inst__w_self_size 56>)
+73: p3 = getfield_gc(p0, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.inst__s_sender 28>)
+76: i4 = getfield_gc(p0, descr=<FieldS spyvm.storage_contexts.ContextPartShadow.inst__pc 24>)
+79: i5 = getfield_gc(p0, descr=<FieldS spyvm.storage_contexts.ContextPartShadow.inst__stack_ptr 32>)
+82: p6 = getfield_gc(p0, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.inst_state 68>)
+85: p7 = getfield_gc(p0, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.inst__w_home 40>)
+106: i8 = getfield_gc(p0, descr=<FieldS spyvm.storage_contexts.ContextPartShadow.inst__initialip 20>)
+115: i9 = getfield_gc(p0, descr=<FieldS spyvm.storage_contexts.ContextPartShadow.inst__eargc 16>)
+124: p10 = getfield_gc(p0, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.inst_closure 60>)
+127: p11 = getfield_gc(p0, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.inst__w_receiver 48>)
+148: p12 = getfield_gc(p0, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.inst__w_method 44>)
+157: i13 = getfield_gc(p0, descr=<FieldU spyvm.storage_contexts.ContextPartShadow.inst__is_BlockClosure_ensure 72>)
+161: p14 = getfield_gc(p0, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.inst__temps_and_stack 36>)
+182: p16 = getarrayitem_gc(p14, 0, descr=<ArrayP 4>)
+185: p18 = getarrayitem_gc(p14, 1, descr=<ArrayP 4>)
+194: p20 = getarrayitem_gc(p14, 2, descr=<ArrayP 4>)
+203: p22 = getarrayitem_gc(p14, 3, descr=<ArrayP 4>)
+212: p24 = getarrayitem_gc(p14, 4, descr=<ArrayP 4>)
+221: p26 = getarrayitem_gc(p14, 5, descr=<ArrayP 4>)
+230: p28 = getarrayitem_gc(p14, 6, descr=<ArrayP 4>)
+239: p30 = getarrayitem_gc(p14, 7, descr=<ArrayP 4>)
+248: p32 = getarrayitem_gc(p14, 8, descr=<ArrayP 4>)
+257: p34 = getarrayitem_gc(p14, 9, descr=<ArrayP 4>)
+266: p36 = getarrayitem_gc(p14, 10, descr=<ArrayP 4>)
+275: p38 = getarrayitem_gc(p14, 11, descr=<ArrayP 4>)
+284: p40 = getarrayitem_gc(p14, 12, descr=<ArrayP 4>)
+293: p42 = getarrayitem_gc(p14, 13, descr=<ArrayP 4>)
+302: p44 = getarrayitem_gc(p14, 14, descr=<ArrayP 4>)
+311: p46 = getarrayitem_gc(p14, 15, descr=<ArrayP 4>)
+320: p48 = getarrayitem_gc(p14, 16, descr=<ArrayP 4>)
+329: p50 = getarrayitem_gc(p14, 17, descr=<ArrayP 4>)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [9]: <0x15>pushTemporaryVariableBytecode(5)')
+338: guard_value(i4, 9, descr=<Guard0x12b1c3a0>) [p0, i4, p1, i2, p3, i5, p6, p7, i8, i9, p10, p11, p12, i13, p16, p18, p20, p22, p24, p26, p28, p30, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
+347: i52 = getfield_gc_pure(p0, descr=<FieldU spyvm.storage_contexts.ContextPartShadow.inst_is_block_context 73>)
+357: guard_false(i52, descr=<Guard0x12b1c5e0>) [p0, p1, i2, p3, i5, p6, p7, i8, i9, p10, p11, p12, i13, p16, p18, p20, p22, p24, p26, p28, p30, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
+365: p53 = getfield_gc_pure(p12, descr=<FieldP spyvm.model.W_CompiledMethod.inst_version 56>)
+368: guard_value(p12, ConstPtr(ptr54), descr=<Guard0x12b1c5b0>) [p0, p53, p12, p1, i2, p3, i5, p6, p7, i8, i9, p10, p11, i13, p16, p18, p20, p22, p24, p26, p28, p30, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
+380: guard_value(p53, ConstPtr(ptr55), descr=<Guard0x12b1c580>) [p0, p53, p1, i2, p3, i5, p6, p7, i8, i9, p10, p11, i13, p16, p18, p20, p22, p24, p26, p28, p30, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
+392: guard_value(i5, 6, descr=<Guard0x12b1c550>) [p0, i5, p26, p1, i2, p3, p6, p7, i8, i9, p10, p11, i13, p16, p18, p20, p22, p24, p28, p30, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [10]: <0x12>pushTemporaryVariableBytecode(2)')
+401: guard_not_invalidated(descr=<Guard0x12b1c520>) [p0, p1, i2, p3, p6, p7, i8, i9, p10, p11, i13, p16, p18, p20, p22, p24, p26, p30, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [11]: <0xb4>bytecodePrimLessOrEqual')
+401: guard_class(p26, ConstClass(W_SmallInteger), descr=<Guard0x12b1c4f0>) [p0, p26, p1, i2, p3, p6, p7, i8, i9, p10, p11, i13, p16, p18, p20, p22, p24, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
+420: i58 = getfield_gc_pure(p26, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>)
+423: guard_class(p20, ConstClass(W_SmallInteger), descr=<Guard0x12b1c4c0>) [p0, i58, p20, p1, i2, p3, p6, p7, i8, i9, p10, p11, i13, p16, p18, p22, p24, p26, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
+442: i60 = getfield_gc_pure(p20, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>)
+445: i61 = int_le(i58, i60)
guard_false(i61, descr=<Guard0x12b1c490>) [p0, p1, i2, p3, p6, p7, i8, i9, p10, p11, i13, p16, p18, p20, p22, p24, p26, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [12]: <0xac>longJumpIfFalseBytecode(0)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [51]: <0x13>pushTemporaryVariableBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [52]: <0x7c>returnTopFromMethodBytecode')
+453: guard_isnull(p10, descr=<Guard0x12b1c460>) [p0, p10, p22, p1, i2, p3, p6, p7, i8, i9, p11, i13, p16, p18, p20, p24, p26, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
+467: i63 = instance_ptr_eq(p6, ConstPtr(ptr62))
guard_false(i63, descr=<Guard0x12b1c430>) [p0, p22, p1, i2, p3, p6, p7, i8, i9, p11, i13, p16, p18, p20, p24, p26, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50]
+483: leave_portal_frame(0)
+483: p65 = force_token()
p67 = new_with_vtable(ConstClass(Return))
+551: setfield_gc(p0, p65, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.vable_token 12>)
+554: setfield_gc(p67, p22, descr=<FieldP spyvm.interpreter.Return.inst_value 12>)
+563: setfield_gc(p67, ConstPtr(null), descr=<FieldP spyvm.interpreter.Return.inst_s_target_context 8>)
+570: setfield_gc(p67, 0, descr=<FieldU spyvm.interpreter.Return.inst_arrived_at_target 16>)
+574: setfield_gc(p67, 1, descr=<FieldU spyvm.interpreter.Return.inst_is_local 17>)
+578: guard_not_forced_2(descr=<Guard0x12b1c400>) [p1, i2, p3, p6, p7, i8, i9, p11, i13, p16, p18, p20, p22, p24, p26, p32, p34, p36, p38, p40, p42, p44, p46, p48, p50, p0]
+591: finish(p67, descr=<ExitFrameWithExceptionDescrRef object at 0x3fa834>)
+656: --end of the loop--
[b578597822d] jit-log-opt-loop}
[b578605b3cb] {jit-log-opt-bridge
# bridge out of Guard 0x12b1c490 with 116 ops
[p0, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [12]: <0xac>longJumpIfFalseBytecode(0)')
+29: i27 = getfield_gc_pure(p0, descr=<FieldU spyvm.storage_contexts.ContextPartShadow.inst_is_block_context 73>)
+33: guard_false(i27, descr=<Guard0x12b1c8b0>) [p0, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+41: guard_not_invalidated(descr=<Guard0x12b1cd30>) [p0, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [14]: <0x13>pushTemporaryVariableBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [15]: <0x10>pushTemporaryVariableBytecode(0)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [16]: <0x15>pushTemporaryVariableBytecode(5)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [17]: <0xc0>bytecodePrimAt')
+41: p29 = getfield_gc(ConstPtr(ptr28), descr=<FieldP spyvm.model.W_PointersObject.inst_strategy 24>)
+47: guard_nonnull_class(p29, ConstClass(CachedObjectShadow), descr=<Guard0x12b1cd00>) [p0, p29, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+65: p32 = getfield_gc(ConstPtr(ptr31), descr=<FieldP spyvm.model.W_PointersObject.inst__storage 20>)
+71: p34 = getarrayitem_gc(p32, 32, descr=<ArrayP 4>)
+77: i35 = getfield_gc_pure(p0, descr=<FieldU spyvm.storage.AbstractStrategy.inst_space 8>)
+80: guard_class(p11, ConstClass(W_BytesObject), descr=<Guard0x12b1ccd0>) [p0, i35, p11, p34, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+105: p37 = getfield_gc_pure(p11, descr=<FieldP spyvm.model.W_AbstractObjectWithClassReference.inst_w_class 12>)
+114: p38 = getfield_gc(p37, descr=<FieldP spyvm.model.W_PointersObject.inst_strategy 24>)
+123: guard_value(p38, ConstPtr(ptr39), descr=<Guard0x12b1cca0>) [p0, p37, p38, p11, p34, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+135: guard_value(p34, ConstPtr(ptr40), descr=<Guard0x12b1cc70>) [p0, p11, p34, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+147: guard_class(p16, ConstClass(W_SmallInteger), descr=<Guard0x12b1cc40>) [p0, p11, p16, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p12, p13, p14, p15, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+160: i42 = getfield_gc_pure(p16, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>)
+163: i44 = int_sub(i42, 1)
+166: i45 = getfield_gc_pure(p11, descr=<FieldS spyvm.model.W_BytesObject.inst__size 20>)
+169: i46 = uint_lt(i44, i45)
guard_true(i46, descr=<Guard0x12b1cc10>) [p0, p11, i44, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+177: p47 = getfield_gc_pure(p11, descr=<FieldP spyvm.model.W_BytesObject.inst_bytes 24>)
+180: guard_nonnull(p47, descr=<Guard0x12b1cbe0>) [p0, p11, i44, p47, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+188: i49 = int_lt(i44, 0)
guard_false(i49, descr=<Guard0x12b1cbb0>) [p0, p11, i44, p47, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+197: i50 = getarrayitem_gc(p47, i44, descr=<ArrayU 1>)
+202: p52 = getfield_gc(ConstPtr(ptr51), descr=<FieldP spyvm.model.W_PointersObject.inst_strategy 24>)
+208: guard_class(p52, ConstClass(ListStrategy), descr=<Guard0x12b1cb80>) [p0, p11, i50, p52, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+221: p55 = getfield_gc(ConstPtr(ptr54), descr=<FieldP spyvm.model.W_PointersObject.inst__storage 20>)
+227: p56 = getarrayitem_gc(p55, i50, descr=<ArrayP 4>)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [18]: <0xd2>sendLiteralSelectorBytecode(2)')
+231: guard_class(p56, ConstClass(W_PointersObject), descr=<Guard0x12b1cb50>) [p0, i35, p56, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+244: p58 = getfield_gc_pure(p56, descr=<FieldP spyvm.model.W_AbstractObjectWithClassReference.inst_w_class 12>)
+247: p59 = getfield_gc(p58, descr=<FieldP spyvm.model.W_PointersObject.inst_strategy 24>)
+250: guard_value(p59, ConstPtr(ptr60), descr=<Guard0x12b1cb20>) [p0, p58, p59, p56, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+262: p61 = getfield_gc(p56, descr=<FieldP spyvm.model.W_PointersObject.inst_strategy 24>)
+265: guard_class(p61, 3734928, descr=<Guard0x12b1caf0>) [p0, p56, p61, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
+278: p63 = getfield_gc(p56, descr=<FieldP spyvm.model.W_PointersObject.inst__storage 20>)
+281: i65 = getarrayitem_gc(p63, 0, descr=<ArrayS 4>)
+284: i67 = int_eq(i65, 2147483647)
guard_false(i67, descr=<Guard0x12b1cac0>) [p0, p56, i65, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [19]: <0xb0>bytecodePrimAdd')
+296: guard_class(p14, ConstClass(W_SmallInteger), descr=<Guard0x12b1ca90>) [p0, p14, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26, i65]
+315: i69 = getfield_gc_pure(p14, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>)
+318: i70 = int_add_ovf(i69, i65)
guard_no_overflow(descr=<Guard0x12b1ca60>) [p0, i70, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p18, p19, p20, p21, p22, p23, p24, p25, p26, i65]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [20]: <0x6b>storeAndPopTemporaryVariableBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [21]: <0x13>pushTemporaryVariableBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [22]: <0x23>pushLiteralConstantBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [23]: <0xbe>bytecodePrimBitAnd')
+326: i72 = int_and(i70, 16383)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [24]: <0x6c>storeAndPopTemporaryVariableBytecode(4)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [25]: <0x24>pushLiteralConstantBytecode(4)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [26]: <0x14>pushTemporaryVariableBytecode(4)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [27]: <0xb8>bytecodePrimMultiply')
+334: i74 = int_mul(9741, i72)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [28]: <0x24>pushLiteralConstantBytecode(4)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [29]: <0x13>pushTemporaryVariableBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [30]: <0x25>pushLiteralConstantBytecode(5)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [31]: <0xbc>bytecodePrimBitShift')
+342: i76 = int_rshift(i70, 14)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [32]: <0xb8>bytecodePrimMultiply')
+345: i78 = int_mul(9741, i76)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [33]: <0x26>pushLiteralConstantBytecode(6)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [34]: <0x14>pushTemporaryVariableBytecode(4)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [35]: <0xb8>bytecodePrimMultiply')
+351: i80 = int_mul(101, i72)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [36]: <0xb0>bytecodePrimAdd')
+359: i81 = int_add(i78, i80)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [37]: <0x23>pushLiteralConstantBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [38]: <0xbe>bytecodePrimBitAnd')
+361: i83 = int_and(i81, 16383)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [39]: <0x27>pushLiteralConstantBytecode(7)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [40]: <0xb8>bytecodePrimMultiply')
+367: i85 = int_lshift(i83, 14)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [41]: <0xb0>bytecodePrimAdd')
+370: i86 = int_add(i74, i85)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [42]: <0x21>pushLiteralConstantBytecode(1)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [43]: <0xbe>bytecodePrimBitAnd')
+372: i88 = int_and(i86, 268435455)
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [44]: <0x6b>storeAndPopTemporaryVariableBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [45]: <0x15>pushTemporaryVariableBytecode(5)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [46]: <0x76>pushConstantOneBytecode')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [47]: <0xb0>bytecodePrimAdd')
+378: i90 = int_add_ovf(i42, 1)
guard_no_overflow(descr=<Guard0x12b1ca30>) [p0, i90, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p16, p19, p20, p21, p22, p23, p24, p25, p26, i72, i88, None]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [48]: <0x6d>storeAndPopTemporaryVariableBytecode(5)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [49]: <0xa3>longUnconditionalJumpBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [9]: <0x15>pushTemporaryVariableBytecode(5)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [10]: <0x12>pushTemporaryVariableBytecode(2)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [11]: <0xb4>bytecodePrimLessOrEqual')
+387: guard_class(p13, ConstClass(W_SmallInteger), descr=<Guard0x12b1ca00>) [p0, i90, p13, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p19, p20, p21, p22, p23, p24, p25, p26, i72, i88, None]
+406: i93 = getfield_gc_pure(p13, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>)
+409: i94 = int_le(i90, i93)
guard_false(i94, descr=<Guard0x12b1c9d0>) [p0, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p19, p20, p21, p22, p23, p24, p25, p26, i90, i72, i88, None]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [12]: <0xac>longJumpIfFalseBytecode(0)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [51]: <0x13>pushTemporaryVariableBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [52]: <0x7c>returnTopFromMethodBytecode')
+417: guard_isnull(p8, descr=<Guard0x12b1c9a0>) [p0, p8, p1, i2, p3, p4, p5, i6, i7, p9, i10, p11, p12, p13, p19, p20, p21, p22, p23, p24, p25, p26, i90, i72, i88, None]
+431: i96 = instance_ptr_eq(p4, ConstPtr(ptr95))
guard_false(i96, descr=<Guard0x12b1c970>) [p0, p1, i2, p3, p4, p5, i6, i7, p9, i10, p11, p12, p13, p19, p20, p21, p22, p23, p24, p25, p26, i90, i72, i88, None]
+447: leave_portal_frame(0)
+447: p98 = force_token()
p100 = new_with_vtable(ConstClass(Return))
p102 = new_with_vtable(ConstClass(W_SmallInteger))
+543: setfield_gc(p0, p98, descr=<FieldP spyvm.storage_contexts.ContextPartShadow.vable_token 12>)
+546: setfield_gc(p102, i88, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>)
+555: setfield_gc(p100, p102, descr=<FieldP spyvm.interpreter.Return.inst_value 12>)
+564: setfield_gc(p100, ConstPtr(null), descr=<FieldP spyvm.interpreter.Return.inst_s_target_context 8>)
+571: setfield_gc(p100, 0, descr=<FieldU spyvm.interpreter.Return.inst_arrived_at_target 16>)
+575: setfield_gc(p100, 1, descr=<FieldU spyvm.interpreter.Return.inst_is_local 17>)
+579: guard_not_forced_2(descr=<Guard0x12b1c910>) [p1, i2, p3, p4, p5, i6, i7, p9, i10, p11, p12, p13, p102, p19, p20, p21, p22, p23, p24, p25, p26, p0, i90, i72]
+604: finish(p100, descr=<ExitFrameWithExceptionDescrRef object at 0x3fa834>)
+656: --end of the loop--
[b57860c2111] jit-log-opt-bridge}
[b5786841ca4] {jit-log-opt-bridge
# bridge out of Guard 0x12b1c9d0 with 112 ops
[p0, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, i22, i23, i24]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [12]: <0xac>longJumpIfFalseBytecode(0)')
+29: i25 = getfield_gc_pure(p0, descr=<FieldU spyvm.storage_contexts.ContextPartShadow.inst_is_block_context 73>)
+39: guard_false(i25, descr=<Guard0x15c070a0>) [p0, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, i22, i23, i24]
+47: guard_not_invalidated(descr=<Guard0x15c074c0>) [p0, p1, i2, p3, p4, p5, i6, i7, p8, p9, i10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, i22, i23, i24]
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [14]: <0x13>pushTemporaryVariableBytecode(3)')
debug_merge_point(0, 0, '(ByteString class >> #stringHash:initialHash:) [15]: <0x10>pushTemporaryVariableBytecode(0)')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment