Skip to content

Instantly share code, notes, and snippets.

@cderici
Created June 17, 2020 19:13
Show Gist options
  • Save cderici/073cbf221a814a94f4a40d6c80a04c3f to your computer and use it in GitHub Desktop.
Save cderici/073cbf221a814a94f4a40d6c80a04c3f to your computer and use it in GitHub Desktop.
[eb5a6264fdb] {jit-log-opt-loop
# Loop 1 ((if (pair? lst_10) (let ([e_3 (unsafe-car lst_10)][rest_1 (unsafe-cdr lst_10)][s_19 s_17]) (let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18)))) s_17) from (for-loop_1 s_18 rest_1)) : loop with 60 ops
[p0, p1]
+328: label(p0, p1, descr=TargetToken(94690681446080))
debug_merge_point(0, 0, '(if (pair? lst_10) (let ([e_3 (unsafe-car lst_10)][rest_1 (unsafe-cdr lst_10)][s_19 s_17]) (let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18)))) s_17) from (for-loop_1 s_18 rest_1)')
+349: guard_class(p0, 94690621386392, descr=<Guard0x561ee46da7a0>) [p1, p0]
+368: p3 = getfield_gc_r(p0, descr=<FieldP rpython.tool.pairtype.ConsEnvSize2.inst__vals_1 24 pure>)
+372: guard_nonnull_class(p3, ConstClass(W_WrappedConsProper), descr=<Guard0x561ee46da800>) [p1, p0]
debug_merge_point(0, 0, '(let ([e_3 (unsafe-car lst_10)][rest_1 (unsafe-cdr lst_10)][s_19 s_17]) (let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18))))')
+390: guard_class(p1, 94690621407184, descr=<Guard0x561ee47016e8>) [p1, p0]
+409: p6 = getfield_gc_r(p1, descr=<FieldP pycket.cont.BaseCont.inst_marks 8>)
+413: guard_nonnull_class(p6, ConstClass(ForwardLink), descr=<Guard0x561ee46da860>) [p1, p0]
debug_merge_point(0, 0, '(unsafe-car lst_10)')
+433: p8 = getfield_gc_r(p3, descr=<FieldP pycket.values.W_WrappedCons.inst__car 8 pure>)
+437: guard_nonnull_class(p8, ConstClass(W_Symbol), descr=<Guard0x561ee46da8c0>) [p1, p0]
debug_merge_point(0, 0, '(unsafe-cdr lst_10)')
+455: p10 = getfield_gc_r(p3, descr=<FieldP pycket.values.W_WrappedCons.inst__cdr 16 pure>)
+459: guard_nonnull_class(p10, ConstClass(W_WrappedConsProper), descr=<Guard0x561ee46da920>) [p1, p0]
+479: p12 = getfield_gc_r(p0, descr=<FieldP pycket.env.ConsEnv.inst__prev 8 pure>)
debug_merge_point(0, 0, 's_17')
+483: p13 = getfield_gc_r(p0, descr=<FieldP rpython.tool.pairtype.ConsEnvSize2.inst__vals_0 16 pure>)
+487: guard_nonnull_class(p13, ConstClass(W_EqImmutableHashTable), descr=<Guard0x561ee46da980>) [p1, p0]
+505: guard_not_invalidated(descr=<Guard0x561ee4701730>) [p1, p0]
debug_merge_point(0, 0, '(let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18)))')
debug_merge_point(0, 0, '(hash-set s_19 e_3 #t)')
+512: p17 = call_r(ConstClass(W_EqImmutableHashTable.assoc), p13, p8, ConstPtr(ptr16), descr=<Callr 8 rrr EF=5>)
+609: guard_no_exception(descr=<Guard0x561ee46da9e0>) [p17, p13, p10, p8, p12, p1, p6]
+623: guard_class(p17, ConstClass(W_EqImmutableHashTable), descr=<Guard0x561ee4701778>) [p17, p13, p10, p8, p12, p1, p6]
debug_merge_point(0, 0, '(let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18))')
debug_merge_point(0, 0, '(values s_20)')
debug_merge_point(0, 0, '(if (not #f) (for-loop_1 s_18 rest_1) s_18)')
debug_merge_point(0, 0, '(for-loop_1 s_18 rest_1)')
+635: guard_class(p12, 94690621385992, descr=<Guard0x561ee47017c0>) [p17, p13, p10, p8, p12, p1, p6]
+654: p20 = getfield_gc_r(p12, descr=<FieldP rpython.tool.pairtype.ConsEnvSize1.inst__vals_0 16 pure>)
+658: guard_nonnull_class(p20, 94690621392464, descr=<Guard0x561ee46daa40>) [p17, p13, p10, p8, p12, p1, p6]
+678: p22 = getfield_gc_r(p20, descr=<FieldP pycket.values.W_Closure.inst_caselam 8 pure>)
+690: guard_value(p22, ConstPtr(ptr23), descr=<Guard0x561ee4701808>) [p17, p13, p10, p8, p12, p1, p6]
+699: p24 = getfield_gc_r(p20, descr=<FieldP rpython.tool.pairtype.W_ClosureSize1.inst__envs_0 16 pure>)
+704: i25 = instance_ptr_eq(p12, p24)
+707: guard_true(i25, descr=<Guard0x561ee4701850>) [p17, p13, p10, p8, p12, p1, p6]
debug_merge_point(0, 0, '(if (pair? lst_10) (let ([e_3 (unsafe-car lst_10)][rest_1 (unsafe-cdr lst_10)][s_19 s_17]) (let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18)))) s_17) from (for-loop_1 s_18 rest_1)')
+713: label(p12, p17, p10, p1, p6, p20, descr=TargetToken(94690681446160))
debug_merge_point(0, 0, '(if (pair? lst_10) (let ([e_3 (unsafe-car lst_10)][rest_1 (unsafe-cdr lst_10)][s_19 s_17]) (let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18)))) s_17) from (for-loop_1 s_18 rest_1)')
debug_merge_point(0, 0, '(let ([e_3 (unsafe-car lst_10)][rest_1 (unsafe-cdr lst_10)][s_19 s_17]) (let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18))))')
debug_merge_point(0, 0, '(unsafe-car lst_10)')
+733: p26 = getfield_gc_r(p10, descr=<FieldP pycket.values.W_WrappedCons.inst__car 8 pure>)
+744: guard_nonnull_class(p26, ConstClass(W_Symbol), descr=<Guard0x561ee46daaa0>) [p26, p10, p17, p12, p1, p6]
debug_merge_point(0, 0, '(unsafe-cdr lst_10)')
+762: p28 = getfield_gc_r(p10, descr=<FieldP pycket.values.W_WrappedCons.inst__cdr 16 pure>)
+766: guard_nonnull_class(p28, ConstClass(W_WrappedConsProper), descr=<Guard0x561ee46dab00>) [p26, p10, p17, p12, p1, p6]
debug_merge_point(0, 0, 's_17')
+786: guard_not_invalidated(descr=<Guard0x561ee4701898>) [p26, p10, p17, p12, p1, p6]
debug_merge_point(0, 0, '(let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18)))')
debug_merge_point(0, 0, '(hash-set s_19 e_3 #t)')
+793: p32 = call_r(ConstClass(W_EqImmutableHashTable.assoc), p17, p26, ConstPtr(ptr31), descr=<Callr 8 rrr EF=5>)
+879: guard_no_exception(descr=<Guard0x561ee46dab60>) [p32, p28, p26, None, p17, p12, p1, p6]
+893: guard_class(p32, ConstClass(W_EqImmutableHashTable), descr=<Guard0x561ee47018e0>) [p32, p28, p26, None, p17, p12, p1, p6]
debug_merge_point(0, 0, '(let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18))')
debug_merge_point(0, 0, '(values s_20)')
debug_merge_point(0, 0, '(if (not #f) (for-loop_1 s_18 rest_1) s_18)')
debug_merge_point(0, 0, '(for-loop_1 s_18 rest_1)')
debug_merge_point(0, 0, '(if (pair? lst_10) (let ([e_3 (unsafe-car lst_10)][rest_1 (unsafe-cdr lst_10)][s_19 s_17]) (let ([s_20 (hash-set s_19 e_3 #t)]) (let ([s_18 (values s_20)]) (if (not #f) (for-loop_1 s_18 rest_1) s_18)))) s_17) from (for-loop_1 s_18 rest_1)')
+905: jump(p12, p32, p28, p1, p6, p20, descr=TargetToken(94690681446160))
+928: --end of the loop--
[eb5a62b347d] jit-log-opt-loop}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment