Skip to content

Instantly share code, notes, and snippets.

@timo
Created March 19, 2018 20:08
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 timo/ed27b750840ed15f69d6a837ba4f925f to your computer and use it in GitHub Desktop.
Save timo/ed27b750840ed15f69d6a837ba4f925f to your computer and use it in GitHub Desktop.
Specialization of 'infix:<+>' (cuid: 3196)
Before:
Spesh of 'infix:<+>' (cuid: 3196, file: SETTING::src/core/Int.pm6:253)
BB 0 (0x7f71fc144e38):
line: 253 (pc 0)
Instructions:
no_op
Successors: 1
Predecessors:
Dominance children: 1
BB 1 (0x7f71fc144ec0):
line: 253 (pc 0)
Instructions:
null r8(1)
null r7(1)
null r6(1)
null r5(1)
null r4(1)
null r3(1)
null r2(1)
null r1(1)
null r0(1)
checkarity liti16(2), liti16(2)
param_rp_o r2(2), liti16(0)
hllize r5(2), r2(2)
Successors: 2
Predecessors: 0
Dominance children: 2
BB 2 (0x7f71fc144f20):
line: 253 (pc 18)
Instructions:
set r2(3), r5(2)
[Annotation: INS Deopt One (idx 0 -> pc 30; line 253)]
decont r5(3), r2(3)
Successors: 3
Predecessors: 1
Dominance children: 3
BB 3 (0x7f71fc144f80):
line: 253 (pc 30)
Instructions:
wval r8(2), liti16(1), liti16(37) (P6opaque: Int)
istype r10(1), r5(3), r8(2)
Successors: 4
Predecessors: 2
Dominance children: 4
BB 4 (0x7f71fc144fe0):
line: 253 (pc 46)
Instructions:
assertparamcheck r10(1)
Successors: 5
Predecessors: 3
Dominance children: 5
BB 5 (0x7f71fc145040):
line: 253 (pc 50)
Instructions:
[Annotation: INS Deopt One (idx 1 -> pc 56; line 253)]
decont r8(3), r2(3)
Successors: 6
Predecessors: 4
Dominance children: 6
BB 6 (0x7f71fc1450a0):
line: 253 (pc 56)
Instructions:
isconcrete r10(2), r8(3)
assertparamcheck r10(2)
Successors: 7
Predecessors: 5
Dominance children: 7
BB 7 (0x7f71fc145100):
line: 253 (pc 66)
Instructions:
set r0(2), r2(3)
param_rp_o r3(2), liti16(1)
hllize r8(4), r3(2)
Successors: 8
Predecessors: 6
Dominance children: 8
BB 8 (0x7f71fc145160):
line: 253 (pc 84)
Instructions:
set r3(3), r8(4)
[Annotation: INS Deopt One (idx 2 -> pc 96; line 253)]
decont r8(5), r3(3)
Successors: 9
Predecessors: 7
Dominance children: 9
BB 9 (0x7f71fc1451c0):
line: 253 (pc 96)
Instructions:
wval r5(4), liti16(1), liti16(37) (P6opaque: Int)
istype r10(3), r8(5), r5(4)
Successors: 10
Predecessors: 8
Dominance children: 10
BB 10 (0x7f71fc145220):
line: 253 (pc 112)
Instructions:
assertparamcheck r10(3)
Successors: 11
Predecessors: 9
Dominance children: 11
BB 11 (0x7f71fc145280):
line: 253 (pc 116)
Instructions:
[Annotation: INS Deopt One (idx 3 -> pc 122; line 253)]
decont r5(5), r3(3)
Successors: 12
Predecessors: 10
Dominance children: 12
BB 12 (0x7f71fc1452e0):
line: 253 (pc 122)
Instructions:
isconcrete r10(4), r5(5)
assertparamcheck r10(4)
Successors: 13
Predecessors: 11
Dominance children: 13
BB 13 (0x7f71fc145340):
line: 253 (pc 132)
Instructions:
set r1(2), r3(3)
paramnamesused
[Annotation: Line Number: SETTING::src/core/Int.pm6:253]
takedispatcher r4(2)
[Annotation: INS Deopt One (idx 4 -> pc 150; line 254)]
[Annotation: Line Number: SETTING::src/core/Int.pm6:254]
decont r5(6), r0(2)
Successors: 14
Predecessors: 12
Dominance children: 14
BB 14 (0x7f71fc1453a0):
line: 254 (pc 150)
Instructions:
[Annotation: INS Deopt One (idx 5 -> pc 156; line 254)]
decont r6(2), r1(2)
Successors: 15
Predecessors: 13
Dominance children: 15
BB 15 (0x7f71fc145400):
line: 254 (pc 156)
Instructions:
wval r7(2), liti16(1), liti16(37) (P6opaque: Int)
add_I r7(3), r5(6), r6(2), r7(2)
wval r6(3), liti16(1), liti16(37) (P6opaque: Int)
[Annotation: INS Deopt One (idx 6 -> pc 188; line 254)]
decont r8(6), r7(3)
Successors: 16
Predecessors: 14
Dominance children: 16
BB 16 (0x7f71fc145460):
line: 254 (pc 188)
Instructions:
istype r9(1), r8(6), r6(3)
Successors: 17
Predecessors: 15
Dominance children: 17
BB 17 (0x7f71fc1454c0):
line: 254 (pc 196)
Instructions:
unless_i r9(1), BB(19)
Successors: 19, 18
Predecessors: 16
Dominance children: 18, 19, 22
BB 18 (0x7f71fc145520):
line: 254 (pc 204)
Instructions:
isconcrete r10(5), r8(6)
if_i r10(5), BB(22)
Successors: 22, 19
Predecessors: 17
Dominance children:
BB 19 (0x7f71fc145580):
line: 254 (pc 218)
Instructions:
PHI r10(6), r10(4), r10(5)
wval r5(7), liti16(1), liti16(21) (P6opaque: Nil)
istype r9(2), r8(6), r5(7)
Successors: 20
Predecessors: 17, 18
Dominance children: 20
BB 20 (0x7f71fc1455e0):
line: 254 (pc 234)
Instructions:
if_i r9(2), BB(22)
Successors: 22, 21
Predecessors: 19
Dominance children: 21
BB 21 (0x7f71fc145640):
line: 254 (pc 242)
Instructions:
wval r5(8), liti16(4), liti16(8) (not deserialized)
[Annotation: INS Deopt One (idx 7 -> pc 250; line 254)]
prepargs callsite(0x7f72078bcfa0, 2 arg, 2 pos, nonflattening, interned)
arg_o liti16(0), r7(3)
arg_o liti16(1), r6(3)
[Annotation: INS Deopt All (idx 8 -> pc 270; line 254)]
invoke_v r5(8)
Successors: 22
Predecessors: 20
Dominance children:
BB 22 (0x7f71fc1456a0):
line: 254 (pc 270)
Instructions:
PHI r10(7), r10(5), r10(6), r10(6)
PHI r9(3), r9(1), r9(2), r9(2)
PHI r5(9), r5(6), r5(7), r5(8)
return_o r7(3)
Successors:
Predecessors: 18, 20, 21
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
r2(2): usages=0, flags=0
r2(3): usages=0, flags=0
r3(0): usages=0, flags=0
r3(1): usages=0, flags=0
r3(2): usages=0, flags=0
r3(3): 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
r5(3): usages=0, flags=0
r5(4): usages=0, flags=0
r5(5): usages=0, flags=0
r5(6): usages=0, flags=0
r5(7): usages=0, flags=0
r5(8): usages=0, flags=0
r5(9): 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
r7(0): usages=0, flags=0
r7(1): usages=0, flags=0
r7(2): usages=0, flags=0
r7(3): usages=0, flags=0
r8(0): usages=0, flags=0
r8(1): usages=0, flags=0
r8(2): usages=0, flags=0
r8(3): usages=0, flags=0
r8(4): usages=0, flags=0
r8(5): usages=0, flags=0
r8(6): usages=0, flags=0
r9(0): usages=0, flags=0
r9(1): usages=0, flags=0
r9(2): usages=0, flags=0
r9(3): usages=0, flags=0
r10(0): usages=0, flags=0
r10(1): usages=0, flags=0
r10(2): usages=0, flags=0
r10(3): usages=0, flags=0
r10(4): usages=0, flags=0
r10(5): usages=0, flags=0
r10(6): usages=0, flags=0
r10(7): usages=0, flags=0
After:
Spesh of 'infix:<+>' (cuid: 3196, file: SETTING::src/core/Int.pm6:253)
Callsite 0x7f72078bcfa0 (2 args, 2 pos)
Positional flags: obj, obj
BB 0 (0x7f71fc144e38):
line: 253 (pc 0)
Instructions:
no_op
Successors: 1
Predecessors:
Dominance children: 1
BB 1 (0x7f71fc144ec0):
line: 253 (pc 0)
Instructions:
sp_getarg_o r2(3), liti16(0)
sp_p6oget_o r5(3), r2(3), liti16(16)
sp_p6oget_o r8(3), r2(3), liti16(16)
set r0(2), r2(3)
sp_getarg_o r3(3), liti16(1)
sp_p6oget_o r8(5), r3(3), liti16(16)
sp_p6oget_o r5(5), r3(3), liti16(16)
const_i64_16 r10(4), liti16(1)
set r1(2), r3(3)
[Annotation: Line Number: SETTING::src/core/Int.pm6:253]
takedispatcher r4(2)
[Annotation: Line Number: SETTING::src/core/Int.pm6:254]
sp_p6oget_o r5(6), r0(2), liti16(16)
sp_p6oget_o r6(2), r1(2), liti16(16)
wval r7(2), liti16(1), liti16(37) (P6opaque: Int)
add_I r7(3), r5(6), r6(2), r7(2)
wval r6(3), liti16(1), liti16(37) (P6opaque: Int)
[Annotation: INS Deopt One (idx 6 -> pc 188; line 254)]
set r8(6), r7(3)
Successors: 2
Predecessors: 0
Dominance children: 2
BB 2 (0x7f71fc1456a0):
line: 254 (pc 270)
Instructions:
return_o r7(3)
Successors:
Predecessors: 1
Dominance children:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment