Skip to content

Instantly share code, notes, and snippets.

@MasterDuke17
Last active March 3, 2019 21:07
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 MasterDuke17/4ebde5d21d5121f3e436ec17dfd3b3d6 to your computer and use it in GitHub Desktop.
Save MasterDuke17/4ebde5d21d5121f3e436ec17dfd3b3d6 to your computer and use it in GitHub Desktop.
Specialization of 'pull-one' (cuid: 1404)
Before:
Spesh of 'pull-one' (cuid: 1404, file: SETTING::src/core/Rakudo/Iterator.pm6:1881)
BB 0 (0x7f5cc0261328):
line: 1881 (pc 0)
Instructions:
no_op
Successors: 1
Predecessors:
Dominance children: 1
BB 1 (0x7f5cc02613b0):
line: 1881 (pc 0)
Instructions:
prof_enter
null r0(1)
null r1(1)
null r2(1)
null r3(1)
null r4(1)
null r5(1)
null r6(1)
null r7(1)
null r10(1)
null r11(1)
checkarity liti16(1), liti16(1)
param_rp_o r2(2), liti16(0)
prof_allocated r2(2)
hllize r5(2), r2(2)
Successors: 2
Predecessors: 0
Dominance children: 2
BB 2 (0x7f5cc0261410):
line: 1881 (pc 24)
Instructions:
set r2(3), r5(2)
[Annotation: INS Deopt One (idx 0 -> pc 36; line 1881)]
[Annotation: Logged (bytecode offset 30)]
decont r5(3), r2(3)
Successors: 3
Predecessors: 1
Dominance children: 3
BB 3 (0x7f5cc0261470):
line: 1881 (pc 36)
Instructions:
set r11(2), r5(3)
wval r5(4), liti16(0), liti16(6857) (P6opaque: Rakudo::Iterator::IntRange)
istype r8(1), r11(2), r5(4)
Successors: 4
Predecessors: 2
Dominance children: 4
BB 4 (0x7f5cc02614d0):
line: 1881 (pc 58)
Instructions:
assertparamcheck r8(1)
Successors: 5
Predecessors: 3
Dominance children: 5
BB 5 (0x7f5cc0261530):
line: 1881 (pc 62)
Instructions:
set r0(2), r11(2)
param_sn r3(2)
prof_allocated r3(2)
takedispatcher r4(2)
Successors: 6
Predecessors: 4
Dominance children: 6
BB 6 (0x7f5cc0261590):
line: 1882 (pc 80)
Instructions:
[Annotation: FH Start (0)]
wval r6(2), liti16(0), liti16(6857) (P6opaque: Rakudo::Iterator::IntRange)
wval r7(2), liti16(0), liti16(6857) (P6opaque: Rakudo::Iterator::IntRange)
getattr_i r8(2), r0(2), r7(2), lits($!i), liti16(0)
const_i64_16 r9(1), liti16(1)
add_i r9(2), r8(2), r9(1)
bindattr_i r0(2), r6(2), lits($!i), r9(2), liti16(0)
wval r6(3), liti16(0), liti16(6857) (P6opaque: Rakudo::Iterator::IntRange)
getattr_i r8(3), r0(2), r6(3), lits($!last), liti16(1)
le_i r8(4), r9(2), r8(3)
unless_i r8(4), BB(8)
Successors: 8, 7
Predecessors: 5
Dominance children: 7, 8, 9
BB 7 (0x7f5cc02615f0):
line: 1882 (pc 176)
Instructions:
wval r6(4), liti16(0), liti16(6857) (P6opaque: Rakudo::Iterator::IntRange)
getattr_i r9(3), r0(2), r6(4), lits($!i), liti16(0)
hllboxtype_i r10(2)
box_i r10(3), r9(3), r10(2)
prof_allocated r10(3)
set r7(3), r10(3)
goto BB(9)
Successors: 9
Predecessors: 6
Dominance children:
BB 8 (0x7f5cc0261650):
line: 1882 (pc 226)
Instructions:
wval r6(5), liti16(0), liti16(79) (P6opaque: Mu)
set r7(4), r6(5)
Successors: 9
Predecessors: 6
Dominance children:
BB 9 (0x7f5cc02616b0):
line: 1882 (pc 240)
Instructions:
PHI r10(4), r10(3), r10(1)
PHI r9(4), r9(3), r9(2)
PHI r7(5), r7(3), r7(4)
PHI r6(6), r6(4), r6(5)
set r5(5), r7(5)
[Annotation: INS Deopt One (idx 1 -> pc 246; line 1882)]
prepargs callsite(0x7f5cc99fd4e0, 1 arg, 1 pos, nonflattening, interned)
arg_o liti16(0), r5(5)
[Annotation: INS Deopt One (idx 2 -> pc 264; line 1882)]
[Annotation: Logged (bytecode offset 256)]
speshresolve r7(6), lits(decontrv)
Successors: 10, 12
Predecessors: 7, 8
Dominance children: 10, 12, 13
BB 10 (0x7f5cc0261710):
line: 1882 (pc 264)
Instructions:
[Annotation: INS Deopt One (idx 3 -> pc 264; line 1882)]
prepargs callsite(0x7f5cc99fd4e0, 1 arg, 1 pos, nonflattening, interned)
arg_o liti16(0), r5(5)
[Annotation: INS Deopt All (idx 5 -> pc 280; line 1882)]
[Annotation: INS Deopt One (idx 4 -> pc 280; line 1882)]
[Annotation: Logged (bytecode offset 274)]
invoke_o r7(7), r7(6)
Successors: 11, 12
Predecessors: 9
Dominance children: 11
BB 11 (0x7f5cc0261770):
line: 1882 (pc 280)
Instructions:
prof_allocated r7(7)
goto BB(13)
Successors: 13
Predecessors: 10
Dominance children:
BB 12 (0x7f5cc02617d0):
line: 1882 (pc 290)
Instructions:
PHI r7(8), r7(6), r7(7)
[Annotation: FH Goto (0)]
[Annotation: FH End (0)]
lastexpayload r5(6)
set r7(9), r5(6)
Successors: 13
Predecessors: 9, 10
Dominance children:
BB 13 (0x7f5cc0261830):
line: 1882 (pc 300)
Instructions:
PHI r7(10), r7(7), r7(9)
PHI r5(7), r5(5), r5(6)
prof_exit
return_o r7(10)
Successors:
Predecessors: 11, 12
Dominance children:
Frame size: 520 bytes
Inlining graph
Spesh of 'identity' (cuid: 158, file: gen/moar/BOOTSTRAP.nqp:3902)
BB 0 (0x7f5cc0282438):
line: 3902 (pc 0)
Instructions:
no_op
Successors: 1
Predecessors:
Dominance children: 1
BB 1 (0x7f5cc02824c0):
line: 3902 (pc 0)
Instructions:
prof_enterspesh
sp_getarg_o r0(1), liti16(0)
prof_allocated r0(1)
prof_exit
return_o r0(1)
Successors:
Predecessors: 0
Dominance children:
Facts:
r0(0): usages=0, flags=0
r0(1): usages=2, flags=0
r1(0): usages=0, flags=0
Frame size: 26 bytes
After:
Spesh of 'pull-one' (cuid: 1404, file: SETTING::src/core/Rakudo/Iterator.pm6:1881)
Callsite 0x7f5cc99fd4e0 (1 args, 1 pos)
Positional flags: obj
BB 0 (0x7f5cc0261328):
line: 1881 (pc 0)
Instructions:
no_op
Successors: 1
Predecessors:
Dominance children: 1
BB 1 (0x7f5cc02613b0):
line: 1881 (pc 0)
Instructions:
prof_enterspesh # expr bail: Cannot get template for: prof_enterspesh
sp_getarg_o r2(2), liti16(0)
prof_allocated r2(2)
[Annotation: Logged (bytecode offset 30)]
[Annotation: INS Deopt One (idx 0 -> pc 36; line 1881)]
sp_p6oget_o r0(2), r2(2), liti16(16)
takedispatcher r4(2)
[Annotation: FH Start (1)]
sp_p6oget_i r8(2), r0(2), liti16(8) # getattr_i of '$!i' in Rakudo::Iterator::IntRange
const_i64_16 r9(1), liti16(1)
add_i r9(2), r8(2), r9(1) # JIT optimized to register/constant operation
sp_p6obind_i r0(2), liti16(8), r9(2) # bindattr_i of '$!i' in Rakudo::Iterator::IntRange
sp_p6oget_i r8(3), r0(2), liti16(16) # getattr_i of '$!last' in Rakudo::Iterator::IntRange
le_i r8(4), r9(2), r8(3)
unless_i r8(4), BB(3)
Successors: 3, 2
Predecessors: 0
Dominance children: 2
BB 2 (0x7f5cc02615f0):
line: 1882 (pc 176)
Instructions:
# start of exprjit tree
# getattr_i of '$!i' in Rakudo::Iterator::IntRange
sp_p6oget_i r9(3), r0(2), liti16(8)
# expr bail: Cannot get template for: sp_fastbox_bi_ic
# box_i into a Int
sp_fastbox_bi_ic r10(3), liti16(40), sslot(7), liti16(32), r9(3), liti16(1)
prof_allocated r10(3)
set r7(3), r10(3)
goto BB(4)
Successors: 4
Predecessors: 1
Dominance children:
BB 3 (0x7f5cc0261650):
line: 1882 (pc 226)
Instructions:
sp_getspeshslot r7(4), sslot(4) # start of exprjit tree
Successors: 4
Predecessors: 1
Dominance children:
BB 4 (0x7f5cc02616b0):
line: 1882 (pc 240)
Instructions:
PHI r7(5), r7(3), r7(4)
set r5(5), r7(5) # start of exprjit tree
[Annotation: INS Deopt One (idx 1 -> pc 246; line 1882)]
sp_guard r12(1), r5(5), sslot(2), litui32(246) # expr bail: Cannot handle DEOPT_ONE (ins=sp_guard)
[Annotation: INS Deopt One (idx 2 -> pc 264; line 1882)]
[Annotation: Logged (bytecode offset 256)]
[Annotation: INS Deopt One (idx 3 -> pc 264; line 1882)]
sp_getspeshslot r7(6), sslot(5) # spesh plugin 'decontrv'
Successors: 5, 8
Predecessors: 2, 3
Dominance children: 5, 8, 9
BB 5 (0x7f5cc0261710):
line: 1882 (pc 264)
Instructions:
Successors: 6, 8
Predecessors: 4
Dominance children: 6
BB 6 (0x7f5cc02824c0):
Inlined
line: 1881 (pc 0)
Instructions:
[Annotation: FH Start (0)]
[Annotation: Inline Start (0)]
# expr bail: Cannot get template for: prof_enterinline
# inline of 'identity' (158) candidate 1
prof_enterinline sslot(6)
prof_allocated r12(1)
prof_exit
[Annotation: FH End (0)]
set r7(12), r12(1)
Successors: 7
Predecessors: 5
Dominance children: 7
BB 7 (0x7f5cc0261770):
line: 1882 (pc 280)
Instructions:
[Annotation: Inline End (0)]
[Annotation: FH Goto (0)]
PHI r7(11), r7(12)
[Annotation: INS Deopt One (idx 4 -> pc 280; line 1882)]
set r7(7), r7(11) # start of exprjit tree
prof_allocated r7(7) # expr bail: Cannot get template for: prof_allocated
goto BB(9)
Successors: 9
Predecessors: 6
Dominance children:
BB 8 (0x7f5cc02617d0):
line: 1882 (pc 290)
Instructions:
[Annotation: FH Goto (1)]
[Annotation: FH End (1)]
lastexpayload r7(9) # start of exprjit tree
Successors: 9
Predecessors: 4, 5
Dominance children:
BB 9 (0x7f5cc0261830):
line: 1882 (pc 300)
Instructions:
PHI r7(10), r7(7), r7(9)
prof_exit # expr bail: Cannot get template for: prof_exit
return_o r7(10)
Successors:
Predecessors: 7, 8
Dominance children:
Facts:
r0(0): usages=0, flags=0
r0(1): usages=0, flags=0 DeadWriter
r0(2): usages=4, flags=9 KnTyp Concr (type: Rakudo::Iterator::IntRange)
r1(0): usages=0, flags=0
r1(1): usages=0, flags=0 DeadWriter
r2(0): usages=0, flags=0
r2(1): usages=0, flags=0 DeadWriter
r2(2): usages=2, flags=105 KnTyp Concr KnDcT DCncr (type: Scalar)
r2(3): usages=0, flags=105 KnTyp Concr KnDcT DCncr DeadWriter (type: Scalar)
r3(0): usages=0, flags=0
r3(1): usages=0, flags=0 DeadWriter
r3(2): usages=0, flags=9 KnTyp Concr DeadWriter (type: BOOTHash)
r4(0): usages=0, flags=0
r4(1): usages=0, flags=0 DeadWriter
r4(2): usages=0, flags=0
r5(0): usages=0, flags=0
r5(1): usages=0, flags=0 DeadWriter
r5(2): usages=0, flags=105 KnTyp Concr KnDcT DCncr DeadWriter (type: Scalar)
r5(3): usages=0, flags=9 KnTyp Concr (type: Rakudo::Iterator::IntRange)
r5(4): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: Rakudo::Iterator::IntRange)
r5(5): usages=1, deopt=1, flags=8 Concr
r5(6): usages=0, flags=0
r5(7): usages=0, flags=0 DeadWriter (merged from 2 regs)
r5(8): usages=0, flags=9 KnTyp Concr (type: Rakudo::Iterator::IntRange)
r5(9): usages=0, flags=9 KnTyp Concr (type: Int)
r6(0): usages=0, flags=0
r6(1): usages=0, flags=0 DeadWriter
r6(2): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: Rakudo::Iterator::IntRange)
r6(3): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: Rakudo::Iterator::IntRange)
r6(4): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: Rakudo::Iterator::IntRange)
r6(5): usages=0, flags=11 KnTyp KnVal Concr (type: Mu)
r6(6): usages=0, flags=0 DeadWriter (merged from 2 regs)
r7(0): usages=0, flags=0
r7(1): usages=0, flags=0 DeadWriter
r7(2): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: Rakudo::Iterator::IntRange)
r7(3): usages=1, flags=2057 KnTyp Concr KBxSr (type: Int)
r7(4): usages=1, flags=11 KnTyp KnVal Concr (type: Mu)
r7(5): usages=1, flags=8 Concr (merged from 2 regs)
r7(6): usages=0, deopt=-1, flags=11 KnTyp KnVal Concr (type: BOOTCode)
r7(7): usages=2, flags=9 KnTyp Concr (type: Int)
r7(8): usages=0, flags=0 DeadWriter (merged from 2 regs)
r7(9): usages=1, flags=0
r7(10): usages=1, flags=0 (merged from 2 regs)
r7(11): usages=1, flags=0 (merged from 1 regs)
r7(12): usages=1, flags=0
r8(0): usages=0, flags=0
r8(1): usages=0, flags=2 KnVal DeadWriter
r8(2): usages=1, flags=0
r8(3): usages=1, flags=0
r8(4): usages=1, flags=0
r9(0): usages=0, flags=0
r9(1): usages=1, flags=2 KnVal
r9(2): usages=2, flags=0
r9(3): usages=1, flags=0
r9(4): usages=0, flags=0 DeadWriter (merged from 2 regs)
r10(0): usages=0, flags=0
r10(1): usages=0, flags=0 DeadWriter
r10(2): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: Int)
r10(3): usages=2, flags=2057 KnTyp Concr KBxSr (type: Int)
r10(4): usages=0, flags=0 DeadWriter (merged from 2 regs)
r11(0): usages=0, flags=0
r11(1): usages=0, flags=0 DeadWriter
r11(2): usages=0, flags=9 KnTyp Concr (type: Rakudo::Iterator::IntRange)
r12(0): usages=0, flags=0
r12(1): usages=2, flags=0
r13(0): usages=0, flags=0
Spesh slots:
0 = STable (BOOTHash)
1 = STable (Rakudo::Iterator::IntRange)
2 = STable (Int)
3 = Type Object (Rakudo::Iterator::IntRange)
4 = Instance (Mu)
5 = Instance (BOOTCode) - 'identity' (158)
6 = Instance (BOOTStaticFrame) - 'identity' (158)
7 = STable (Int)
Frame size: 270 bytes (22 from inlined frames)
Specialization took 66us (total 280us)
JIT was successful and compilation took 210us
Bytecode size: 1086 byte
========
gdb) call MVM_dump_bytecode(tc)
00000 getcode loc_22_obj, Frame_7105
00001 takeclosure loc_22_obj, loc_22_obj
00002 checkarity 2, 2
00003 param_rp_o loc_5_obj, 0
00004 hllize loc_25_obj, loc_5_obj
00005 set loc_5_obj, loc_25_obj
00006 decont loc_25_obj, loc_5_obj
00007 set loc_26_obj, loc_25_obj
00008 wval loc_25_obj, 0, 9588
00009 istype loc_24_int, loc_26_obj, loc_25_obj
00010 assertparamcheck loc_24_int
00011 bindlex lex_Frame_7104_lex??_obj, loc_26_obj
00012 param_rp_o loc_6_obj, 1
00013 hllize loc_25_obj, loc_6_obj
00014 set loc_6_obj, loc_25_obj
00015 decont loc_25_obj, loc_6_obj
00016 set loc_27_obj, loc_25_obj
00017 wval loc_25_obj, 1, 21
00018 istype loc_24_int, loc_27_obj, loc_25_obj
00019 assertparamcheck loc_24_int
00020 set loc_3_obj, loc_6_obj
00021 param_sn loc_7_obj
annotation: SETTING::src/core/Any-iterable-methods.pm6:405
00022 const_i64_16 loc_4_int, 0
00023 bindlex lex_Frame_7104_lex??_int, loc_4_int
00024 takedispatcher loc_8_obj
00025 isnull loc_9_int, loc_8_obj
00026 if_i loc_9_int, label_1(00028)
00027 bindlex lex_Frame_7104_lex??_obj, loc_8_obj
label_1:
00028 wval loc_8_obj, 1, 25
00029 create loc_8_obj, loc_8_obj
00030 wval loc_10_obj, 1, 25
00031 wval loc_11_obj, 0, 9629
00032 bindattr_o loc_8_obj, loc_10_obj, '$!descriptor', loc_11_obj, -1
00033 wval loc_11_obj, 1, 25
00034 wval loc_10_obj, 1, 21
00035 bindattr_o loc_8_obj, loc_11_obj, '$!value', loc_10_obj, -1
00036 set loc_1_obj, loc_8_obj
annotation: SETTING::src/core/Any-iterable-methods.pm6:406
00037 getppid loc_9_int
annotation: SETTING::src/core/Any-iterable-methods.pm6:407
00038 getlex loc_8_obj, lex_Frame_7104_lex??_obj
00039 wval loc_10_obj, 0, 9588
00040 getattr_i loc_12_int, loc_8_obj, loc_10_obj, '$!slipping', 3
00041 unless_i loc_12_int, label_3(00062)
label_2:
00042 getlex loc_10_obj, lex_Frame_7104_lex??_obj
00043 decont loc_11_obj, loc_10_obj
00044 findmeth loc_8_obj, loc_11_obj, 'slip-one'
00045 prepargs Callsite_1
00046 arg_o 0, loc_10_obj
00047 invoke_o loc_8_obj, loc_8_obj
00048 hllize loc_8_obj, loc_8_obj
00049 set loc_1_obj, loc_8_obj
00050 wval loc_8_obj, 0, 79
00051 eqaddr loc_13_int, loc_1_obj, loc_8_obj
00052 if_i loc_13_int, label_3(00062)
00053 osrpoint
00054 decont loc_10_obj, loc_3_obj
00055 findmeth loc_8_obj, loc_10_obj, 'push'
00056 prepargs Callsite_0
00057 arg_o 0, loc_3_obj
00058 arg_o 1, loc_1_obj
00059 invoke_o loc_8_obj, loc_8_obj
00060 hllize loc_8_obj, loc_8_obj
00061 goto label_2(00042)
label_3:
00062 null loc_10_obj
label_4:
00063 getlex loc_11_obj, lex_Frame_7104_lex??_obj
00064 wval loc_14_obj, 0, 9588
00065 getattr_o loc_15_obj, loc_11_obj, loc_14_obj, '$!source', 1
00066 decont loc_11_obj, loc_15_obj
00067 findmeth loc_14_obj, loc_11_obj, 'pull-one'
00068 prepargs Callsite_1
00069 arg_o 0, loc_15_obj
00070 invoke_o loc_14_obj, loc_14_obj
00071 hllize loc_14_obj, loc_14_obj
00072 set loc_1_obj, loc_14_obj
00073 wval loc_14_obj, 0, 79
00074 eqaddr loc_12_int, loc_1_obj, loc_14_obj
00075 if_i loc_12_int, label_10(00130)
00076 osrpoint
00077 const_i64_16 loc_16_int, 1
00078 bindlex lex_Frame_7104_lex??_int, loc_16_int
00079 null loc_14_obj
label_5:
00080 getlex loc_17_int, lex_Frame_7104_lex??_int
00081 const_i64_16 loc_18_int, 0
00082 ne_i loc_18_int, loc_17_int, loc_18_int
00083 unless_i loc_18_int, label_9(00128)
00084 osrpoint
00085 const_i64_16 loc_17_int, 0
00086 bindlex lex_Frame_7104_lex??_int, loc_17_int
00087 getlex loc_15_obj, lex_Frame_7104_lex??_obj
00088 wval loc_11_obj, 0, 9588
00089 getattr_o loc_19_obj, loc_15_obj, loc_11_obj, '$!label', 2
00090 set loc_20_obj, loc_19_obj
00091 set loc_21_obj, loc_22_obj
00092 getlex loc_11_obj, lex_Frame_7104_lex??_obj
00093 wval loc_15_obj, 0, 9588
00094 getattr_o loc_23_obj, loc_11_obj, loc_15_obj, '&!block', 0
00095 decont loc_23_obj, loc_23_obj
00096 prepargs Callsite_1
00097 arg_o 0, loc_1_obj
00098 invoke_o loc_23_obj, loc_23_obj
00099 set loc_0_obj, loc_23_obj
00100 decont loc_23_obj, loc_0_obj
00101 wval loc_15_obj, 1, 41
00102 istype loc_24_int, loc_23_obj, loc_15_obj
00103 unless_i loc_24_int, label_6(00115)
00104 getlex loc_15_obj, lex_Frame_7104_lex??_obj
00105 decont loc_11_obj, loc_15_obj
00106 findmeth loc_23_obj, loc_11_obj, 'slip-all'
00107 prepargs Callsite_2
00108 arg_o 0, loc_15_obj
00109 arg_o 1, loc_0_obj
00110 arg_o 2, loc_3_obj
00111 invoke_o loc_23_obj, loc_23_obj
00112 hllize loc_23_obj, loc_23_obj
00113 set loc_11_obj, loc_23_obj
00114 goto label_7(00123)
label_6:
00115 decont loc_11_obj, loc_3_obj
00116 findmeth loc_15_obj, loc_11_obj, 'push'
00117 prepargs Callsite_0
00118 arg_o 0, loc_3_obj
00119 arg_o 1, loc_0_obj
00120 invoke_o loc_15_obj, loc_15_obj
00121 hllize loc_15_obj, loc_15_obj
00122 set loc_11_obj, loc_15_obj
label_7:
00123 set loc_19_obj, loc_11_obj
00124 goto label_8(00126)
00125 takehandlerresult loc_19_obj
label_8:
00126 null loc_11_obj
00127 goto label_5(00080)
label_9:
00128 null loc_15_obj
00129 goto label_4(00063)
label_10:
00130 wval loc_23_obj, 0, 79
00131 goto label_11(00134)
00132 lastexpayload loc_25_obj
00133 set loc_23_obj, loc_25_obj
label_11:
00134 return_o loc_23_obj
(gdb)
1 Completed deopt_one in 'pull-one' (cuid '1404') with potential uninlining
1 Completed deopt_one in 'symbol' (cuid '157')
1 Deopt one requested by JIT in frame 'pull-one' (cuid '1404') (140 -> 246)
1 Deopt one requested by JIT in frame 'symbol' (cuid '157') (56 -> 50)
1 Failed to find deopt index for offset 140
1 Failed to find deopt index for offset 56
1 Writing profiler output to profile-1551645789.814709.html
2 Deopt all requested in frame 'mixin' (cuid '105')
2 Deopt all requested in frame 'statementlist' (cuid '102')
4 Completed deopt_one in '' (cuid '126') with potential uninlining
4 Deopt one requested by JIT in frame '' (cuid '126') (2050 -> 2274)
4 Failed to find deopt index for offset 2050
8 Deopt all requested in frame 'statement' (cuid '110')
12 Deopt all completed
33 Completed deopt_one in 'pull-one' (cuid '1396')
33 Deopt one requested by JIT in frame 'pull-one' (cuid '1396') (186 -> 266)
33 Failed to find deopt index for offset 186
498161 Completed deopt_one in 'pull-one' (cuid '1396') with potential uninlining
498161 Deopt one requested by JIT in frame 'push-all' (cuid '886') (396 -> 266)
498161 Failed to find deopt index for offset 396
498161 Recreated frame 'pull-one' (cuid '1396')
(gdb) call MVM_dump_bytecode(tc)
00000 prof_enter
00001 getcode loc_22_obj, Frame_7105
00002 takeclosure loc_22_obj, loc_22_obj
00003 prof_allocated loc_22_obj
00004 checkarity 2, 2
00005 param_rp_o loc_5_obj, 0
00006 prof_allocated loc_5_obj
00007 hllize loc_25_obj, loc_5_obj
00008 set loc_5_obj, loc_25_obj
00009 decont loc_25_obj, loc_5_obj
00010 set loc_26_obj, loc_25_obj
00011 wval loc_25_obj, 0, 9588
00012 istype loc_24_int, loc_26_obj, loc_25_obj
00013 assertparamcheck loc_24_int
00014 bindlex lex_Frame_7104_lex??_obj, loc_26_obj
00015 param_rp_o loc_6_obj, 1
00016 prof_allocated loc_6_obj
00017 hllize loc_25_obj, loc_6_obj
00018 set loc_6_obj, loc_25_obj
00019 decont loc_25_obj, loc_6_obj
00020 set loc_27_obj, loc_25_obj
00021 wval loc_25_obj, 1, 21
00022 istype loc_24_int, loc_27_obj, loc_25_obj
annotation: SETTING::src/core/Any-iterable-methods.pm6:405
00023 assertparamcheck loc_24_int
00024 set loc_3_obj, loc_6_obj
00025 param_sn loc_7_obj
00026 prof_allocated loc_7_obj
00027 const_i64_16 loc_4_int, 0
00028 bindlex lex_Frame_7104_lex??_int, loc_4_int
00029 takedispatcher loc_8_obj
00030 isnull loc_9_int, loc_8_obj
00031 if_i loc_9_int, label_1(00033)
00032 bindlex lex_Frame_7104_lex??_obj, loc_8_obj
label_1:
00033 wval loc_8_obj, 1, 25
00034 create loc_8_obj, loc_8_obj
00035 prof_allocated loc_8_obj
00036 wval loc_10_obj, 1, 25
00037 wval loc_11_obj, 0, 9629
00038 bindattr_o loc_8_obj, loc_10_obj, '$!descriptor', loc_11_obj, -1
00039 wval loc_11_obj, 1, 25
00040 wval loc_10_obj, 1, 21
00041 bindattr_o loc_8_obj, loc_11_obj, '$!value', loc_10_obj, -1
00042 set loc_1_obj, loc_8_obj
00043 getppid loc_9_int
00044 getlex loc_8_obj, lex_Frame_7104_lex??_obj
00045 prof_allocated loc_8_obj
00046 wval loc_10_obj, 0, 9588
00047 getattr_i loc_12_int, loc_8_obj, loc_10_obj, '$!slipping', 3
00048 unless_i loc_12_int, label_3(00072)
label_2:
00049 getlex loc_10_obj, lex_Frame_7104_lex??_obj
00050 prof_allocated loc_10_obj
00051 decont loc_11_obj, loc_10_obj
00052 findmeth loc_8_obj, loc_11_obj, 'slip-one'
00053 prepargs Callsite_1
00054 arg_o 0, loc_10_obj
00055 invoke_o loc_8_obj, loc_8_obj
00056 prof_allocated loc_8_obj
00057 hllize loc_8_obj, loc_8_obj
00058 set loc_1_obj, loc_8_obj
00059 wval loc_8_obj, 0, 79
00060 eqaddr loc_13_int, loc_1_obj, loc_8_obj
00061 if_i loc_13_int, label_3(00072)
00062 osrpoint
00063 decont loc_10_obj, loc_3_obj
00064 findmeth loc_8_obj, loc_10_obj, 'push'
00065 prepargs Callsite_0
00066 arg_o 0, loc_3_obj
00067 arg_o 1, loc_1_obj
00068 invoke_o loc_8_obj, loc_8_obj
00069 prof_allocated loc_8_obj
00070 hllize loc_8_obj, loc_8_obj
00071 goto label_2(00049)
label_3:
00072 null loc_10_obj
label_4:
00073 getlex loc_11_obj, lex_Frame_7104_lex??_obj
00074 prof_allocated loc_11_obj
00075 wval loc_14_obj, 0, 9588
00076 getattr_o loc_15_obj, loc_11_obj, loc_14_obj, '$!source', 1
00077 prof_allocated loc_15_obj
00078 decont loc_11_obj, loc_15_obj
00079 findmeth loc_14_obj, loc_11_obj, 'pull-one'
00080 prepargs Callsite_1
00081 arg_o 0, loc_15_obj
00082 invoke_o loc_14_obj, loc_14_obj
00083 prof_allocated loc_14_obj
00084 hllize loc_14_obj, loc_14_obj
00085 set loc_1_obj, loc_14_obj
00086 wval loc_14_obj, 0, 79
00087 eqaddr loc_12_int, loc_1_obj, loc_14_obj
00088 if_i loc_12_int, label_10(00151)
00089 osrpoint
00090 const_i64_16 loc_16_int, 1
00091 bindlex lex_Frame_7104_lex??_int, loc_16_int
00092 null loc_14_obj
label_5:
00093 getlex loc_17_int, lex_Frame_7104_lex??_int
00094 const_i64_16 loc_18_int, 0
00095 ne_i loc_18_int, loc_17_int, loc_18_int
00096 unless_i loc_18_int, label_9(00149)
00097 osrpoint
00098 const_i64_16 loc_17_int, 0
00099 bindlex lex_Frame_7104_lex??_int, loc_17_int
00100 getlex loc_15_obj, lex_Frame_7104_lex??_obj
00101 prof_allocated loc_15_obj
00102 wval loc_11_obj, 0, 9588
00103 getattr_o loc_19_obj, loc_15_obj, loc_11_obj, '$!label', 2
00104 prof_allocated loc_19_obj
00105 set loc_20_obj, loc_19_obj
00106 set loc_21_obj, loc_22_obj
00107 getlex loc_11_obj, lex_Frame_7104_lex??_obj
00108 prof_allocated loc_11_obj
00109 wval loc_15_obj, 0, 9588
00110 getattr_o loc_23_obj, loc_11_obj, loc_15_obj, '&!block', 0
00111 prof_allocated loc_23_obj
00112 decont loc_23_obj, loc_23_obj
00113 prepargs Callsite_1
00114 arg_o 0, loc_1_obj
00115 invoke_o loc_23_obj, loc_23_obj
00116 prof_allocated loc_23_obj
00117 set loc_0_obj, loc_23_obj
00118 decont loc_23_obj, loc_0_obj
00119 wval loc_15_obj, 1, 41
00120 istype loc_24_int, loc_23_obj, loc_15_obj
00121 unless_i loc_24_int, label_6(00135)
00122 getlex loc_15_obj, lex_Frame_7104_lex??_obj
00123 prof_allocated loc_15_obj
00124 decont loc_11_obj, loc_15_obj
00125 findmeth loc_23_obj, loc_11_obj, 'slip-all'
00126 prepargs Callsite_2
00127 arg_o 0, loc_15_obj
00128 arg_o 1, loc_0_obj
00129 arg_o 2, loc_3_obj
00130 invoke_o loc_23_obj, loc_23_obj
00131 prof_allocated loc_23_obj
00132 hllize loc_23_obj, loc_23_obj
00133 set loc_11_obj, loc_23_obj
00134 goto label_7(00144)
label_6:
00135 decont loc_11_obj, loc_3_obj
00136 findmeth loc_15_obj, loc_11_obj, 'push'
00137 prepargs Callsite_0
00138 arg_o 0, loc_3_obj
00139 arg_o 1, loc_0_obj
00140 invoke_o loc_15_obj, loc_15_obj
00141 prof_allocated loc_15_obj
00142 hllize loc_15_obj, loc_15_obj
00143 set loc_11_obj, loc_15_obj
label_7:
00144 set loc_19_obj, loc_11_obj
00145 goto label_8(00147)
00146 takehandlerresult loc_19_obj
label_8:
00147 null loc_11_obj
00148 goto label_5(00093)
label_9:
00149 null loc_15_obj
00150 goto label_4(00073)
label_10:
00151 wval loc_23_obj, 0, 79
00152 goto label_11(00155)
00153 lastexpayload loc_25_obj
00154 set loc_23_obj, loc_25_obj
label_11:
00155 prof_exit
00156 return_o loc_23_obj
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment