Created
November 16, 2018 13:11
-
-
Save dogbert17/e4bb34ba9eac39f880a7aa3e1054ec47 to your computer and use it in GitHub Desktop.
The broken frame
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dogbert@dogbert-VirtualBox ~/repos/rakudo $ cat spesh-3226.txt | |
Specialization of 'BUILD' (cuid: 62) | |
Before: | |
Spesh of 'BUILD' (cuid: 62, file: /home/dogbert/repos/rakudo/install/bin/../share/nqp/lib/MAST/Nodes.nqp:763) | |
BB 0 (0x7f60c8f8ef40): | |
line: 763 (pc 0) | |
Instructions: | |
no_op | |
Successors: 1 | |
Predecessors: | |
Dominance children: 1 | |
BB 1 (0x7f60c8f8efc8): | |
line: 763 (pc 0) | |
Instructions: | |
null r0(1) | |
null r1(1) | |
null r3(1) | |
null r4(1) | |
null r5(1) | |
null r6(1) | |
null r7(1) | |
checkarity liti16(6), liti16(6) | |
param_rp_o r0(2), liti16(0) | |
param_rp_o r1(2), liti16(1) | |
param_rp_i r9(1), liti16(2) | |
trunc_i32 r2(1), r9(1) | |
param_rp_o r3(2), liti16(3) | |
param_rp_o r4(2), liti16(4) | |
param_rp_o r5(2), liti16(5) | |
paramnamesused | |
[Annotation: INS Deopt One (idx 0 -> pc 56; line 764)] | |
[Annotation: Logged (bytecode offset 50)] | |
[Annotation: Line Number: /home/dogbert/repos/rakudo/install/bin/../share/nqp/lib/MAST/Nodes.nqp:763] | |
decont r6(2), r0(2) | |
Successors: 2 | |
Predecessors: 0 | |
Dominance children: 2 | |
BB 2 (0x7f60c8f8f028): | |
line: 764 (pc 56) | |
Instructions: | |
wval r7(2), liti16(0), liti16(83) (P6opaque: SubBuffer) | |
bindattr_o r6(2), r7(2), lits($!bytecode), r1(2), liti16(0) | |
[Annotation: INS Deopt One (idx 1 -> pc 84; line 765)] | |
[Annotation: Logged (bytecode offset 78)] | |
decont r7(3), r0(2) | |
Successors: 3 | |
Predecessors: 1 | |
Dominance children: 3 | |
BB 3 (0x7f60c8f8f088): | |
line: 765 (pc 84) | |
Instructions: | |
wval r6(3), liti16(0), liti16(83) (P6opaque: SubBuffer) | |
extend_i32 r8(1), r2(1) | |
bindattr_i r7(3), r6(3), lits($!annotations-offset), r8(1), liti16(1) | |
[Annotation: INS Deopt One (idx 2 -> pc 118; line 766)] | |
[Annotation: Logged (bytecode offset 112)] | |
decont r6(4), r0(2) | |
Successors: 4 | |
Predecessors: 2 | |
Dominance children: 4 | |
BB 4 (0x7f60c8f8f0e8): | |
line: 766 (pc 118) | |
Instructions: | |
wval r7(4), liti16(0), liti16(83) (P6opaque: SubBuffer) | |
bindattr_o r6(4), r7(4), lits(%!labels), r3(2), liti16(3) | |
[Annotation: INS Deopt One (idx 3 -> pc 146; line 767)] | |
[Annotation: Logged (bytecode offset 140)] | |
decont r7(5), r0(2) | |
Successors: 5 | |
Predecessors: 3 | |
Dominance children: 5 | |
BB 5 (0x7f60c8f8f148): | |
line: 767 (pc 146) | |
Instructions: | |
wval r6(5), liti16(0), liti16(83) (P6opaque: SubBuffer) | |
bindattr_o r7(5), r6(5), lits(@!label-fixups), r4(2), liti16(4) | |
[Annotation: INS Deopt One (idx 4 -> pc 174; line 768)] | |
[Annotation: Logged (bytecode offset 168)] | |
decont r6(6), r0(2) | |
Successors: 6 | |
Predecessors: 4 | |
Dominance children: 6 | |
BB 6 (0x7f60c8f8f1a8): | |
line: 768 (pc 174) | |
Instructions: | |
wval r7(6), liti16(0), liti16(83) (P6opaque: SubBuffer) | |
bindattr_o r6(6), r7(6), lits(@!handlers), r5(2), liti16(5) | |
return_o r5(2) | |
Successors: | |
Predecessors: 5 | |
Dominance children: | |
Facts: | |
r0(0): usages=0, flags=0 | |
r0(1): usages=0, flags=0 | |
r0(2): usages=0, flags=0 | |
r1(0): usages=0, flags=0 | |
r1(1): usages=0, flags=0 | |
r1(2): usages=0, flags=0 | |
r2(0): usages=0, flags=0 | |
r2(1): usages=0, flags=0 | |
r3(0): usages=0, flags=0 | |
r3(1): usages=0, flags=0 | |
r3(2): usages=0, flags=0 | |
r4(0): usages=0, flags=0 | |
r4(1): usages=0, flags=0 | |
r4(2): usages=0, flags=0 | |
r5(0): usages=0, flags=0 | |
r5(1): usages=0, flags=0 | |
r5(2): usages=0, flags=0 | |
r6(0): usages=0, flags=0 | |
r6(1): usages=0, flags=0 | |
r6(2): usages=0, flags=0 | |
r6(3): usages=0, flags=0 | |
r6(4): usages=0, flags=0 | |
r6(5): usages=0, flags=0 | |
r6(6): usages=0, flags=0 | |
r7(0): usages=0, flags=0 | |
r7(1): usages=0, flags=0 | |
r7(2): usages=0, flags=0 | |
r7(3): usages=0, flags=0 | |
r7(4): usages=0, flags=0 | |
r7(5): usages=0, flags=0 | |
r7(6): usages=0, flags=0 | |
r8(0): usages=0, flags=0 | |
r8(1): usages=0, flags=0 | |
r9(0): usages=0, flags=0 | |
r9(1): usages=0, flags=0 | |
Frame size: 346 bytes | |
JIT: Starting dump of JIT expression tree | |
========================================= | |
digraph { | |
n_0002 [label="LOCAL"]; | |
n_0004 [label="ADDR(0)"]; | |
n_0004 -> n_0002; | |
n_0012 [label="TC"]; | |
n_0014 [label="ADDR(432)"]; | |
n_0014 -> n_0012; | |
n_0018 [label="LOAD(8)"]; | |
n_0018 -> n_0014; | |
n_0022 [label="ADDR(96)"]; | |
n_0022 -> n_0018; | |
n_0026 [label="LOAD(8)"]; | |
n_0026 -> n_0022; | |
n_0008 [label="CONST(0, 2)"]; | |
n_0030 [label="IDX(8)"]; | |
n_0030 -> n_0026; | |
n_0030 -> n_0008; | |
n_0035 [label="LOAD(8)"]; | |
n_0035 -> n_0030; | |
n_0410 [label="STORE(8)"]; | |
n_0410 -> n_0004; | |
n_0410 -> n_0035; | |
n_0039 [label="LOCAL"]; | |
n_0041 [label="ADDR(8)"]; | |
n_0041 -> n_0039; | |
n_0049 [label="TC"]; | |
n_0051 [label="ADDR(432)"]; | |
n_0051 -> n_0049; | |
n_0055 [label="LOAD(8)"]; | |
n_0055 -> n_0051; | |
n_0059 [label="ADDR(96)"]; | |
n_0059 -> n_0055; | |
n_0063 [label="LOAD(8)"]; | |
n_0063 -> n_0059; | |
n_0045 [label="CONST(1, 2)"]; | |
n_0067 [label="IDX(8)"]; | |
n_0067 -> n_0063; | |
n_0067 -> n_0045; | |
n_0072 [label="LOAD(8)"]; | |
n_0072 -> n_0067; | |
n_0415 [label="STORE(8)"]; | |
n_0415 -> n_0041; | |
n_0415 -> n_0072; | |
n_0076 [label="LOCAL"]; | |
n_0078 [label="ADDR(72)"]; | |
n_0078 -> n_0076; | |
n_0086 [label="TC"]; | |
n_0088 [label="ADDR(432)"]; | |
n_0088 -> n_0086; | |
n_0092 [label="LOAD(8)"]; | |
n_0092 -> n_0088; | |
n_0096 [label="ADDR(96)"]; | |
n_0096 -> n_0092; | |
n_0100 [label="LOAD(8)"]; | |
n_0100 -> n_0096; | |
n_0082 [label="CONST(2, 2)"]; | |
n_0104 [label="IDX(8)"]; | |
n_0104 -> n_0100; | |
n_0104 -> n_0082; | |
n_0109 [label="LOAD(8)"]; | |
n_0109 -> n_0104; | |
n_0450 [label="STORE(8)"]; | |
n_0450 -> n_0078; | |
n_0450 -> n_0109; | |
n_0113 [label="LOCAL"]; | |
n_0115 [label="ADDR(16)"]; | |
n_0115 -> n_0113; | |
n_0119 [label="UCAST(4, 8)"]; | |
n_0119 -> n_0109; | |
n_0420 [label="STORE(8)"]; | |
n_0420 -> n_0115; | |
n_0420 -> n_0119; | |
n_0124 [label="LOCAL"]; | |
n_0126 [label="ADDR(24)"]; | |
n_0126 -> n_0124; | |
n_0134 [label="TC"]; | |
n_0136 [label="ADDR(432)"]; | |
n_0136 -> n_0134; | |
n_0140 [label="LOAD(8)"]; | |
n_0140 -> n_0136; | |
n_0144 [label="ADDR(96)"]; | |
n_0144 -> n_0140; | |
n_0148 [label="LOAD(8)"]; | |
n_0148 -> n_0144; | |
n_0130 [label="CONST(3, 2)"]; | |
n_0152 [label="IDX(8)"]; | |
n_0152 -> n_0148; | |
n_0152 -> n_0130; | |
n_0157 [label="LOAD(8)"]; | |
n_0157 -> n_0152; | |
n_0425 [label="STORE(8)"]; | |
n_0425 -> n_0126; | |
n_0425 -> n_0157; | |
n_0161 [label="LOCAL"]; | |
n_0163 [label="ADDR(32)"]; | |
n_0163 -> n_0161; | |
n_0171 [label="TC"]; | |
n_0173 [label="ADDR(432)"]; | |
n_0173 -> n_0171; | |
n_0177 [label="LOAD(8)"]; | |
n_0177 -> n_0173; | |
n_0181 [label="ADDR(96)"]; | |
n_0181 -> n_0177; | |
n_0185 [label="LOAD(8)"]; | |
n_0185 -> n_0181; | |
n_0167 [label="CONST(4, 2)"]; | |
n_0189 [label="IDX(8)"]; | |
n_0189 -> n_0185; | |
n_0189 -> n_0167; | |
n_0194 [label="LOAD(8)"]; | |
n_0194 -> n_0189; | |
n_0430 [label="STORE(8)"]; | |
n_0430 -> n_0163; | |
n_0430 -> n_0194; | |
n_0198 [label="LOCAL"]; | |
n_0200 [label="ADDR(40)"]; | |
n_0200 -> n_0198; | |
n_0208 [label="TC"]; | |
n_0210 [label="ADDR(432)"]; | |
n_0210 -> n_0208; | |
n_0214 [label="LOAD(8)"]; | |
n_0214 -> n_0210; | |
n_0218 [label="ADDR(96)"]; | |
n_0218 -> n_0214; | |
n_0222 [label="LOAD(8)"]; | |
n_0222 -> n_0218; | |
n_0204 [label="CONST(5, 2)"]; | |
n_0226 [label="IDX(8)"]; | |
n_0226 -> n_0222; | |
n_0226 -> n_0204; | |
n_0231 [label="LOAD(8)"]; | |
n_0231 -> n_0226; | |
n_0435 [label="STORE(8)"]; | |
n_0435 -> n_0200; | |
n_0435 -> n_0231; | |
n_0241 [label="COPY"]; | |
n_0241 -> n_0035; | |
n_0248 [label="ADDR(24)"]; | |
n_0248 -> n_0241; | |
n_0252 [label="LOAD(8)"]; | |
n_0252 -> n_0248; | |
n_0256 [label="DISCARD"]; | |
n_0256 -> n_0252; | |
n_0259 [label="NZ"]; | |
n_0259 -> n_0252; | |
n_0262 [label="ADDR(24)"]; | |
n_0262 -> n_0241; | |
n_0266 [label="IF"]; | |
n_0266 -> n_0259; | |
n_0266 -> n_0252; | |
n_0266 -> n_0262; | |
n_0271 [label="DO"]; | |
n_0271 -> n_0256; | |
n_0271 -> n_0266; | |
n_0244 [label="CONST(8, 2)"]; | |
n_0275 [label="ADD"]; | |
n_0275 -> n_0271; | |
n_0275 -> n_0244; | |
n_0279 [label="STORE(8)"]; | |
n_0279 -> n_0275; | |
n_0279 -> n_0072; | |
n_0284 [label="ADDR(12)"]; | |
n_0284 -> n_0241; | |
n_0288 [label="LOAD(2)"]; | |
n_0288 -> n_0284; | |
n_0292 [label="CONST(16, 2)"]; | |
n_0296 [label="AND"]; | |
n_0296 -> n_0288; | |
n_0296 -> n_0292; | |
n_0300 [label="NZ"]; | |
n_0300 -> n_0296; | |
n_0303 [label="NZ"]; | |
n_0303 -> n_0072; | |
n_0306 [label="ADDR(12)"]; | |
n_0306 -> n_0072; | |
n_0310 [label="LOAD(2)"]; | |
n_0310 -> n_0306; | |
n_0314 [label="CONST(16, 2)"]; | |
n_0318 [label="AND"]; | |
n_0318 -> n_0310; | |
n_0318 -> n_0314; | |
n_0322 [label="ZR"]; | |
n_0322 -> n_0318; | |
n_0325 [label="ALL"]; | |
n_0325 -> n_0300; | |
n_0325 -> n_0303; | |
n_0325 -> n_0322; | |
n_0330 [label="CONST_PTR(0)"]; | |
n_0333 [label="TC"]; | |
n_0335 [label="CARG(0)"]; | |
n_0335 -> n_0333; | |
n_0339 [label="CARG(0)"]; | |
n_0339 -> n_0241; | |
n_0343 [label="CARG(0)"]; | |
n_0343 -> n_0072; | |
n_0347 [label="ARGLIST"]; | |
n_0347 -> n_0335; | |
n_0347 -> n_0339; | |
n_0347 -> n_0343; | |
n_0352 [label="CALLV"]; | |
n_0352 -> n_0330; | |
n_0352 -> n_0347; | |
n_0356 [label="WHEN"]; | |
n_0356 -> n_0325; | |
n_0356 -> n_0352; | |
n_0360 [label="DOV"]; | |
n_0360 -> n_0279; | |
n_0360 -> n_0356; | |
n_0364 [label="LOCAL"]; | |
n_0366 [label="ADDR(56)"]; | |
n_0366 -> n_0364; | |
n_0370 [label="COPY"]; | |
n_0370 -> n_0035; | |
n_0445 [label="STORE(8)"]; | |
n_0445 -> n_0366; | |
n_0445 -> n_0370; | |
n_0373 [label="LOCAL"]; | |
n_0375 [label="ADDR(48)"]; | |
n_0375 -> n_0373; | |
n_0383 [label="TC"]; | |
n_0385 [label="ADDR(432)"]; | |
n_0385 -> n_0383; | |
n_0389 [label="LOAD(8)"]; | |
n_0389 -> n_0385; | |
n_0393 [label="ADDR(120)"]; | |
n_0393 -> n_0389; | |
n_0397 [label="LOAD(8)"]; | |
n_0397 -> n_0393; | |
n_0379 [label="CONST(0, 2)"]; | |
n_0401 [label="IDX(8)"]; | |
n_0401 -> n_0397; | |
n_0401 -> n_0379; | |
n_0406 [label="LOAD(8)"]; | |
n_0406 -> n_0401; | |
n_0440 [label="STORE(8)"]; | |
n_0440 -> n_0375; | |
n_0440 -> n_0406; | |
} | |
End dump of JIT expression tree | |
=============================== | |
JIT: Starting tile list log | |
=========================== | |
Block{0} [0-50) | |
0: (local) | |
1: (tc) | |
2: (load (addr reg $ofs) $size) | |
3: (load (addr reg $ofs) $size) | |
4: (const $val $size) | |
5: (load (idx reg reg $scale) $size) | |
6: (store (addr reg $ofs) reg $size) | |
7: (local) | |
8: (tc) | |
9: (load (addr reg $ofs) $size) | |
10: (load (addr reg $ofs) $size) | |
11: (const $val $size) | |
12: (load (idx reg reg $scale) $size) | |
13: (store (addr reg $ofs) reg $size) | |
14: (local) | |
15: (tc) | |
16: (load (addr reg $ofs) $size) | |
17: (load (addr reg $ofs) $size) | |
18: (const $val $size) | |
19: (load (idx reg reg $scale) $size) | |
20: (store (addr reg $ofs) reg $size) | |
21: (local) | |
22: (ucast reg $to_size $from_size) | |
23: (store (addr reg $ofs) reg $size) | |
24: (local) | |
25: (tc) | |
26: (load (addr reg $ofs) $size) | |
27: (load (addr reg $ofs) $size) | |
28: (const $val $size) | |
29: (load (idx reg reg $scale) $size) | |
30: (store (addr reg $ofs) reg $size) | |
31: (local) | |
32: (tc) | |
33: (load (addr reg $ofs) $size) | |
34: (load (addr reg $ofs) $size) | |
35: (const $val $size) | |
36: (load (idx reg reg $scale) $size) | |
37: (store (addr reg $ofs) reg $size) | |
38: (local) | |
39: (tc) | |
40: (load (addr reg $ofs) $size) | |
41: (load (addr reg $ofs) $size) | |
42: (const $val $size) | |
43: (load (idx reg reg $scale) $size) | |
44: (store (addr reg $ofs) reg $size) | |
45: (copy reg) | |
46: (load (addr reg $ofs) $size) | |
47: (discard reg) | |
48: (nz (load (addr reg $ofs) $size)) | |
49: (conditional-branch: fail) | |
-> { 1, 2 } | |
Block{1} [50-51) | |
50: (branch :after) | |
-> { 3 } | |
Block{2} [51-53) | |
51: (label :fail) | |
52: (addr reg $ofs) | |
-> { 3 } | |
Block{3} [53-60) | |
53: (branch :after) | |
54: (if flag reg) | |
55: (do void reg) | |
56: (add reg (const $val $size)) | |
57: (store reg reg $size) | |
58: (nz (and (load (addr reg $ofs) $size) (const $val $size))) | |
59: (conditional-branch :fail) | |
-> { 4, 7 } | |
Block{4} [60-62) | |
60: (nz (load (idx reg reg $scl) $size)) | |
61: (conditional-branch :fail) | |
-> { 5, 7 } | |
Block{5} [62-64) | |
62: (zr (and (load (addr reg $ofs) $size) (const $val $size))) | |
63: (conditional-branch :fail) | |
-> { 6, 7 } | |
Block{6} [64-68) | |
64: (all flag) | |
65: (tc) | |
66: (arglist (carg reg)) | |
67: (callv (const_ptr $ptr) c_args) | |
-> { 7 } | |
Block{7} [68-81) | |
68: (label :fail) | |
69: (when flag void) | |
70: (dov void void) | |
71: (local) | |
72: (copy reg) | |
73: (store (addr reg $ofs) reg $size) | |
74: (local) | |
75: (tc) | |
76: (load (addr reg $ofs) $size) | |
77: (load (addr reg $ofs) $size) | |
78: (const $val $size) | |
79: (load (idx reg reg $scale) $size) | |
80: (store (addr reg $ofs) reg $size) | |
-> {} | |
End of tile list log | |
==================== | |
After: | |
Spesh of 'BUILD' (cuid: 62, file: /home/dogbert/repos/rakudo/install/bin/../share/nqp/lib/MAST/Nodes.nqp:763) | |
Callsite 0xc6cfd0 (6 args, 6 pos) | |
Positional flags: obj, obj, int, obj, obj, obj | |
BB 0 (0x7f60c8f8ef40): | |
line: 763 (pc 0) | |
Instructions: | |
no_op | |
Successors: 1 | |
Predecessors: | |
Dominance children: 1 | |
BB 1 (0x7f60c8f8efc8): | |
line: 763 (pc 0) | |
Instructions: | |
sp_getarg_o r0(2), liti16(0) # start of exprjit tree | |
sp_getarg_o r1(2), liti16(1) | |
sp_getarg_i r9(1), liti16(2) | |
trunc_i32 r2(1), r9(1) | |
sp_getarg_o r3(2), liti16(3) | |
sp_getarg_o r4(2), liti16(4) | |
sp_getarg_o r5(2), liti16(5) | |
[Annotation: INS Deopt One (idx 0 -> pc 56; line 764)] | |
[Annotation: Logged (bytecode offset 50)] | |
[Annotation: Line Number: /home/dogbert/repos/rakudo/install/bin/../share/nqp/lib/MAST/Nodes.nqp:763] | |
set r6(2), r0(2) | |
sp_p6obind_o r6(2), liti16(8), r1(2) # bindattr_o of '$!bytecode' in SubBuffer | |
[Annotation: INS Deopt One (idx 1 -> pc 84; line 765)] | |
[Annotation: Logged (bytecode offset 78)] | |
set r7(3), r0(2) | |
sp_getspeshslot r6(3), sslot(0) | |
extend_i32 r8(1), r2(1) # expr bail: Cannot get template for: extend_i32 | |
bindattr_i r7(3), r6(3), lits($!annotations-offset), r8(1), liti16(1) # JIT: not devirtualized (concreteness not sure) | |
[Annotation: INS Deopt One (idx 2 -> pc 118; line 766)] | |
[Annotation: Logged (bytecode offset 112)] | |
set r6(4), r0(2) | |
sp_p6obind_o r6(4), liti16(24), r3(2) # bindattr_o of '%!labels' in SubBuffer | |
[Annotation: INS Deopt One (idx 3 -> pc 146; line 767)] | |
[Annotation: Logged (bytecode offset 140)] | |
set r7(5), r0(2) | |
sp_p6obind_o r7(5), liti16(32), r4(2) # bindattr_o of '@!label-fixups' in SubBuffer | |
[Annotation: INS Deopt One (idx 4 -> pc 174; line 768)] | |
[Annotation: Logged (bytecode offset 168)] | |
set r6(6), r0(2) | |
sp_p6obind_o r6(6), liti16(40), r5(2) # bindattr_o of '@!handlers' in SubBuffer | |
return_o r5(2) | |
Successors: | |
Predecessors: 0 | |
Dominance children: 2 | |
Facts: | |
r0(0): usages=0, flags=0 | |
r0(1): usages=0, flags=0 DeadWriter | |
r0(2): usages=5, flags=9 KnTyp Concr (type: SubBuffer) | |
r1(0): usages=0, flags=0 | |
r1(1): usages=0, flags=0 DeadWriter | |
r1(2): usages=1, flags=9 KnTyp Concr (type: MAST::Bytecode) | |
r2(0): usages=0, flags=0 | |
r2(1): usages=1, flags=0 | |
r3(0): usages=0, flags=0 | |
r3(1): usages=0, flags=0 DeadWriter | |
r3(2): usages=1, flags=9 KnTyp Concr (type: BOOTHash) | |
r4(0): usages=0, flags=0 | |
r4(1): usages=0, flags=0 DeadWriter | |
r4(2): usages=1, flags=9 KnTyp Concr (type: BOOTIntArray) | |
r5(0): usages=0, flags=0 | |
r5(1): usages=0, flags=0 DeadWriter | |
r5(2): usages=2, flags=9 KnTyp Concr (type: NQPArray) | |
r6(0): usages=0, flags=0 | |
r6(1): usages=0, flags=0 DeadWriter | |
r6(2): usages=1, flags=9 KnTyp Concr (type: SubBuffer) | |
r6(3): usages=1, flags=19 KnTyp KnVal TyObj (type: SubBuffer) | |
r6(4): usages=1, flags=9 KnTyp Concr (type: SubBuffer) | |
r6(5): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: SubBuffer) | |
r6(6): usages=1, flags=9 KnTyp Concr (type: SubBuffer) | |
r7(0): usages=0, flags=0 | |
r7(1): usages=0, flags=0 DeadWriter | |
r7(2): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: SubBuffer) | |
r7(3): usages=1, flags=9 KnTyp Concr (type: SubBuffer) | |
r7(4): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: SubBuffer) | |
r7(5): usages=1, flags=9 KnTyp Concr (type: SubBuffer) | |
r7(6): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: SubBuffer) | |
r8(0): usages=0, flags=0 | |
r8(1): usages=1, flags=0 | |
r9(0): usages=0, flags=0 | |
r9(1): usages=1, flags=0 | |
Spesh slots: | |
0 = Type Object (SubBuffer) | |
Frame size: 206 bytes | |
Specialization took 14us (total 240us) | |
JIT was successful and compilation took 223us | |
Bytecode size: 859 byte | |
======== | |
Latest guard tree for 'BUILD' (cuid: 62, file: /home/dogbert/repos/rakudo/install/bin/../share/nqp/lib/MAST/Nodes.nqp:763) | |
0: CALLSITE 0xc6cfd0 | Y: 1, N: 0 | |
1: LOAD ARG 0 | Y: 2 | |
2: STABLE CONC SubBuffer | Y: 3, N: 0 | |
3: LOAD ARG 1 | Y: 4 | |
4: STABLE CONC MAST::Bytecode | Y: 5, N: 0 | |
5: LOAD ARG 3 | Y: 6 | |
6: STABLE CONC BOOTHash | Y: 7, N: 0 | |
7: LOAD ARG 4 | Y: 8 | |
8: STABLE CONC BOOTIntArray | Y: 9, N: 0 | |
9: LOAD ARG 5 | Y: 10 | |
10: STABLE CONC NQPArray | Y: 11, N: 0 | |
11: RESULT 0 | |
======== |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment