Skip to content

Instantly share code, notes, and snippets.

@timo
Last active August 18, 2018 15:16
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/92101baccc059067548cfed2f48af1d8 to your computer and use it in GitHub Desktop.
Save timo/92101baccc059067548cfed2f48af1d8 to your computer and use it in GitHub Desktop.
spesh comments for bindattr/getattr specialization of P6opaque
After:
Spesh of 'pull-one' (cuid: 1346, file: SETTING::src/core/Rakudo/Iterator.pm6:1721)
Callsite 0x7f44ec8e0b20 (1 args, 1 pos)
Positional flags: obj
BB 0 (0x7f44e43a9bb0):
line: 1721 (pc 0)
Instructions:
no_op
Successors: 1
Predecessors:
Dominance children: 1
BB 1 (0x7f44e43a9c38):
line: 1721 (pc 0)
Instructions:
[Annotation: INS Deopt One (idx 0 -> pc 30; line 1721)]
sp_getarg_o r0(2), liti16(0)
[Annotation: Line Number: SETTING::src/core/Rakudo/Iterator.pm6:1721]
takedispatcher r3(2)
[Annotation: FH Start (1)]
sp_p6oget_i r7(2), r0(2), liti16(8) # getattr_i of '$!i' in <anon|19>
const_i64_16 r8(1), liti16(1)
add_i r8(2), r7(2), r8(1)
sp_p6obind_i r0(2), liti16(8), r8(2) # bindattr_i of '$!i' in <anon|19>
sp_p6oget_i r7(3), r0(2), liti16(16) # getattr_i of '$!last' in <anon|19>
le_i r7(4), r8(2), r7(3)
unless_i r7(4), BB(3)
Successors: 3, 2
Predecessors: 0
Dominance children: 2
BB 2 (0x7f44e43a9e78):
line: 1721 (pc 166)
Instructions:
sp_p6oget_i r8(3), r0(2), liti16(8) # getattr_i of '$!i' in <anon|19>
sp_fastbox_bi_ic r6(3), liti16(40), sslot(5), liti16(32), r8(3), liti16(1)
goto BB(4)
Successors: 4
Predecessors: 6
Dominance children:
BB 3 (0x7f44e43a9ed8):
line: 1721 (pc 212)
Instructions:
sp_getspeshslot r6(4), sslot(3)
Successors: 4
Predecessors: 6
Dominance children:
BB 4 (0x7f44e43a9f38):
line: 1721 (pc 226)
Instructions:
PHI r6(5), r6(3), r6(4)
set r4(5), r6(5)
[Annotation: INS Deopt One (idx 1 -> pc 232; line 1721)]
/* sp_guard r4(8) r4(5); flags 0xc */
/* sp_guard r4(8) r4(5); flags 0xc */
sp_guard r11(1), r4(5), sslot(1), litui32(232)
[Annotation: FH End (0)]
[Annotation: INS Deopt One (idx 2 -> pc 250; line 1721)]
[Annotation: Logged (bytecode offset 242)]
[Annotation: INS Deopt One (idx 3 -> pc 250; line 1721)]
sp_getspeshslot r6(6), sslot(4)
Successors: 5, 8
Predecessors: 2, 3
Dominance children: 5, 8, 9
BB 5 (0x7f44e43a9f98):
line: 1721 (pc 250)
Instructions:
Successors: 6, 8
Predecessors: 4
Dominance children: 6
BB 6 (0x7f44e41d7970):
Inlined
line: 1721 (pc 0)
Instructions:
Successors: 7
Predecessors: 5
Dominance children: 7
BB 7 (0x7f44e43a9ff8):
line: 1721 (pc 266)
Instructions:
[Annotation: FH Start (0)]
[Annotation: Inline Start (0)]
[Annotation: Inline End (0)]
[Annotation: FH Goto (0)]
[Annotation: INS Deopt One (idx 4 -> pc 266; line 1721)]
set r6(7), r11(1) # sp_guardconc r6(7) r6(11); flags 0x0
goto BB(9)
Successors: 9
Predecessors: 6
Dominance children:
BB 8 (0x7f44e43aa058):
line: 1721 (pc 272)
Instructions:
[Annotation: FH Goto (1)]
[Annotation: FH End (1)]
lastexpayload r6(9)
Successors: 9
Predecessors: 4, 5
Dominance children:
BB 9 (0x7f44e43aa0b8):
line: 1721 (pc 282)
Instructions:
PHI r6(10), r6(7), r6(9)
return_o r6(10)
Successors:
Predecessors: 7, 8
Dominance children:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment