Skip to content

Instantly share code, notes, and snippets.

@MasterDuke17
Created February 17, 2022 11:15
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/33cc6edfd584c1030a752edc7ee23681 to your computer and use it in GitHub Desktop.
Save MasterDuke17/33cc6edfd584c1030a752edc7ee23681 to your computer and use it in GitHub Desktop.
Spesh of 'inc-a' (cuid: 1, file: -e:1)
Callsite 0x7f2b6edcfc90 (0 args, 0 pos)
BB 0 (0x2b590228bc8):
line: 1 (pc 0)
Instructions:
no_op
Successors: 1
Predecessors:
Dominance children: 1
BB 1 (0x2b590228c50):
line: 1 (pc 0)
Instructions:
[Annotation: Logged (bytecode offset 8)]
[Annotation: Line Number: -e:1]
sp_getlex_o r1(5), lex(idx=3,outers=1,$a) # [018] expr bail: Cannot get template for: sp_getlex_o
[Annotation: INS Deopt One After Instruction (idx 0 -> pc 16; line 1)]
sp_guardconc r1(2), r1(5), sslot(0), litui32(0)
set r0(2), r1(2)
[Annotation: Cached (bytecode offset 30)]
sp_getspeshslot r1(6), sslot(3) # [000] getlexstatic_o of lexical '&infix:<+>'
[Annotation: INS Deopt One After Instruction (idx 1 -> pc 42; line 1)]
set r1(4), r1(6) # [001] used to guard for Sub+{is-pure}+{Precedence} mixin
[Annotation: Logged (bytecode offset 42)]
sp_getlex_o r3(3), lex(idx=3,outers=1,$a)
[Annotation: INS Deopt One After Instruction (idx 2 -> pc 50; line 1)]
sp_guardconc r3(2), r3(3), sslot(0), litui32(2)
sp_getspeshslot r4(2), sslot(4)
# [004] Start of dispatch program translation
# [003] emitted from dispatch program attribute load op
sp_p6oget_o r5(0), r3(2), liti16(16)
[Annotation: INS Deopt One Before Instruction (idx 3 -> pc 58; line 1)]
sp_guardconc r8(1), r5(0), sslot(2), litui32(3)
sp_getspeshslot r6(0), sslot(5)
Successors: 2
Predecessors: 0
Dominance children: 2
BB 2 (0x2b5902307c0):
Inlined
line: 1 (pc 0)
Instructions:
Successors: 3
Predecessors: 1
Dominance children: 3
BB 3 (0x2b590230820):
Inlined
line: 1 (pc 20)
Instructions:
[Annotation: FH Start (1)]
[Annotation: Inline Start (0)]
[Annotation: INS Deopt Inline (idx 25 -> pc 194; line -1)]
sp_add_I r4(8), liti16(40), sslot(6), r8(1), r4(2), liti16(32), liti16(1) # [019] expr bail: Cannot get template for: sp_add_I
Successors: 4
Predecessors: 2
Dominance children: 4
BB 4 (0x2b590228d10):
line: 1 (pc 74)
Instructions:
[Annotation: FH End (1)]
[Annotation: FH Goto (1)]
[Annotation: Inline End (0)]
PHI r4(6), r4(8)
[Annotation: INS Deopt One After Instruction (idx 4 -> pc 74; line 1)]
# [020] start of exprjit tree
# [006] used to guard for Int
set r4(3), r4(6)
[Annotation: Logged (bytecode offset 74)]
set r4(7), r4(3)
[Annotation: INS Deopt One After Instruction (idx 6 -> pc 80; line 1)]
set r4(4), r4(7) # [007] used to guard for Int
# [011] Start of dispatch program translation
# [009] emitted from dispatch program attribute load op
sp_p6oget_o r5(2), r0(2), liti16(8)
[Annotation: INS Deopt One Before Instruction (idx 7 -> pc 80; line 1)]
sp_guardconc r5(3), r5(2), sslot(10), litui32(7)
sp_p6oget_o r6(1), r5(3), liti16(8) # [010] emitted from dispatch program attribute load op
[Annotation: INS Deopt Synth (idx 7)]
[Annotation: INS Deopt One Before Instruction (idx 27 -> pc 80; line 1)]
sp_guardobj r6(2), r6(1), sslot(7), litui32(27)
sp_getspeshslot r18(0), sslot(11)
sp_get_o r19(0), r0(2), liti16(40) # [012] Decontainerized for guarding
[Annotation: INS Deopt One Before Instruction (idx 28 -> pc 80; line 1)]
[Annotation: INS Deopt Synth (idx 7)]
sp_guardconc r19(1), r19(0), sslot(2), litui32(28)
Successors: 5
Predecessors: 3
Dominance children: 4
BB 5 (0x2b590210768):
Inlined
line: 1 (pc 0)
Instructions:
[Annotation: FH Start (0)]
[Annotation: Inline Start (1)]
# [021] start of exprjit tree
# [013] inline of '' (291) candidate 0
set r20(1), r0(2)
[Annotation: INS Deopt One After Instruction (idx 10 -> pc 104; line 1)]
sp_bind_o r20(1), liti16(40), r4(4)
Successors: 6
Predecessors: 4
Dominance children: 6
BB 6 (0x2b590228dd0):
line: 1 (pc 92)
Instructions:
[Annotation: FH End (0)]
[Annotation: FH Goto (0)]
[Annotation: Inline End (1)]
# [022] start of exprjit tree
# [017] Start of dispatch program translation
# [015] emitted from dispatch program attribute load op
sp_p6oget_o r5(4), r0(2), liti16(8)
[Annotation: INS Deopt One Before Instruction (idx 9 -> pc 92; line 1)]
sp_guardjustconc r5(5), r5(4), litui32(9)
sp_p6oget_o r6(3), r0(2), liti16(16) # [016] emitted from dispatch program attribute load op
[Annotation: INS Deopt Synth (idx 9)]
[Annotation: INS Deopt One Before Instruction (idx 29 -> pc 92; line 1)]
sp_guard r4(5), r6(3), sslot(2), litui32(29)
return_o r4(5)
Successors:
Predecessors: 5
Dominance children: 6
Facts:
r0(0): usages=0, flags=0
r0(1): usages=0, flags=0 DeadWriter
r0(2): usages=5, deopt=9,7,3,2, flags=9 KnTyp Concr (type: Scalar)
r1(0): usages=0, flags=0
r1(1): usages=0, flags=0 DeadWriter
r1(2): usages=1, deopt=0, flags=9 KnTyp Concr (type: Scalar)
r1(3): usages=0, flags=11 KnTyp KnVal Concr (type: Sub+{is-pure}+{Precedence} mixin)
r1(4): usages=0, deopt=3,2, flags=11 KnTyp KnVal Concr (type: Sub+{is-pure}+{Precedence} mixin)
r1(5): usages=1, deopt=0, flags=0
r1(6): usages=1, deopt=2,3, flags=11 KnTyp KnVal Concr (type: Sub+{is-pure}+{Precedence} mixin)
r2(0): usages=0, flags=0
r2(1): usages=0, flags=2 KnVal DeadWriter
r3(0): usages=0, flags=0
r3(1): usages=0, flags=0 DeadWriter
r3(2): usages=1, deopt=3,2, flags=9 KnTyp Concr (type: Scalar)
r3(3): usages=1, deopt=2,3, flags=0
r4(0): usages=0, flags=0
r4(1): usages=0, flags=0 DeadWriter
r4(2): usages=1, deopt=3, flags=11 KnTyp KnVal Concr (type: Int)
r4(3): usages=1, deopt=3, flags=9 KnTyp Concr (type: Int)
r4(4): usages=1, deopt=7, flags=9 KnTyp Concr (type: Int)
r4(5): usages=1, deopt=9, flags=1 KnTyp (type: Int)
r4(6): usages=1, deopt=3, flags=9 KnTyp Concr (merged from 1 regs) (type: Int)
r4(7): usages=1, deopt=7, flags=9 KnTyp Concr (type: Int)
r4(8): usages=1, deopt=3, flags=9 KnTyp Concr (type: Int)
r5(0): usages=1, flags=0
r5(1): usages=0, flags=9 KnTyp Concr (type: Int)
r5(2): usages=1, flags=0
r5(3): usages=1, flags=9 KnTyp Concr (type: ContainerDescriptor)
r5(4): usages=1, flags=0
r5(5): usages=0, flags=8 Concr
r6(0): usages=0, deopt=-1, flags=11 KnTyp KnVal Concr (type: BOOTCode)
r6(1): usages=1, flags=0
r6(2): usages=0, flags=2 KnVal
r6(3): usages=1, flags=0
r6(4): usages=0, flags=1 KnTyp (type: Int)
r7(0): usages=0, flags=0 DeadWriter
r8(0): usages=0, flags=0
r8(1): usages=1, flags=9 KnTyp Concr (type: Int)
r9(0): usages=0, flags=0
r9(1): usages=0, flags=11 KnTyp KnVal Concr DeadWriter (type: Int)
r10(0): usages=0, flags=0
r11(0): usages=0, flags=0
r12(0): usages=0, flags=0
r13(0): usages=0, flags=0
r14(0): usages=0, flags=0
r14(1): usages=0, flags=9 KnTyp Concr (type: Int)
r15(0): usages=0, flags=0
r16(0): usages=0, flags=0
r17(0): usages=0, flags=0
r18(0): usages=0, deopt=-1, flags=11 KnTyp KnVal Concr (type: BOOTCode)
r19(0): usages=1, flags=0
r19(1): usages=0, flags=0
r20(0): usages=0, flags=0
r20(1): usages=1, flags=9 KnTyp Concr (type: Scalar)
r21(0): usages=0, flags=0
r21(1): usages=0, flags=9 KnTyp Concr DeadWriter (type: Int)
r22(0): usages=0, flags=0
Spesh slots:
0 = STable (Scalar)
1 = STable (Sub+{is-pure}+{Precedence} mixin)
2 = STable (Int)
3 = Instance (Sub+{is-pure}+{Precedence} mixin)
4 = Instance (Int)
5 = Instance (BOOTCode) - 'infix:<+>' (3626)
6 = STable (Int)
7 = Type Object (Int)
8 = Instance (BOOTStaticFrame) - 'infix:<+>' (3626)
9 = Type Object (Int:D)
10 = STable (ContainerDescriptor)
11 = Instance (BOOTCode) - '' (291)
12 = Type Object (Scalar)
Frame size: 352 bytes (44 from inlined frames)
Specialization took 45us (total 220us)
JIT was successful and compilation took 171us
Bytecode size: 1755 byte
========
Latest guard tree for 'inc-a' (cuid: 1, file: -e:1)
0: CALLSITE 0x7f2b6edcfc90 | Y: 1, N: 0
1: RESULT 0
========
Spesh of 'inc-a' (cuid: 1, file: -e:1)
Callsite 0x7f955640fc90 (0 args, 0 pos)
BB 0 (0x371389a0ad8):
line: 1 (pc 0)
Instructions:
no_op
Successors: 1
Predecessors:
Dominance children: 1
BB 1 (0x371389a0b60):
line: 1 (pc 0)
Instructions:
[Annotation: Logged (bytecode offset 8)]
[Annotation: Line Number: -e:1]
sp_getlex_o r1(5), lex(idx=3,outers=1,$a) # [011] expr bail: Cannot get template for: sp_getlex_o
[Annotation: INS Deopt One After Instruction (idx 0 -> pc 16; line 1)]
sp_guardconc r1(2), r1(5), sslot(0), litui32(0)
set r0(2), r1(2)
[Annotation: Logged (bytecode offset 22)]
sp_getlex_o r1(6), lex(idx=3,outers=1,$a)
[Annotation: INS Deopt One After Instruction (idx 1 -> pc 30; line 1)]
sp_guardconc r1(3), r1(6), sslot(0), litui32(1)
[Annotation: Logged (bytecode offset 30)]
sp_get_o r1(7), r1(3), liti16(40)
[Annotation: INS Deopt One After Instruction (idx 2 -> pc 36; line 1)]
sp_guardconc r1(4), r1(7), sslot(1), litui32(2)
sp_getspeshslot r2(2), sslot(2)
sp_add_I r3(6), liti16(40), sslot(1), r1(4), r2(2), liti16(32), liti16(1)
[Annotation: INS Deopt One After Instruction (idx 3 -> pc 68; line 1)]
set r3(4), r3(6) # [000] used to guard for Int
# [004] Start of dispatch program translation
# [002] emitted from dispatch program attribute load op
sp_p6oget_o r4(0), r0(2), liti16(8)
[Annotation: INS Deopt One Before Instruction (idx 4 -> pc 68; line 1)]
sp_guardconc r4(1), r4(0), sslot(4), litui32(4)
sp_p6oget_o r5(0), r4(1), liti16(8) # [003] emitted from dispatch program attribute load op
[Annotation: INS Deopt Synth (idx 4)]
[Annotation: INS Deopt One Before Instruction (idx 9 -> pc 68; line 1)]
sp_guardobj r5(1), r5(0), sslot(3), litui32(9)
sp_getspeshslot r6(0), sslot(5)
sp_get_o r7(0), r0(2), liti16(40) # [005] Decontainerized for guarding
[Annotation: INS Deopt One Before Instruction (idx 10 -> pc 68; line 1)]
[Annotation: INS Deopt Synth (idx 4)]
sp_guardconc r7(1), r7(0), sslot(1), litui32(10)
Successors: 2
Predecessors: 0
Dominance children: 2
BB 2 (0x371389a8768):
Inlined
line: 1 (pc 0)
Instructions:
[Annotation: FH Start (0)]
[Annotation: Inline Start (0)]
# [012] start of exprjit tree
# [006] inline of '' (291) candidate 0
set r8(1), r0(2)
[Annotation: INS Deopt One After Instruction (idx 7 -> pc 92; line 1)]
sp_bind_o r8(1), liti16(40), r3(4)
Successors: 3
Predecessors: 1
Dominance children: 3
BB 3 (0x371389a0c80):
line: 1 (pc 80)
Instructions:
[Annotation: FH End (0)]
[Annotation: FH Goto (0)]
[Annotation: Inline End (0)]
# [013] start of exprjit tree
# [010] Start of dispatch program translation
# [008] emitted from dispatch program attribute load op
sp_p6oget_o r4(2), r0(2), liti16(8)
[Annotation: INS Deopt One Before Instruction (idx 6 -> pc 80; line 1)]
sp_guardjustconc r4(3), r4(2), litui32(6)
sp_p6oget_o r5(2), r0(2), liti16(16) # [009] emitted from dispatch program attribute load op
[Annotation: INS Deopt Synth (idx 6)]
[Annotation: INS Deopt One Before Instruction (idx 11 -> pc 80; line 1)]
sp_guard r3(5), r5(2), sslot(1), litui32(11)
return_o r3(5)
Successors:
Predecessors: 2
Dominance children: 5
Facts:
r0(0): usages=0, flags=0
r0(1): usages=0, flags=0 DeadWriter
r0(2): usages=5, deopt=6,4,2,1, flags=9 KnTyp Concr (type: Scalar)
r1(0): usages=0, flags=0
r1(1): usages=0, flags=0 DeadWriter
r1(2): usages=1, deopt=0, flags=9 KnTyp Concr (type: Scalar)
r1(3): usages=1, deopt=1, flags=9 KnTyp Concr (type: Scalar)
r1(4): usages=1, deopt=2, flags=9 KnTyp Concr (type: Int)
r1(5): usages=1, deopt=0, flags=0
r1(6): usages=1, deopt=1, flags=0
r1(7): usages=1, deopt=2, flags=0
r2(0): usages=0, flags=0
r2(1): usages=0, flags=0 DeadWriter
r2(2): usages=1, flags=11 KnTyp KnVal Concr (type: Int)
r3(0): usages=0, flags=0
r3(1): usages=0, flags=0 DeadWriter
r3(2): usages=0, flags=19 KnTyp KnVal TyObj DeadWriter (type: Int)
r3(3): usages=0, flags=9 KnTyp Concr (type: Int)
r3(4): usages=1, deopt=4, flags=9 KnTyp Concr (type: Int)
r3(5): usages=1, deopt=6, flags=1 KnTyp (type: Int)
r3(6): usages=1, deopt=4, flags=9 KnTyp Concr (type: Int)
r4(0): usages=1, flags=0
r4(1): usages=1, flags=9 KnTyp Concr (type: ContainerDescriptor)
r4(2): usages=1, flags=0
r4(3): usages=0, flags=8 Concr
r5(0): usages=1, flags=0
r5(1): usages=0, flags=2 KnVal
r5(2): usages=1, flags=0
r5(3): usages=0, flags=1 KnTyp (type: Int)
r6(0): usages=0, deopt=-1, flags=11 KnTyp KnVal Concr (type: BOOTCode)
r7(0): usages=1, flags=0
r7(1): usages=0, flags=0
r8(0): usages=0, flags=0
r8(1): usages=1, flags=9 KnTyp Concr (type: Scalar)
r9(0): usages=0, flags=0
r9(1): usages=0, flags=9 KnTyp Concr DeadWriter (type: Int)
r10(0): usages=0, flags=0
Spesh slots:
0 = STable (Scalar)
1 = STable (Int)
2 = Instance (Int)
3 = Type Object (Int)
4 = STable (ContainerDescriptor)
5 = Instance (BOOTCode) - '' (291)
6 = Type Object (Scalar)
Frame size: 306 bytes (22 from inlined frames)
Specialization took 31us (total 141us)
JIT was successful and compilation took 107us
Bytecode size: 1443 byte
========
Latest guard tree for 'inc-a' (cuid: 1, file: -e:1)
0: CALLSITE 0x7f955640fc90 | Y: 1, N: 0
1: RESULT 0
========
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment