Skip to content

Instantly share code, notes, and snippets.

@ipeychev
Created May 24, 2015 20:58
Show Gist options
  • Save ipeychev/cfb5100753ad6509360f to your computer and use it in GitHub Desktop.
Save ipeychev/cfb5100753ad6509360f to your computer and use it in GitHub Desktop.
begin_compilation
name "y"
method "y:0"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 14
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 3 t1 Context type:Tagged <|@
0 7 t2 Parameter 0 type:Tagged <|@
0 0 t3 ArgumentsObject t2 type:Tagged <|@
0 0 v5 Simulate id=2 var[1] = t1, var[0] = t2 type:Tagged <|@
0 0 v6 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:0] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-1]= [hir:t2] <|@
10 gap () ([stack:-1];) () () [hir:t2] <|@
12 gap () () () () [hir:v6] <|@
14 goto B1 [hir:v6] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 16
last_lir_id 46
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v7 BlockEntry type:Tagged <|@
0 0 v8 Simulate id=3 type:Tagged <|@
0 0 v9 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t11 CheckHeapObject t2 pos:16 <|@
0 0 t12 CheckMaps t2 [0x591d200e399] pos:16 <|@
0 1 d13 LoadNamedField t2._y[in-object]@32 type:Tagged pos:16 <|@
0 1 t17 Change d13 d to t changes[NewSpacePromotion] pos:5 <|@
0 1 s18 Constant 0 type:Smi pos:5 <|@
0 0 v15 Return t17 (pop s18 values) type:Tagged pos:5 <|@
end_HIR
begin_LIR
16 label () () () () [hir:v7] <|@
18 gap () ([rsi|R] = [rax|R];) () () [hir:v7] <|@
20 stack-check = [rsi|R] [id=3|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] {[rsi|R];[stack:0]} [hir:v9] <|@
22 gap () () () () [hir:v9] <|@
24 lazy-bailout = [id=3|deopt_id=0|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] [hir:v9] <|@
26 gap () () ([rax|R] = [stack:-1];) () [hir:v9] <|@
28 check-non-smi = [rax|R] [id=3|deopt_id=1|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t11] <|@
30 gap () () () () [hir:t11] <|@
32 check-maps = [rax|R] [id=3|deopt_id=2|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t12] <|@
34 gap () () () () [hir:t12] <|@
36 load-named-field [xmm1|R]= [rax|R] [hir:d13] <|@
38 gap ((0) = [xmm1|R];) () () () [hir:d13] <|@
40 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t17] <|@
42 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t17] <|@
44 return = [rax|R] NULL [constant:18] [hir:v15] <|@
46 gap () () () () [hir:v15] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "len"
method "len:1"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 18
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 0 t5 Constant 0x72389304121 <undefined> [map 0x371978043c1] <|@
0 3 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 21 t3 Parameter 1 type:Tagged <|@
0 0 t4 ArgumentsObject t2 t3 type:Tagged <|@
0 0 v6 Simulate id=2 var[2] = t1, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v7 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:0] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-2]= [hir:t2] <|@
10 gap () ([stack:-2];) () () [hir:t2] <|@
12 parameter [stack:-1]= [hir:t3] <|@
14 gap () ([stack:-1];) () () [hir:t3] <|@
16 gap () () () () [hir:v7] <|@
18 goto B1 [hir:v7] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 20
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v8 BlockEntry type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t12 CheckHeapObject t3 pos:247 <|@
0 0 t13 CheckMaps t3 [0x591d200e399] pos:247 <|@
0 2 t14 Constant 0x24b8160d0f09 <an Object with map 0x591d200e291> [map 0x591d200e291] [new space] pos:247 <|@
0 0 t15 CheckMaps t14 [0x591d200e291](stability-check) pos:247 <|@
0 1 t16 Constant 0x19d452643469 <JS Function Vec2.len (SharedFunctionInfo 0x19d452642ee9)> pos:247 <|@
0 6 t17 Constant 0x72389374189 <FixedArray[115]> pos:1_0 <|@
0 0 t18 ArgumentsObject t3 type:Tagged pos:1_0 <|@
0 0 v19 Simulate id=-1 push t16, push t3 type:Tagged pos:1_0 <|@
0 0 v20 EnterInlined Vec2.len type:Tagged pos:1_0 <|@
0 3 t21 Constant 0x72389394509 <a MathConstructor with map 0x3719780a3a9> [map 0x3719780a3a9] pos:1_16 <|@
0 0 t22 CheckMaps t21 [0x3719780a3a9](stability-check) pos:1_21 <|@
0 1 t23 Constant 0x72389394c31 <JS Function sqrt (SharedFunctionInfo 0x7238934adb9)> [map 0x371978069e9] pos:1_21 <|@
0 1 t28 Constant 0x19d452643421 <JS Function Vec2.len2 (SharedFunctionInfo 0x19d452642e59)> pos:1_31 <|@
0 0 t30 ArgumentsObject t3 type:Tagged pos:2_0 <|@
0 0 v31 Simulate id=-1 var[1] = t17, push t23, push t21, push t28, push t3 type:Tagged pos:2_0 <|@
0 0 v32 EnterInlined Vec2.len2 type:Tagged pos:2_0 <|@
0 0 t38 ArgumentsObject t3 type:Tagged pos:3_0 <|@
0 0 v39 Simulate id=-1 var[1] = t17, push t3 type:Tagged pos:3_0 <|@
0 0 v40 EnterInlined x type:Tagged pos:3_0 <|@
0 4 d42 LoadNamedField t3._x[in-object]@24 type:Tagged pos:3_16 <|@
0 0 v43 LeaveInlined type:Tagged pos:3_5 <|@
0 0 v44 Simulate id=12 push d42 type:Tagged pos:3_5 <|@
0 0 v45 Goto B2 type:Tagged pos:3_5 <|@
end_HIR
begin_LIR
20 label () () () () [hir:v8] <|@
22 gap () ([rsi|R] = [rax|R];) () () [hir:v8] <|@
24 stack-check = [rsi|R] [id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:0]] {[rsi|R];[stack:0]} [hir:v10] <|@
26 gap () () () () [hir:v10] <|@
28 lazy-bailout = [id=3|deopt_id=0|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:0]] [hir:v10] <|@
30 gap () () ([rax|R] = [stack:-1];) () [hir:v10] <|@
32 check-non-smi = [rax|R] [id=3|deopt_id=1|parameters=2|arguments_stack_height=0|[stack:-2];[rax|R];[stack:0]] [hir:t12] <|@
34 gap () () () () [hir:t12] <|@
36 check-maps = [rax|R] [id=3|deopt_id=2|parameters=2|arguments_stack_height=0|[stack:-2];[rax|R];[stack:0]] [hir:t13] <|@
38 gap () () () () [hir:t13] <|@
40 check-maps = NULL [hir:t15] <|@
42 gap () () () () [hir:t15] <|@
44 check-maps = NULL [hir:t22] <|@
46 gap () () () () [hir:t22] <|@
48 load-named-field [xmm1|R]= [rax|R] [hir:d42] <|@
50 gap ((0) = [xmm1|R];) () () () [hir:d42] <|@
52 gap () () () () [hir:v45] <|@
54 goto B2 [hir:v45] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B3"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 56
last_lir_id 62
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v46 BlockEntry type:Tagged pos:2_29 <|@
0 0 t52 ArgumentsObject t3 type:Tagged pos:4_0 <|@
0 0 v53 Simulate id=-1 push t3 type:Tagged pos:4_0 <|@
0 0 v54 EnterInlined x type:Tagged pos:4_0 <|@
0 0 v57 LeaveInlined type:Tagged pos:4_5 <|@
0 0 v58 Simulate id=21 push d42 type:Tagged pos:4_5 <|@
0 0 v59 Goto B3 type:Tagged pos:4_5 <|@
end_HIR
begin_LIR
56 label () () () () Dead block replaced with B3 [hir:v46] <|@
58 gap () () () () [hir:v46] <|@
60 gap () () () () [hir:v59] <|@
62 goto B3 [hir:v59] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors "B4"
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 64
last_lir_id 78
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v60 BlockEntry type:Tagged pos:2_23 <|@
0 3 d61 Mul d42 d42 ! type:TaggedNumber pos:2_23 <|@
0 0 v62 Simulate id=8 pop 2 / push d61 type:Tagged pos:2_23 <|@
0 0 t68 ArgumentsObject t3 type:Tagged pos:5_0 <|@
0 0 v69 Simulate id=-1 pop 1 / push d61, push t3 type:Tagged pos:5_0 <|@
0 0 v70 EnterInlined y type:Tagged pos:5_0 <|@
0 4 d72 LoadNamedField t3._y[in-object]@32 type:Tagged pos:5_16 <|@
0 0 v73 LeaveInlined type:Tagged pos:5_5 <|@
0 0 v74 Simulate id=34 push d72 type:Tagged pos:5_5 <|@
0 0 v75 Goto B4 type:Tagged pos:5_5 <|@
end_HIR
begin_LIR
64 label () () () () [hir:v60] <|@
66 gap () ([xmm2|R] = [xmm1|R];) () () [hir:v60] <|@
68 mul-d [xmm2|R]= [xmm2|R] [xmm1|R] [hir:d61] <|@
70 gap ((0) = [xmm2|R];) () () () [hir:d61] <|@
72 load-named-field [xmm1|R]= [rax|R] [hir:d72] <|@
74 gap ((0) = [xmm1|R];) () () () [hir:d72] <|@
76 gap () () () () [hir:v75] <|@
78 goto B4 [hir:v75] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3"
successors "B5"
xhandlers
flags
dominator "B3"
loop_depth 0
first_lir_id 80
last_lir_id 86
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v76 BlockEntry type:Tagged pos:2_47 <|@
0 0 t82 ArgumentsObject t3 type:Tagged pos:6_0 <|@
0 0 v83 Simulate id=-1 push t3 type:Tagged pos:6_0 <|@
0 0 v84 EnterInlined y type:Tagged pos:6_0 <|@
0 0 v87 LeaveInlined type:Tagged pos:6_5 <|@
0 0 v88 Simulate id=43 push d72 type:Tagged pos:6_5 <|@
0 0 v89 Goto B5 type:Tagged pos:6_5 <|@
end_HIR
begin_LIR
80 label () () () () Dead block replaced with B5 [hir:v76] <|@
82 gap () () () () [hir:v76] <|@
84 gap () () () () [hir:v89] <|@
86 goto B5 [hir:v89] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4"
successors "B6"
xhandlers
flags
dominator "B4"
loop_depth 0
first_lir_id 88
last_lir_id 102
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v90 BlockEntry type:Tagged pos:2_41 <|@
0 2 d91 Mul d72 d72 ! type:TaggedNumber pos:2_41 <|@
0 0 v92 Simulate id=30 pop 2 / push d91 type:Tagged pos:2_41 <|@
0 2 d93 Add d61 d91 ! type:TaggedNumber pos:2_32 <|@
0 0 v95 LeaveInlined type:Tagged pos:2_9 <|@
0 0 v96 Simulate id=17 pop 1 / push d93 type:Tagged pos:2_9 <|@
0 0 v97 Goto B6 type:Tagged pos:2_9 <|@
end_HIR
begin_LIR
88 label () () () () [hir:v90] <|@
90 gap () ([xmm3|R] = [xmm1|R];) () () [hir:v90] <|@
92 mul-d [xmm3|R]= [xmm3|R] [xmm1|R] [hir:d91] <|@
94 gap ((0) = [xmm3|R];) ([xmm2|R];) () () [hir:d91] <|@
96 add-d [xmm2|R]= [xmm2|R] [xmm3|R] [hir:d93] <|@
98 gap ((0) = [xmm2|R];) () () () [hir:d93] <|@
100 gap () () () () [hir:v97] <|@
102 goto B6 [hir:v97] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B7"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 104
last_lir_id 114
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v98 BlockEntry type:Tagged pos:1_21 <|@
0 2 d99 UnaryMathOperation sqrt d93 type:TaggedNumber pos:1_21 <|@
0 0 v100 LeaveInlined type:Tagged pos:1_9 <|@
0 0 v101 Simulate id=4 pop 1 / push d99 type:Tagged pos:1_9 <|@
0 0 v102 Goto B7 type:Tagged pos:1_9 <|@
end_HIR
begin_LIR
104 label () () () () [hir:v98] <|@
106 gap () () () () [hir:v98] <|@
108 math-sqrt [xmm1|R]= [xmm2|R] [hir:d99] <|@
110 gap ((0) = [xmm1|R];) () () () [hir:d99] <|@
112 gap () () () () [hir:v102] <|@
114 goto B7 [hir:v102] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 116
last_lir_id 126
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v103 BlockEntry type:Tagged pos:238 <|@
0 1 t107 Change d99 d to t changes[NewSpacePromotion] pos:238 <|@
0 1 s108 Constant 1 type:Smi pos:238 <|@
0 0 v105 Return t107 (pop s108 values) type:Tagged pos:238 <|@
end_HIR
begin_LIR
116 label () () () () [hir:v103] <|@
118 gap () () () () [hir:v103] <|@
120 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t107] <|@
122 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t107] <|@
124 return = [rax|R] NULL [constant:108] [hir:v105] <|@
126 gap () () () () [hir:v105] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "loop"
method "loop:2"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 18
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 1 i166 Constant 1 type:Smi <|@
0 1 t15 Constant 0x72389304161 <true> [map 0x371978044c9] <|@
0 4 t5 Constant 0x72389304121 <undefined> [map 0x371978043c1] <|@
0 3 t1 Context type:Tagged <|@
0 3 t2 Parameter 0 type:Tagged <|@
0 3 t3 Parameter 1 type:Tagged <|@
0 0 t4 ArgumentsObject t2 t3 type:Tagged <|@
0 0 v6 Simulate id=2 var[4] = t5, var[3] = t5, var[2] = t1, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v7 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:2] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-2]= [hir:t2] <|@
10 gap () ([stack:-2];) () () [hir:t2] <|@
12 parameter [stack:-1]= [hir:t3] <|@
14 gap () ([stack:-1];) () () [hir:t3] <|@
16 gap () () () () [hir:v7] <|@
18 goto B1 [hir:v7] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B3" "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 20
last_lir_id 34
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v8 BlockEntry type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 3 i11 Constant 0 type:Smi pos:18 <|@
0 0 v16 Branch t15 goto (B3, B2) (None) type:Tagged pos:23 <|@
end_HIR
begin_LIR
20 label () () () () [hir:v8] <|@
22 gap () ([rsi|R] = [rax|R];) () () [hir:v8] <|@
24 stack-check = [rsi|R] [id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:2];[constant:5];[constant:5]] {[rsi|R];[stack:2]} [hir:v10] <|@
26 gap () () () () [hir:v10] <|@
28 lazy-bailout = [id=3|deopt_id=0|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:2];[constant:5];[constant:5]] [hir:v10] <|@
30 gap () () () () [hir:v10] <|@
32 gap () () () () [hir:v16] <|@
34 goto B3 [hir:v16] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B4"
xhandlers
flags "osr"
dominator "B1"
loop_depth 0
first_lir_id 36
last_lir_id 78
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v20 BlockEntry type:Tagged pos:23 <|@
0 2 t21 UnknownOSRValue parameter @ 0 type:Tagged pos:23 <|@
0 2 t22 UnknownOSRValue parameter @ 1 type:Tagged pos:23 <|@
0 1 t23 UnknownOSRValue special @ 2 type:Tagged pos:23 <|@
0 2 t24 UnknownOSRValue local @ 3 type:Tagged pos:23 <|@
0 2 t25 UnknownOSRValue local @ 4 type:Tagged pos:23 <|@
0 0 v26 Simulate id=22 var[4] = t25, var[3] = t24, var[2] = t23, var[1] = t22, var[0] = t21 type:Tagged pos:23 <|@
0 0 v27 OsrEntry changes[NewSpacePromotion,OsrEntries] type:Tagged pos:23 <|@
0 2 t28 Context type:Tagged pos:23 <|@
0 0 v29 Simulate id=20 var[2] = t28 type:Tagged pos:23 <|@
0 1 d177 Change t24 t to d type:TaggedNumber pos:23 <|@
0 1 i178 Change t25 t to i type:TaggedNumber pos:23 <|@
0 0 v30 Goto B4 type:Tagged pos:23 <|@
end_HIR
begin_LIR
36 label () () () () [hir:v20] <|@
38 gap () () () () [hir:v20] <|@
40 unknown-osr-value [stack:-2]= [hir:t21] <|@
42 gap () ([stack:-2];) () () [hir:t21] <|@
44 unknown-osr-value [stack:-1]= [hir:t22] <|@
46 gap () ([stack:-1];) () () [hir:t22] <|@
48 unknown-osr-value [stack:-1]= [hir:t23] <|@
50 gap () ([stack:-1];) () () [hir:t23] <|@
52 unknown-osr-value [stack:0]= [hir:t24] <|@
54 gap () ([stack:0];) () () [hir:t24] <|@
56 unknown-osr-value [stack:1]= [hir:t25] <|@
58 gap () ([stack:1];) () () [hir:t25] <|@
60 osr-entry = [id=22|deopt_id=1|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:-1];[stack:0];[stack:1]] [hir:v27] <|@
62 gap () () () () [hir:v27] <|@
64 context [rax|R]= [hir:t28] <|@
66 gap ((0) = [rax|R];) () ([rbx|R] = [stack:0];) () [hir:t28] <|@
68 double-untag [xmm2|R]= [rbx|R] [id=20|deopt_id=2|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[rax|R];[rbx|R];[stack:1]] [hir:d177] <|@
70 gap ((0) = [xmm2|R];) ([rdx|R] = [stack:1];) () () [hir:d177] <|@
72 tagged-to-i [rdx|R]= [rdx|R] [id=20|deopt_id=6|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[rax|R];[rbx|R];[stack:1]] [hir:i178] <|@
74 gap ((0) = [rdx|R];) () () () [hir:i178] <|@
76 gap () ([rcx|R] = [stack:-2]; [rdx|R] = [stack:-1]; [rbx|R] = [rax|R]; [xmm1|R] = [xmm2|R]; [rax|R] = [rdx|R];) () () [hir:v30] <|@
78 goto B4 [hir:v30] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B1"
successors "B4"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 80
last_lir_id 90
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v17 BlockEntry type:Tagged pos:23 <|@
0 0 v18 Simulate id=20 var[4] = i11, var[3] = i11 type:Tagged pos:23 <|@
0 1 d176 Constant 0 type:Smi pos:23 <|@
0 0 v19 Goto B4 type:Tagged pos:23 <|@
end_HIR
begin_LIR
80 label () () () () [hir:v17] <|@
82 gap () () () () [hir:v17] <|@
84 constant-d [xmm1|R]= [hir:d176] <|@
86 gap ((0) = [xmm1|R];) () () () [hir:d176] <|@
88 gap () ([rcx|R] = [stack:-2]; [rdx|R] = [stack:-1]; [rbx|R] = [stack:2]; [xmm1|R]; [rax|R] = [constant:11];) () () [hir:v19] <|@
90 goto B4 [hir:v19] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3" "B2"
successors "B5"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 92
last_lir_id 138
begin_states
begin_locals
size 5
method "None"
0 t31 [ t2 t21 uses:0_0s_0i_0d_0t type:Tagged]
1 t32 [ t3 t22 uses:21_0s_0i_0d_0t type:Tagged]
2 t33 [ t1 t28 uses:4_0s_0i_0d_2t type:Tagged]
3 d34 [ d176 d177 uses:1_0s_0i_1d_0t type:TaggedNumber]
4 i35 [ i11 i178 uses:1_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v41 BlockEntry type:Tagged pos:23 <|@
0 0 v42 Simulate id=20 type:Tagged pos:23 <|@
0 1 i47 Constant 100000 type:Smi pos:43 <|@
0 1 t59 Constant 0x19d452643261 <JS Function len (SharedFunctionInfo 0x19d452642c89)> pos:60 <|@
0 2 t61 Constant 0x24b8170041a1 <JS Global Object> [map 0x3719780bf81] [new space] pos:60 <|@
0 7 t62 Constant 0x72389374189 <FixedArray[115]> pos:1_0 <|@
0 0 t66 CheckHeapObject t32 pos:1_247 <|@
0 0 t67 CheckMaps t32 [0x591d200e399] pos:1_247 <|@
0 2 t68 Constant 0x24b817077a99 <an Object with map 0x591d200e291> [map 0x591d200e291] [new space] pos:1_247 <|@
0 0 t69 CheckMaps t68 [0x591d200e291](stability-check) pos:1_247 <|@
0 1 t70 Constant 0x19d452643469 <JS Function Vec2.len (SharedFunctionInfo 0x19d452642ee9)> pos:1_247 <|@
0 3 t75 Constant 0x72389394509 <a MathConstructor with map 0x3719780a3a9> [map 0x3719780a3a9] pos:2_16 <|@
0 0 t76 CheckMaps t75 [0x3719780a3a9](stability-check) pos:2_21 <|@
0 1 t77 Constant 0x72389394c31 <JS Function sqrt (SharedFunctionInfo 0x7238934adb9)> [map 0x371978069e9] pos:2_21 <|@
0 1 t82 Constant 0x19d452643421 <JS Function Vec2.len2 (SharedFunctionInfo 0x19d452642e59)> pos:2_31 <|@
0 4 d96 LoadNamedField t32._x[in-object]@24 type:Tagged pos:4_16 <|@
0 3 d115 Mul d96 d96 ! type:TaggedNumber pos:3_23 <|@
0 4 d126 LoadNamedField t32._y[in-object]@32 type:Tagged pos:6_16 <|@
0 2 d145 Mul d126 d126 ! type:TaggedNumber pos:3_41 <|@
0 2 d147 Add d115 d145 ! type:TaggedNumber pos:3_32 <|@
0 3 d153 UnaryMathOperation sqrt d147 type:TaggedNumber pos:2_21 <|@
0 0 v43 Goto B5 type:Tagged pos:23 <|@
end_HIR
begin_LIR
92 label () ((0) = [rcx|R]; (0) = [rdx|R]; (0) = [rbx|R]; (0) = [xmm1|R]; (0) = [rax|R];) () () [hir:v41] <|@
94 gap () () () () [hir:v41] <|@
96 check-non-smi = [rdx|R] [id=20|deopt_id=3|parameters=2|arguments_stack_height=0|[rcx|R];[rdx|R];[rbx|R];[xmm1|R];[rax|R]] [hir:t66] <|@
98 gap () () () () [hir:t66] <|@
100 check-maps = [rdx|R] [id=20|deopt_id=4|parameters=2|arguments_stack_height=0|[rcx|R];[rdx|R];[rbx|R];[xmm1|R];[rax|R]] [hir:t67] <|@
102 gap () () () () [hir:t67] <|@
104 check-maps = NULL [hir:t69] <|@
106 gap () () () () [hir:t69] <|@
108 check-maps = NULL [hir:t76] <|@
110 gap () () () () [hir:t76] <|@
112 load-named-field [xmm2|R]= [rdx|R] [hir:d96] <|@
114 gap ((0) = [xmm2|R];) ([xmm3|R] = [xmm2|R];) () () [hir:d96] <|@
116 mul-d [xmm3|R]= [xmm3|R] [xmm2|R] [hir:d115] <|@
118 gap ((0) = [xmm3|R];) () () () [hir:d115] <|@
120 load-named-field [xmm2|R]= [rdx|R] [hir:d126] <|@
122 gap ((0) = [xmm2|R];) ([xmm4|R] = [xmm2|R];) () () [hir:d126] <|@
124 mul-d [xmm4|R]= [xmm4|R] [xmm2|R] [hir:d145] <|@
126 gap ((0) = [xmm4|R];) ([xmm3|R];) () () [hir:d145] <|@
128 add-d [xmm3|R]= [xmm3|R] [xmm4|R] [hir:d147] <|@
130 gap ((0) = [xmm3|R];) () () () [hir:d147] <|@
132 math-sqrt [xmm2|R]= [xmm3|R] [hir:d153] <|@
134 gap ((0) = [xmm2|R];) () () () [hir:d153] <|@
136 gap () ([xmm1|R]; [rax|R];) () () [hir:v43] <|@
138 goto B5 [hir:v43] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4" "B14"
successors "B6" "B15"
xhandlers
flags "dom-loop-succ"
dominator "B4"
loop_depth 1
first_lir_id 140
last_lir_id 146
begin_states
begin_locals
size 2
method "None"
3 d39 [ d34 d162 uses:3_0s_0i_1d_0t type:TaggedNumber]
4 i40 [ i35 i167 uses:2_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v44 BlockEntry type:Tagged pos:39 <|@
0 0 i48 CompareNumericAndBranch LT i40 i47 goto (B6, B15) type:Tagged pos:41 <|@
end_HIR
begin_LIR
140 label () ((0) = [xmm1|R]; (0) = [rax|R];) () () [hir:v44] <|@
142 gap () () () () [hir:v44] <|@
144 gap () () () () [hir:i48] <|@
146 compare-numeric-and-branch if [rax|R] < [constant:47] then B6 else B15 [hir:i48] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B7"
xhandlers
flags "dom-loop-succ"
dominator "B5"
loop_depth 1
first_lir_id 148
last_lir_id 154
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v49 BlockEntry type:Tagged pos:41 <|@
0 0 v50 Simulate id=24 type:Tagged pos:41 <|@
0 0 v51 Goto B7 type:Tagged pos:41 <|@
end_HIR
begin_LIR
148 label () () () () Dead block replaced with B7 [hir:v49] <|@
150 gap () () () () [hir:v49] <|@
152 gap () () () () [hir:v51] <|@
154 goto B7 [hir:v51] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors "B8"
xhandlers
flags "dom-loop-succ"
dominator "B6"
loop_depth 1
first_lir_id 156
last_lir_id 166
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v55 BlockEntry type:Tagged pos:23 <|@
0 0 v56 Simulate id=24 type:Tagged pos:23 <|@
0 0 v57 StackCheck t33 changes[NewSpacePromotion] type:Tagged pos:23 <|@
0 0 t63 ArgumentsObject t61 t32 type:Tagged pos:1_0 <|@
0 0 v64 Simulate id=-1 var[3] = t5, push d39, push t59, push t61, push t32 type:Tagged pos:1_0 <|@
0 0 v65 EnterInlined len type:Tagged pos:1_0 <|@
0 0 t72 ArgumentsObject t32 type:Tagged pos:2_0 <|@
0 0 v73 Simulate id=-1 var[2] = t62, push t70, push t32 type:Tagged pos:2_0 <|@
0 0 v74 EnterInlined Vec2.len type:Tagged pos:2_0 <|@
0 0 t84 ArgumentsObject t32 type:Tagged pos:3_0 <|@
0 0 v85 Simulate id=-1 var[1] = t62, push t77, push t75, push t82, push t32 type:Tagged pos:3_0 <|@
0 0 v86 EnterInlined Vec2.len2 type:Tagged pos:3_0 <|@
0 0 t92 ArgumentsObject t32 type:Tagged pos:4_0 <|@
0 0 v93 Simulate id=-1 var[1] = t62, push t32 type:Tagged pos:4_0 <|@
0 0 v94 EnterInlined x type:Tagged pos:4_0 <|@
0 0 v97 LeaveInlined type:Tagged pos:4_5 <|@
0 0 v98 Simulate id=12 push d96 type:Tagged pos:4_5 <|@
0 0 v99 Goto B8 type:Tagged pos:4_5 <|@
end_HIR
begin_LIR
156 label () () () () [hir:v55] <|@
158 gap () () () () [hir:v55] <|@
160 stack-check = [rbx|R] [id=24|deopt_id=5|parameters=2|arguments_stack_height=0|[rcx|R];[rdx|R];[rbx|R];[xmm1|R];[rax|R]] {[rcx|R];[rdx|R];[rbx|R]} [hir:v57] <|@
162 gap () () () () [hir:v57] <|@
164 gap () () () () [hir:v99] <|@
166 goto B8 [hir:v99] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B7"
successors "B9"
xhandlers
flags "dom-loop-succ"
dominator "B7"
loop_depth 1
first_lir_id 168
last_lir_id 174
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v100 BlockEntry type:Tagged pos:3_29 <|@
0 0 t106 ArgumentsObject t32 type:Tagged pos:5_0 <|@
0 0 v107 Simulate id=-1 push t32 type:Tagged pos:5_0 <|@
0 0 v108 EnterInlined x type:Tagged pos:5_0 <|@
0 0 v111 LeaveInlined type:Tagged pos:5_5 <|@
0 0 v112 Simulate id=21 push d96 type:Tagged pos:5_5 <|@
0 0 v113 Goto B9 type:Tagged pos:5_5 <|@
end_HIR
begin_LIR
168 label () () () () Dead block replaced with B9 [hir:v100] <|@
170 gap () () () () [hir:v100] <|@
172 gap () () () () [hir:v113] <|@
174 goto B9 [hir:v113] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B8"
successors "B10"
xhandlers
flags "dom-loop-succ"
dominator "B8"
loop_depth 1
first_lir_id 176
last_lir_id 182
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v114 BlockEntry type:Tagged pos:3_23 <|@
0 0 v116 Simulate id=8 pop 2 / push d115 type:Tagged pos:3_23 <|@
0 0 t122 ArgumentsObject t32 type:Tagged pos:6_0 <|@
0 0 v123 Simulate id=-1 pop 1 / push d115, push t32 type:Tagged pos:6_0 <|@
0 0 v124 EnterInlined y type:Tagged pos:6_0 <|@
0 0 v127 LeaveInlined type:Tagged pos:6_5 <|@
0 0 v128 Simulate id=34 push d126 type:Tagged pos:6_5 <|@
0 0 v129 Goto B10 type:Tagged pos:6_5 <|@
end_HIR
begin_LIR
176 label () () () () Dead block replaced with B10 [hir:v114] <|@
178 gap () () () () [hir:v114] <|@
180 gap () () () () [hir:v129] <|@
182 goto B10 [hir:v129] <|@
end_LIR
end_block
begin_block
name "B10"
from_bci -1
to_bci -1
predecessors "B9"
successors "B11"
xhandlers
flags "dom-loop-succ"
dominator "B9"
loop_depth 1
first_lir_id 184
last_lir_id 190
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v130 BlockEntry type:Tagged pos:3_47 <|@
0 0 t136 ArgumentsObject t32 type:Tagged pos:7_0 <|@
0 0 v137 Simulate id=-1 push t32 type:Tagged pos:7_0 <|@
0 0 v138 EnterInlined y type:Tagged pos:7_0 <|@
0 0 v141 LeaveInlined type:Tagged pos:7_5 <|@
0 0 v142 Simulate id=43 push d126 type:Tagged pos:7_5 <|@
0 0 v143 Goto B11 type:Tagged pos:7_5 <|@
end_HIR
begin_LIR
184 label () () () () Dead block replaced with B11 [hir:v130] <|@
186 gap () () () () [hir:v130] <|@
188 gap () () () () [hir:v143] <|@
190 goto B11 [hir:v143] <|@
end_LIR
end_block
begin_block
name "B11"
from_bci -1
to_bci -1
predecessors "B10"
successors "B12"
xhandlers
flags "dom-loop-succ"
dominator "B10"
loop_depth 1
first_lir_id 192
last_lir_id 198
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v144 BlockEntry type:Tagged pos:3_41 <|@
0 0 v146 Simulate id=30 pop 2 / push d145 type:Tagged pos:3_41 <|@
0 0 v149 LeaveInlined type:Tagged pos:3_9 <|@
0 0 v150 Simulate id=17 pop 1 / push d147 type:Tagged pos:3_9 <|@
0 0 v151 Goto B12 type:Tagged pos:3_9 <|@
end_HIR
begin_LIR
192 label () () () () Dead block replaced with B12 [hir:v144] <|@
194 gap () () () () [hir:v144] <|@
196 gap () () () () [hir:v151] <|@
198 goto B12 [hir:v151] <|@
end_LIR
end_block
begin_block
name "B12"
from_bci -1
to_bci -1
predecessors "B11"
successors "B13"
xhandlers
flags "dom-loop-succ"
dominator "B11"
loop_depth 1
first_lir_id 200
last_lir_id 206
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v152 BlockEntry type:Tagged pos:2_21 <|@
0 0 v154 LeaveInlined type:Tagged pos:2_9 <|@
0 0 v155 Simulate id=4 pop 1 / push d153 type:Tagged pos:2_9 <|@
0 0 v156 Goto B13 type:Tagged pos:2_9 <|@
end_HIR
begin_LIR
200 label () () () () Dead block replaced with B13 [hir:v152] <|@
202 gap () () () () [hir:v152] <|@
204 gap () () () () [hir:v156] <|@
206 goto B13 [hir:v156] <|@
end_LIR
end_block
begin_block
name "B13"
from_bci -1
to_bci -1
predecessors "B12"
successors "B14"
xhandlers
flags "dom-loop-succ"
dominator "B12"
loop_depth 1
first_lir_id 208
last_lir_id 214
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v157 BlockEntry type:Tagged pos:1_238 <|@
0 0 v158 LeaveInlined type:Tagged pos:1_238 <|@
0 0 v159 Simulate id=73 pop 1 / push d153 type:Tagged pos:1_238 <|@
0 0 v160 Goto B14 type:Tagged pos:1_238 <|@
end_HIR
begin_LIR
208 label () () () () Dead block replaced with B14 [hir:v157] <|@
210 gap () () () () [hir:v157] <|@
212 gap () () () () [hir:v160] <|@
214 goto B14 [hir:v160] <|@
end_LIR
end_block
begin_block
name "B14"
from_bci -1
to_bci -1
predecessors "B13"
successors "B5"
xhandlers
flags "dom-loop-succ"
dominator "B13"
loop_depth 1
first_lir_id 216
last_lir_id 230
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v161 BlockEntry type:Tagged pos:58 <|@
0 3 d162 Add d39 d153 ! type:TaggedNumber pos:58 <|@
0 0 v163 Simulate id=57 pop 2 / push d162 type:Tagged pos:58 <|@
0 2 i167 Add i40 i166 type:TaggedNumber pos:49 <|@
0 0 v169 Simulate id=20 pop 1 / var[4] = i167, var[3] = d162 type:Tagged pos:23 <|@
0 0 v170 Goto B5 type:Tagged pos:23 <|@
end_HIR
begin_LIR
216 label () () () () [hir:v161] <|@
218 gap () ([xmm1|R];) () () [hir:v161] <|@
220 add-d [xmm1|R]= [xmm1|R] [xmm2|R] [hir:d162] <|@
222 gap ((0) = [xmm1|R];) () () () [hir:d162] <|@
224 add-i [rax|R]= [rax|R] [constant:166] [hir:i167] <|@
226 gap ((0) = [rax|R];) () () () [hir:i167] <|@
228 gap () ([xmm1|R]; [rax|R];) () () [hir:v170] <|@
230 goto B5 [hir:v170] <|@
end_LIR
end_block
begin_block
name "B15"
from_bci -1
to_bci -1
predecessors "B5"
successors "B16"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 232
last_lir_id 238
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v52 BlockEntry type:Tagged pos:41 <|@
0 0 v53 Simulate id=21 var[4] = t5 type:Tagged pos:41 <|@
0 0 v54 Goto B16 type:Tagged pos:41 <|@
end_HIR
begin_LIR
232 label () () () () Dead block replaced with B16 [hir:v52] <|@
234 gap () () () () [hir:v52] <|@
236 gap () () () () [hir:v54] <|@
238 goto B16 [hir:v54] <|@
end_LIR
end_block
begin_block
name "B16"
from_bci -1
to_bci -1
predecessors "B15"
successors
xhandlers
flags
dominator "B15"
loop_depth 0
first_lir_id 240
last_lir_id 250
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v171 BlockEntry type:Tagged pos:77 <|@
0 1 t179 Change d39 d to t changes[NewSpacePromotion] pos:70 <|@
0 1 s180 Constant 1 type:Smi pos:70 <|@
0 0 v174 Return t179 (pop s180 values) type:Tagged pos:70 <|@
end_HIR
begin_LIR
240 label () () () () [hir:v171] <|@
242 gap () () () () [hir:v171] <|@
244 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t179] <|@
246 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t179] <|@
248 return = [rax|R] NULL [constant:180] [hir:v174] <|@
250 gap () () () () [hir:v174] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "Vec2.len"
method "Vec2.len:3"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 14
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 0 t4 Constant 0x72389304121 <undefined> [map 0x371978043c1] <|@
0 4 t1 Context type:Tagged <|@
0 19 t2 Parameter 0 type:Tagged <|@
0 0 t3 ArgumentsObject t2 type:Tagged <|@
0 0 v5 Simulate id=2 var[1] = t1, var[0] = t2 type:Tagged <|@
0 0 v6 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:0] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-1]= [hir:t2] <|@
10 gap () ([stack:-1];) () () [hir:t2] <|@
12 gap () () () () [hir:v6] <|@
14 goto B1 [hir:v6] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 16
last_lir_id 50
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v7 BlockEntry type:Tagged <|@
0 0 v8 Simulate id=3 type:Tagged <|@
0 0 v9 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 3 t10 Constant 0x72389394509 <a MathConstructor with map 0x3719780a3a9> [map 0x3719780a3a9] pos:16 <|@
0 0 t11 CheckMaps t10 [0x3719780a3a9](stability-check) pos:21 <|@
0 1 t12 Constant 0x72389394c31 <JS Function sqrt (SharedFunctionInfo 0x7238934adb9)> [map 0x371978069e9] pos:21 <|@
0 0 t14 CheckHeapObject t2 pos:31 <|@
0 0 t15 CheckMaps t2 [0x591d200e399] pos:31 <|@
0 2 t16 Constant 0x24b817077a99 <an Object with map 0x591d200e291> [map 0x591d200e291] [new space] pos:31 <|@
0 0 t17 CheckMaps t16 [0x591d200e291](stability-check) pos:31 <|@
0 1 t18 Constant 0x19d452643421 <JS Function Vec2.len2 (SharedFunctionInfo 0x19d452642e59)> pos:31 <|@
0 4 t19 Constant 0x72389374189 <FixedArray[115]> pos:1_0 <|@
0 0 t20 ArgumentsObject t2 type:Tagged pos:1_0 <|@
0 0 v21 Simulate id=-1 push t12, push t10, push t18, push t2 type:Tagged pos:1_0 <|@
0 0 v22 EnterInlined Vec2.len2 type:Tagged pos:1_0 <|@
0 0 t28 ArgumentsObject t2 type:Tagged pos:2_0 <|@
0 0 v29 Simulate id=-1 var[1] = t19, push t2 type:Tagged pos:2_0 <|@
0 0 v30 EnterInlined x type:Tagged pos:2_0 <|@
0 4 d32 LoadNamedField t2._x[in-object]@24 type:Tagged pos:2_16 <|@
0 0 v33 LeaveInlined type:Tagged pos:2_5 <|@
0 0 v34 Simulate id=12 push d32 type:Tagged pos:2_5 <|@
0 0 v35 Goto B2 type:Tagged pos:2_5 <|@
end_HIR
begin_LIR
16 label () () () () [hir:v7] <|@
18 gap () ([rsi|R] = [rax|R];) () () [hir:v7] <|@
20 stack-check = [rsi|R] [id=3|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] {[rsi|R];[stack:0]} [hir:v9] <|@
22 gap () () () () [hir:v9] <|@
24 lazy-bailout = [id=3|deopt_id=0|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] [hir:v9] <|@
26 gap () () () () [hir:v9] <|@
28 check-maps = NULL [hir:t11] <|@
30 gap () () ([rax|R] = [stack:-1];) () [hir:t11] <|@
32 check-non-smi = [rax|R] [id=3|deopt_id=1|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t14] <|@
34 gap () () () () [hir:t14] <|@
36 check-maps = [rax|R] [id=3|deopt_id=2|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t15] <|@
38 gap () () () () [hir:t15] <|@
40 check-maps = NULL [hir:t17] <|@
42 gap () () () () [hir:t17] <|@
44 load-named-field [xmm1|R]= [rax|R] [hir:d32] <|@
46 gap ((0) = [xmm1|R];) () () () [hir:d32] <|@
48 gap () () () () [hir:v35] <|@
50 goto B2 [hir:v35] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B3"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 52
last_lir_id 58
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v36 BlockEntry type:Tagged pos:1_29 <|@
0 0 t42 ArgumentsObject t2 type:Tagged pos:3_0 <|@
0 0 v43 Simulate id=-1 push t2 type:Tagged pos:3_0 <|@
0 0 v44 EnterInlined x type:Tagged pos:3_0 <|@
0 0 v47 LeaveInlined type:Tagged pos:3_5 <|@
0 0 v48 Simulate id=21 push d32 type:Tagged pos:3_5 <|@
0 0 v49 Goto B3 type:Tagged pos:3_5 <|@
end_HIR
begin_LIR
52 label () () () () Dead block replaced with B3 [hir:v36] <|@
54 gap () () () () [hir:v36] <|@
56 gap () () () () [hir:v49] <|@
58 goto B3 [hir:v49] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors "B4"
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 60
last_lir_id 74
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v50 BlockEntry type:Tagged pos:1_23 <|@
0 3 d51 Mul d32 d32 ! type:TaggedNumber pos:1_23 <|@
0 0 v52 Simulate id=8 pop 2 / push d51 type:Tagged pos:1_23 <|@
0 0 t58 ArgumentsObject t2 type:Tagged pos:4_0 <|@
0 0 v59 Simulate id=-1 pop 1 / push d51, push t2 type:Tagged pos:4_0 <|@
0 0 v60 EnterInlined y type:Tagged pos:4_0 <|@
0 4 d62 LoadNamedField t2._y[in-object]@32 type:Tagged pos:4_16 <|@
0 0 v63 LeaveInlined type:Tagged pos:4_5 <|@
0 0 v64 Simulate id=34 push d62 type:Tagged pos:4_5 <|@
0 0 v65 Goto B4 type:Tagged pos:4_5 <|@
end_HIR
begin_LIR
60 label () () () () [hir:v50] <|@
62 gap () ([xmm2|R] = [xmm1|R];) () () [hir:v50] <|@
64 mul-d [xmm2|R]= [xmm2|R] [xmm1|R] [hir:d51] <|@
66 gap ((0) = [xmm2|R];) () () () [hir:d51] <|@
68 load-named-field [xmm1|R]= [rax|R] [hir:d62] <|@
70 gap ((0) = [xmm1|R];) () () () [hir:d62] <|@
72 gap () () () () [hir:v65] <|@
74 goto B4 [hir:v65] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3"
successors "B5"
xhandlers
flags
dominator "B3"
loop_depth 0
first_lir_id 76
last_lir_id 82
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v66 BlockEntry type:Tagged pos:1_47 <|@
0 0 t72 ArgumentsObject t2 type:Tagged pos:5_0 <|@
0 0 v73 Simulate id=-1 push t2 type:Tagged pos:5_0 <|@
0 0 v74 EnterInlined y type:Tagged pos:5_0 <|@
0 0 v77 LeaveInlined type:Tagged pos:5_5 <|@
0 0 v78 Simulate id=43 push d62 type:Tagged pos:5_5 <|@
0 0 v79 Goto B5 type:Tagged pos:5_5 <|@
end_HIR
begin_LIR
76 label () () () () Dead block replaced with B5 [hir:v66] <|@
78 gap () () () () [hir:v66] <|@
80 gap () () () () [hir:v79] <|@
82 goto B5 [hir:v79] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4"
successors "B6"
xhandlers
flags
dominator "B4"
loop_depth 0
first_lir_id 84
last_lir_id 98
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v80 BlockEntry type:Tagged pos:1_41 <|@
0 2 d81 Mul d62 d62 ! type:TaggedNumber pos:1_41 <|@
0 0 v82 Simulate id=30 pop 2 / push d81 type:Tagged pos:1_41 <|@
0 2 d83 Add d51 d81 ! type:TaggedNumber pos:1_32 <|@
0 0 v85 LeaveInlined type:Tagged pos:1_9 <|@
0 0 v86 Simulate id=17 pop 1 / push d83 type:Tagged pos:1_9 <|@
0 0 v87 Goto B6 type:Tagged pos:1_9 <|@
end_HIR
begin_LIR
84 label () () () () [hir:v80] <|@
86 gap () ([xmm3|R] = [xmm1|R];) () () [hir:v80] <|@
88 mul-d [xmm3|R]= [xmm3|R] [xmm1|R] [hir:d81] <|@
90 gap ((0) = [xmm3|R];) ([xmm2|R];) () () [hir:d81] <|@
92 add-d [xmm2|R]= [xmm2|R] [xmm3|R] [hir:d83] <|@
94 gap ((0) = [xmm2|R];) () () () [hir:d83] <|@
96 gap () () () () [hir:v87] <|@
98 goto B6 [hir:v87] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 100
last_lir_id 114
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v88 BlockEntry type:Tagged pos:21 <|@
0 1 d89 UnaryMathOperation sqrt d83 type:TaggedNumber pos:21 <|@
0 1 t93 Change d89 d to t changes[NewSpacePromotion] pos:9 <|@
0 1 s94 Constant 0 type:Smi pos:9 <|@
0 0 v91 Return t93 (pop s94 values) type:Tagged pos:9 <|@
end_HIR
begin_LIR
100 label () () () () [hir:v88] <|@
102 gap () () () () [hir:v88] <|@
104 math-sqrt [xmm1|R]= [xmm2|R] [hir:d89] <|@
106 gap ((0) = [xmm1|R];) () () () [hir:d89] <|@
108 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t93] <|@
110 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t93] <|@
112 return = [rax|R] NULL [constant:94] [hir:v91] <|@
114 gap () () () () [hir:v91] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "Vec2.len2"
method "Vec2.len2:4"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 14
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 0 t4 Constant 0x72389304121 <undefined> [map 0x371978043c1] <|@
0 6 t1 Context type:Tagged <|@
0 17 t2 Parameter 0 type:Tagged <|@
0 0 t3 ArgumentsObject t2 type:Tagged <|@
0 0 v5 Simulate id=2 var[1] = t1, var[0] = t2 type:Tagged <|@
0 0 v6 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:0] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-1]= [hir:t2] <|@
10 gap () ([stack:-1];) () () [hir:t2] <|@
12 gap () () () () [hir:v6] <|@
14 goto B1 [hir:v6] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 16
last_lir_id 46
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v7 BlockEntry type:Tagged <|@
0 0 v8 Simulate id=3 type:Tagged <|@
0 0 v9 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t11 CheckHeapObject t2 pos:20 <|@
0 0 t12 CheckMaps t2 [0x591d200e399] pos:20 <|@
0 2 t13 Constant 0x24b817077a99 <an Object with map 0x591d200e291> [map 0x591d200e291] [new space] pos:20 <|@
0 0 t14 CheckMaps t13 [0x591d200e291](stability-check) pos:20 <|@
0 0 t16 ArgumentsObject t2 type:Tagged pos:1_0 <|@
0 0 v17 Simulate id=-1 push t2 type:Tagged pos:1_0 <|@
0 0 v18 EnterInlined x type:Tagged pos:1_0 <|@
0 4 d20 LoadNamedField t2._x[in-object]@24 type:Tagged pos:1_16 <|@
0 0 v21 LeaveInlined type:Tagged pos:1_5 <|@
0 0 v22 Simulate id=12 push d20 type:Tagged pos:1_5 <|@
0 0 v23 Goto B2 type:Tagged pos:1_5 <|@
end_HIR
begin_LIR
16 label () () () () [hir:v7] <|@
18 gap () ([rsi|R] = [rax|R];) () () [hir:v7] <|@
20 stack-check = [rsi|R] [id=3|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] {[rsi|R];[stack:0]} [hir:v9] <|@
22 gap () () () () [hir:v9] <|@
24 lazy-bailout = [id=3|deopt_id=0|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] [hir:v9] <|@
26 gap () () ([rax|R] = [stack:-1];) () [hir:v9] <|@
28 check-non-smi = [rax|R] [id=3|deopt_id=1|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t11] <|@
30 gap () () () () [hir:t11] <|@
32 check-maps = [rax|R] [id=3|deopt_id=2|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t12] <|@
34 gap () () () () [hir:t12] <|@
36 check-maps = NULL [hir:t14] <|@
38 gap () () () () [hir:t14] <|@
40 load-named-field [xmm1|R]= [rax|R] [hir:d20] <|@
42 gap ((0) = [xmm1|R];) () () () [hir:d20] <|@
44 gap () () () () [hir:v23] <|@
46 goto B2 [hir:v23] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B3"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 48
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v24 BlockEntry type:Tagged pos:29 <|@
0 0 t30 ArgumentsObject t2 type:Tagged pos:2_0 <|@
0 0 v31 Simulate id=-1 push t2 type:Tagged pos:2_0 <|@
0 0 v32 EnterInlined x type:Tagged pos:2_0 <|@
0 0 v35 LeaveInlined type:Tagged pos:2_5 <|@
0 0 v36 Simulate id=21 push d20 type:Tagged pos:2_5 <|@
0 0 v37 Goto B3 type:Tagged pos:2_5 <|@
end_HIR
begin_LIR
48 label () () () () Dead block replaced with B3 [hir:v24] <|@
50 gap () () () () [hir:v24] <|@
52 gap () () () () [hir:v37] <|@
54 goto B3 [hir:v37] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors "B4"
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 56
last_lir_id 70
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v38 BlockEntry type:Tagged pos:23 <|@
0 3 d39 Mul d20 d20 ! type:TaggedNumber pos:23 <|@
0 0 v40 Simulate id=8 pop 2 / push d39 type:Tagged pos:23 <|@
0 0 t46 ArgumentsObject t2 type:Tagged pos:3_0 <|@
0 0 v47 Simulate id=-1 pop 1 / push d39, push t2 type:Tagged pos:3_0 <|@
0 0 v48 EnterInlined y type:Tagged pos:3_0 <|@
0 4 d50 LoadNamedField t2._y[in-object]@32 type:Tagged pos:3_16 <|@
0 0 v51 LeaveInlined type:Tagged pos:3_5 <|@
0 0 v52 Simulate id=34 push d50 type:Tagged pos:3_5 <|@
0 0 v53 Goto B4 type:Tagged pos:3_5 <|@
end_HIR
begin_LIR
56 label () () () () [hir:v38] <|@
58 gap () ([xmm2|R] = [xmm1|R];) () () [hir:v38] <|@
60 mul-d [xmm2|R]= [xmm2|R] [xmm1|R] [hir:d39] <|@
62 gap ((0) = [xmm2|R];) () () () [hir:d39] <|@
64 load-named-field [xmm1|R]= [rax|R] [hir:d50] <|@
66 gap ((0) = [xmm1|R];) () () () [hir:d50] <|@
68 gap () () () () [hir:v53] <|@
70 goto B4 [hir:v53] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3"
successors "B5"
xhandlers
flags
dominator "B3"
loop_depth 0
first_lir_id 72
last_lir_id 78
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v54 BlockEntry type:Tagged pos:47 <|@
0 0 t60 ArgumentsObject t2 type:Tagged pos:4_0 <|@
0 0 v61 Simulate id=-1 push t2 type:Tagged pos:4_0 <|@
0 0 v62 EnterInlined y type:Tagged pos:4_0 <|@
0 0 v65 LeaveInlined type:Tagged pos:4_5 <|@
0 0 v66 Simulate id=43 push d50 type:Tagged pos:4_5 <|@
0 0 v67 Goto B5 type:Tagged pos:4_5 <|@
end_HIR
begin_LIR
72 label () () () () Dead block replaced with B5 [hir:v54] <|@
74 gap () () () () [hir:v54] <|@
76 gap () () () () [hir:v67] <|@
78 goto B5 [hir:v67] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4"
successors
xhandlers
flags
dominator "B4"
loop_depth 0
first_lir_id 80
last_lir_id 98
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v68 BlockEntry type:Tagged pos:41 <|@
0 2 d69 Mul d50 d50 ! type:TaggedNumber pos:41 <|@
0 0 v70 Simulate id=30 pop 2 / push d69 type:Tagged pos:41 <|@
0 1 d71 Add d39 d69 ! type:TaggedNumber pos:32 <|@
0 1 t76 Change d71 d to t changes[NewSpacePromotion] pos:9 <|@
0 1 s77 Constant 0 type:Smi pos:9 <|@
0 0 v74 Return t76 (pop s77 values) type:Tagged pos:9 <|@
end_HIR
begin_LIR
80 label () () () () [hir:v68] <|@
82 gap () ([xmm3|R] = [xmm1|R];) () () [hir:v68] <|@
84 mul-d [xmm3|R]= [xmm3|R] [xmm1|R] [hir:d69] <|@
86 gap ((0) = [xmm3|R];) ([xmm2|R];) () () [hir:d69] <|@
88 add-d [xmm2|R]= [xmm2|R] [xmm3|R] [hir:d71] <|@
90 gap ((0) = [xmm2|R];) () () () [hir:d71] <|@
92 number-tag-d [rbx|R]= [xmm2|R] {[rbx|R]} [hir:t76] <|@
94 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t76] <|@
96 return = [rax|R] NULL [constant:77] [hir:v74] <|@
98 gap () () () () [hir:v74] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "x"
method "x:5"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 14
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 3 t1 Context type:Tagged <|@
0 7 t2 Parameter 0 type:Tagged <|@
0 0 t3 ArgumentsObject t2 type:Tagged <|@
0 0 v5 Simulate id=2 var[1] = t1, var[0] = t2 type:Tagged <|@
0 0 v6 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:0] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-1]= [hir:t2] <|@
10 gap () ([stack:-1];) () () [hir:t2] <|@
12 gap () () () () [hir:v6] <|@
14 goto B1 [hir:v6] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 16
last_lir_id 46
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v7 BlockEntry type:Tagged <|@
0 0 v8 Simulate id=3 type:Tagged <|@
0 0 v9 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t11 CheckHeapObject t2 pos:16 <|@
0 0 t12 CheckMaps t2 [0x591d200e399] pos:16 <|@
0 1 d13 LoadNamedField t2._x[in-object]@24 type:Tagged pos:16 <|@
0 1 t17 Change d13 d to t changes[NewSpacePromotion] pos:5 <|@
0 1 s18 Constant 0 type:Smi pos:5 <|@
0 0 v15 Return t17 (pop s18 values) type:Tagged pos:5 <|@
end_HIR
begin_LIR
16 label () () () () [hir:v7] <|@
18 gap () ([rsi|R] = [rax|R];) () () [hir:v7] <|@
20 stack-check = [rsi|R] [id=3|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] {[rsi|R];[stack:0]} [hir:v9] <|@
22 gap () () () () [hir:v9] <|@
24 lazy-bailout = [id=3|deopt_id=0|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] [hir:v9] <|@
26 gap () () ([rax|R] = [stack:-1];) () [hir:v9] <|@
28 check-non-smi = [rax|R] [id=3|deopt_id=1|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t11] <|@
30 gap () () () () [hir:t11] <|@
32 check-maps = [rax|R] [id=3|deopt_id=2|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t12] <|@
34 gap () () () () [hir:t12] <|@
36 load-named-field [xmm1|R]= [rax|R] [hir:d13] <|@
38 gap ((0) = [xmm1|R];) () () () [hir:d13] <|@
40 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t17] <|@
42 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t17] <|@
44 return = [rax|R] NULL [constant:18] [hir:v15] <|@
46 gap () () () () [hir:v15] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "sqrt"
method "sqrt:6"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 18
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 4 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 3 t3 Parameter 1 type:Tagged <|@
0 0 t4 ArgumentsObject t2 t3 type:Tagged <|@
0 0 v6 Simulate id=2 var[2] = t1, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v7 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:0] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-2]= [hir:t2] <|@
10 gap () ([stack:-2];) () () [hir:t2] <|@
12 parameter [stack:-1]= [hir:t3] <|@
14 gap () ([stack:-1];) () () [hir:t3] <|@
16 gap () () () () [hir:v7] <|@
18 goto B1 [hir:v7] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 20
last_lir_id 46
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v8 BlockEntry type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 d19 Change t3 t to d allow-undefined-as-nan type:TaggedNumber pos:24 <|@
0 1 d15 UnaryMathOperation sqrt d19 type:TaggedNumber pos:12 <|@
0 1 t21 Change d15 d to t changes[NewSpacePromotion] pos:5 <|@
0 1 s22 Constant 1 type:Smi pos:5 <|@
0 0 v17 Return t21 (pop s22 values) type:Tagged pos:5 <|@
end_HIR
begin_LIR
20 label () () () () [hir:v8] <|@
22 gap () ([rsi|R] = [rax|R];) () () [hir:v8] <|@
24 stack-check = [rsi|R] [id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:0]] {[rsi|R];[stack:0]} [hir:v10] <|@
26 gap () () () () [hir:v10] <|@
28 lazy-bailout = [id=3|deopt_id=0|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:0]] [hir:v10] <|@
30 gap () () ([rax|R] = [stack:-1];) () [hir:v10] <|@
32 double-untag [xmm1|R]= [rax|R] [id=3|deopt_id=1|parameters=2|arguments_stack_height=0|[stack:-2];[rax|R];[stack:0]] [hir:d19] <|@
34 gap ((0) = [xmm1|R];) () () () [hir:d19] <|@
36 math-sqrt [xmm1|R]= [xmm1|R] [hir:d15] <|@
38 gap ((0) = [xmm1|R];) () () () [hir:d15] <|@
40 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t21] <|@
42 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t21] <|@
44 return = [rax|R] NULL [constant:22] [hir:v17] <|@
46 gap () () () () [hir:v17] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "y"
method "y:7"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 14
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 3 t1 Context type:Tagged <|@
0 7 t2 Parameter 0 type:Tagged <|@
0 0 t3 ArgumentsObject t2 type:Tagged <|@
0 0 v5 Simulate id=2 var[1] = t1, var[0] = t2 type:Tagged <|@
0 0 v6 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:0] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-1]= [hir:t2] <|@
10 gap () ([stack:-1];) () () [hir:t2] <|@
12 gap () () () () [hir:v6] <|@
14 goto B1 [hir:v6] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 16
last_lir_id 46
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v7 BlockEntry type:Tagged <|@
0 0 v8 Simulate id=3 type:Tagged <|@
0 0 v9 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t11 CheckHeapObject t2 pos:16 <|@
0 0 t12 CheckMaps t2 [0x591d200e399,0x591d200e3f1] pos:16 <|@
0 1 d13 LoadNamedField t2._y[in-object]@32 type:Tagged pos:16 <|@
0 1 t17 Change d13 d to t changes[NewSpacePromotion] pos:5 <|@
0 1 s18 Constant 0 type:Smi pos:5 <|@
0 0 v15 Return t17 (pop s18 values) type:Tagged pos:5 <|@
end_HIR
begin_LIR
16 label () () () () [hir:v7] <|@
18 gap () ([rsi|R] = [rax|R];) () () [hir:v7] <|@
20 stack-check = [rsi|R] [id=3|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] {[rsi|R];[stack:0]} [hir:v9] <|@
22 gap () () () () [hir:v9] <|@
24 lazy-bailout = [id=3|deopt_id=0|parameters=1|arguments_stack_height=0|[stack:-1];[stack:0]] [hir:v9] <|@
26 gap () () ([rax|R] = [stack:-1];) () [hir:v9] <|@
28 check-non-smi = [rax|R] [id=3|deopt_id=1|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t11] <|@
30 gap () () () () [hir:t11] <|@
32 check-maps = [rax|R] [id=3|deopt_id=2|parameters=1|arguments_stack_height=0|[rax|R];[stack:0]] [hir:t12] <|@
34 gap () () () () [hir:t12] <|@
36 load-named-field [xmm1|R]= [rax|R] [hir:d13] <|@
38 gap ((0) = [xmm1|R];) () () () [hir:d13] <|@
40 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t17] <|@
42 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t17] <|@
44 return = [rax|R] NULL [constant:18] [hir:v15] <|@
46 gap () () () () [hir:v15] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "len"
method "len:8"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 18
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 0 t5 Constant 0x72389304121 <undefined> [map 0x371978043c1] <|@
0 3 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 21 t3 Parameter 1 type:Tagged <|@
0 0 t4 ArgumentsObject t2 t3 type:Tagged <|@
0 0 v6 Simulate id=2 var[2] = t1, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v7 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:0] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-2]= [hir:t2] <|@
10 gap () ([stack:-2];) () () [hir:t2] <|@
12 parameter [stack:-1]= [hir:t3] <|@
14 gap () ([stack:-1];) () () [hir:t3] <|@
16 gap () () () () [hir:v7] <|@
18 goto B1 [hir:v7] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 20
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v8 BlockEntry type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t12 CheckHeapObject t3 pos:247 <|@
0 0 t13 CheckMaps t3 [0x591d200e399,0x591d200e3f1] pos:247 <|@
0 2 t14 Constant 0x24b817077a99 <an Object with map 0x591d200e291> [map 0x591d200e291] [new space] pos:247 <|@
0 0 t15 CheckMaps t14 [0x591d200e291](stability-check) pos:247 <|@
0 1 t16 Constant 0x19d452643469 <JS Function Vec2.len (SharedFunctionInfo 0x19d452642ee9)> pos:247 <|@
0 6 t17 Constant 0x72389374189 <FixedArray[115]> pos:1_0 <|@
0 0 t18 ArgumentsObject t3 type:Tagged pos:1_0 <|@
0 0 v19 Simulate id=-1 push t16, push t3 type:Tagged pos:1_0 <|@
0 0 v20 EnterInlined Vec2.len type:Tagged pos:1_0 <|@
0 3 t21 Constant 0x72389394509 <a MathConstructor with map 0x3719780a3a9> [map 0x3719780a3a9] pos:1_16 <|@
0 0 t22 CheckMaps t21 [0x3719780a3a9](stability-check) pos:1_21 <|@
0 1 t23 Constant 0x72389394c31 <JS Function sqrt (SharedFunctionInfo 0x7238934adb9)> [map 0x371978069e9] pos:1_21 <|@
0 1 t28 Constant 0x19d452643421 <JS Function Vec2.len2 (SharedFunctionInfo 0x19d452642e59)> pos:1_31 <|@
0 0 t30 ArgumentsObject t3 type:Tagged pos:2_0 <|@
0 0 v31 Simulate id=-1 var[1] = t17, push t23, push t21, push t28, push t3 type:Tagged pos:2_0 <|@
0 0 v32 EnterInlined Vec2.len2 type:Tagged pos:2_0 <|@
0 0 t38 ArgumentsObject t3 type:Tagged pos:3_0 <|@
0 0 v39 Simulate id=-1 var[1] = t17, push t3 type:Tagged pos:3_0 <|@
0 0 v40 EnterInlined x type:Tagged pos:3_0 <|@
0 4 d42 LoadNamedField t3._x[in-object]@24 type:Tagged pos:3_16 <|@
0 0 v43 LeaveInlined type:Tagged pos:3_5 <|@
0 0 v44 Simulate id=12 push d42 type:Tagged pos:3_5 <|@
0 0 v45 Goto B2 type:Tagged pos:3_5 <|@
end_HIR
begin_LIR
20 label () () () () [hir:v8] <|@
22 gap () ([rsi|R] = [rax|R];) () () [hir:v8] <|@
24 stack-check = [rsi|R] [id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:0]] {[rsi|R];[stack:0]} [hir:v10] <|@
26 gap () () () () [hir:v10] <|@
28 lazy-bailout = [id=3|deopt_id=0|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:0]] [hir:v10] <|@
30 gap () () ([rax|R] = [stack:-1];) () [hir:v10] <|@
32 check-non-smi = [rax|R] [id=3|deopt_id=1|parameters=2|arguments_stack_height=0|[stack:-2];[rax|R];[stack:0]] [hir:t12] <|@
34 gap () () () () [hir:t12] <|@
36 check-maps = [rax|R] [id=3|deopt_id=2|parameters=2|arguments_stack_height=0|[stack:-2];[rax|R];[stack:0]] [hir:t13] <|@
38 gap () () () () [hir:t13] <|@
40 check-maps = NULL [hir:t15] <|@
42 gap () () () () [hir:t15] <|@
44 check-maps = NULL [hir:t22] <|@
46 gap () () () () [hir:t22] <|@
48 load-named-field [xmm1|R]= [rax|R] [hir:d42] <|@
50 gap ((0) = [xmm1|R];) () () () [hir:d42] <|@
52 gap () () () () [hir:v45] <|@
54 goto B2 [hir:v45] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B3"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 56
last_lir_id 62
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v46 BlockEntry type:Tagged pos:2_29 <|@
0 0 t52 ArgumentsObject t3 type:Tagged pos:4_0 <|@
0 0 v53 Simulate id=-1 push t3 type:Tagged pos:4_0 <|@
0 0 v54 EnterInlined x type:Tagged pos:4_0 <|@
0 0 v57 LeaveInlined type:Tagged pos:4_5 <|@
0 0 v58 Simulate id=21 push d42 type:Tagged pos:4_5 <|@
0 0 v59 Goto B3 type:Tagged pos:4_5 <|@
end_HIR
begin_LIR
56 label () () () () Dead block replaced with B3 [hir:v46] <|@
58 gap () () () () [hir:v46] <|@
60 gap () () () () [hir:v59] <|@
62 goto B3 [hir:v59] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors "B4"
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 64
last_lir_id 78
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v60 BlockEntry type:Tagged pos:2_23 <|@
0 3 d61 Mul d42 d42 ! type:TaggedNumber pos:2_23 <|@
0 0 v62 Simulate id=8 pop 2 / push d61 type:Tagged pos:2_23 <|@
0 0 t68 ArgumentsObject t3 type:Tagged pos:5_0 <|@
0 0 v69 Simulate id=-1 pop 1 / push d61, push t3 type:Tagged pos:5_0 <|@
0 0 v70 EnterInlined y type:Tagged pos:5_0 <|@
0 4 d72 LoadNamedField t3._y[in-object]@32 type:Tagged pos:5_16 <|@
0 0 v73 LeaveInlined type:Tagged pos:5_5 <|@
0 0 v74 Simulate id=34 push d72 type:Tagged pos:5_5 <|@
0 0 v75 Goto B4 type:Tagged pos:5_5 <|@
end_HIR
begin_LIR
64 label () () () () [hir:v60] <|@
66 gap () ([xmm2|R] = [xmm1|R];) () () [hir:v60] <|@
68 mul-d [xmm2|R]= [xmm2|R] [xmm1|R] [hir:d61] <|@
70 gap ((0) = [xmm2|R];) () () () [hir:d61] <|@
72 load-named-field [xmm1|R]= [rax|R] [hir:d72] <|@
74 gap ((0) = [xmm1|R];) () () () [hir:d72] <|@
76 gap () () () () [hir:v75] <|@
78 goto B4 [hir:v75] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3"
successors "B5"
xhandlers
flags
dominator "B3"
loop_depth 0
first_lir_id 80
last_lir_id 86
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v76 BlockEntry type:Tagged pos:2_47 <|@
0 0 t82 ArgumentsObject t3 type:Tagged pos:6_0 <|@
0 0 v83 Simulate id=-1 push t3 type:Tagged pos:6_0 <|@
0 0 v84 EnterInlined y type:Tagged pos:6_0 <|@
0 0 v87 LeaveInlined type:Tagged pos:6_5 <|@
0 0 v88 Simulate id=43 push d72 type:Tagged pos:6_5 <|@
0 0 v89 Goto B5 type:Tagged pos:6_5 <|@
end_HIR
begin_LIR
80 label () () () () Dead block replaced with B5 [hir:v76] <|@
82 gap () () () () [hir:v76] <|@
84 gap () () () () [hir:v89] <|@
86 goto B5 [hir:v89] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4"
successors "B6"
xhandlers
flags
dominator "B4"
loop_depth 0
first_lir_id 88
last_lir_id 102
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v90 BlockEntry type:Tagged pos:2_41 <|@
0 2 d91 Mul d72 d72 ! type:TaggedNumber pos:2_41 <|@
0 0 v92 Simulate id=30 pop 2 / push d91 type:Tagged pos:2_41 <|@
0 2 d93 Add d61 d91 ! type:TaggedNumber pos:2_32 <|@
0 0 v95 LeaveInlined type:Tagged pos:2_9 <|@
0 0 v96 Simulate id=17 pop 1 / push d93 type:Tagged pos:2_9 <|@
0 0 v97 Goto B6 type:Tagged pos:2_9 <|@
end_HIR
begin_LIR
88 label () () () () [hir:v90] <|@
90 gap () ([xmm3|R] = [xmm1|R];) () () [hir:v90] <|@
92 mul-d [xmm3|R]= [xmm3|R] [xmm1|R] [hir:d91] <|@
94 gap ((0) = [xmm3|R];) ([xmm2|R];) () () [hir:d91] <|@
96 add-d [xmm2|R]= [xmm2|R] [xmm3|R] [hir:d93] <|@
98 gap ((0) = [xmm2|R];) () () () [hir:d93] <|@
100 gap () () () () [hir:v97] <|@
102 goto B6 [hir:v97] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B7"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 104
last_lir_id 114
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v98 BlockEntry type:Tagged pos:1_21 <|@
0 2 d99 UnaryMathOperation sqrt d93 type:TaggedNumber pos:1_21 <|@
0 0 v100 LeaveInlined type:Tagged pos:1_9 <|@
0 0 v101 Simulate id=4 pop 1 / push d99 type:Tagged pos:1_9 <|@
0 0 v102 Goto B7 type:Tagged pos:1_9 <|@
end_HIR
begin_LIR
104 label () () () () [hir:v98] <|@
106 gap () () () () [hir:v98] <|@
108 math-sqrt [xmm1|R]= [xmm2|R] [hir:d99] <|@
110 gap ((0) = [xmm1|R];) () () () [hir:d99] <|@
112 gap () () () () [hir:v102] <|@
114 goto B7 [hir:v102] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 116
last_lir_id 126
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v103 BlockEntry type:Tagged pos:238 <|@
0 1 t107 Change d99 d to t changes[NewSpacePromotion] pos:238 <|@
0 1 s108 Constant 1 type:Smi pos:238 <|@
0 0 v105 Return t107 (pop s108 values) type:Tagged pos:238 <|@
end_HIR
begin_LIR
116 label () () () () [hir:v103] <|@
118 gap () () () () [hir:v103] <|@
120 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t107] <|@
122 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t107] <|@
124 return = [rax|R] NULL [constant:108] [hir:v105] <|@
126 gap () () () () [hir:v105] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "loop"
method "loop:9"
date 1432500821000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 18
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 1 i166 Constant 1 type:Smi <|@
0 1 t15 Constant 0x72389304161 <true> [map 0x371978044c9] <|@
0 4 t5 Constant 0x72389304121 <undefined> [map 0x371978043c1] <|@
0 3 t1 Context type:Tagged <|@
0 3 t2 Parameter 0 type:Tagged <|@
0 3 t3 Parameter 1 type:Tagged <|@
0 0 t4 ArgumentsObject t2 t3 type:Tagged <|@
0 0 v6 Simulate id=2 var[4] = t5, var[3] = t5, var[2] = t1, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v7 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [rax|R]= [hir:t1] <|@
6 gap ([stack:2] = [rax|R];) () () () [hir:t1] <|@
8 parameter [stack:-2]= [hir:t2] <|@
10 gap () ([stack:-2];) () () [hir:t2] <|@
12 parameter [stack:-1]= [hir:t3] <|@
14 gap () ([stack:-1];) () () [hir:t3] <|@
16 gap () () () () [hir:v7] <|@
18 goto B1 [hir:v7] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B3" "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 20
last_lir_id 34
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v8 BlockEntry type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 3 i11 Constant 0 type:Smi pos:18 <|@
0 0 v16 Branch t15 goto (B3, B2) (None) type:Tagged pos:23 <|@
end_HIR
begin_LIR
20 label () () () () [hir:v8] <|@
22 gap () ([rsi|R] = [rax|R];) () () [hir:v8] <|@
24 stack-check = [rsi|R] [id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:2];[constant:5];[constant:5]] {[rsi|R];[stack:2]} [hir:v10] <|@
26 gap () () () () [hir:v10] <|@
28 lazy-bailout = [id=3|deopt_id=0|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:2];[constant:5];[constant:5]] [hir:v10] <|@
30 gap () () () () [hir:v10] <|@
32 gap () () () () [hir:v16] <|@
34 goto B3 [hir:v16] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B4"
xhandlers
flags "osr"
dominator "B1"
loop_depth 0
first_lir_id 36
last_lir_id 78
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v20 BlockEntry type:Tagged pos:23 <|@
0 2 t21 UnknownOSRValue parameter @ 0 type:Tagged pos:23 <|@
0 2 t22 UnknownOSRValue parameter @ 1 type:Tagged pos:23 <|@
0 1 t23 UnknownOSRValue special @ 2 type:Tagged pos:23 <|@
0 2 t24 UnknownOSRValue local @ 3 type:Tagged pos:23 <|@
0 2 t25 UnknownOSRValue local @ 4 type:Tagged pos:23 <|@
0 0 v26 Simulate id=22 var[4] = t25, var[3] = t24, var[2] = t23, var[1] = t22, var[0] = t21 type:Tagged pos:23 <|@
0 0 v27 OsrEntry changes[NewSpacePromotion,OsrEntries] type:Tagged pos:23 <|@
0 2 t28 Context type:Tagged pos:23 <|@
0 0 v29 Simulate id=20 var[2] = t28 type:Tagged pos:23 <|@
0 1 d177 Change t24 t to d type:TaggedNumber pos:23 <|@
0 1 i178 Change t25 t to i type:TaggedNumber pos:23 <|@
0 0 v30 Goto B4 type:Tagged pos:23 <|@
end_HIR
begin_LIR
36 label () () () () [hir:v20] <|@
38 gap () () () () [hir:v20] <|@
40 unknown-osr-value [stack:-2]= [hir:t21] <|@
42 gap () ([stack:-2];) () () [hir:t21] <|@
44 unknown-osr-value [stack:-1]= [hir:t22] <|@
46 gap () ([stack:-1];) () () [hir:t22] <|@
48 unknown-osr-value [stack:-1]= [hir:t23] <|@
50 gap () ([stack:-1];) () () [hir:t23] <|@
52 unknown-osr-value [stack:0]= [hir:t24] <|@
54 gap () ([stack:0];) () () [hir:t24] <|@
56 unknown-osr-value [stack:1]= [hir:t25] <|@
58 gap () ([stack:1];) () () [hir:t25] <|@
60 osr-entry = [id=22|deopt_id=1|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:-1];[stack:0];[stack:1]] [hir:v27] <|@
62 gap () () () () [hir:v27] <|@
64 context [rax|R]= [hir:t28] <|@
66 gap ((0) = [rax|R];) () ([rbx|R] = [stack:0];) () [hir:t28] <|@
68 double-untag [xmm2|R]= [rbx|R] [id=20|deopt_id=2|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[rax|R];[rbx|R];[stack:1]] [hir:d177] <|@
70 gap ((0) = [xmm2|R];) ([rdx|R] = [stack:1];) () () [hir:d177] <|@
72 tagged-to-i [rdx|R]= [rdx|R] [id=20|deopt_id=6|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[rax|R];[rbx|R];[stack:1]] [hir:i178] <|@
74 gap ((0) = [rdx|R];) () () () [hir:i178] <|@
76 gap () ([rcx|R] = [stack:-2]; [rdx|R] = [stack:-1]; [rbx|R] = [rax|R]; [xmm1|R] = [xmm2|R]; [rax|R] = [rdx|R];) () () [hir:v30] <|@
78 goto B4 [hir:v30] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B1"
successors "B4"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 80
last_lir_id 90
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v17 BlockEntry type:Tagged pos:23 <|@
0 0 v18 Simulate id=20 var[4] = i11, var[3] = i11 type:Tagged pos:23 <|@
0 1 d176 Constant 0 type:Smi pos:23 <|@
0 0 v19 Goto B4 type:Tagged pos:23 <|@
end_HIR
begin_LIR
80 label () () () () [hir:v17] <|@
82 gap () () () () [hir:v17] <|@
84 constant-d [xmm1|R]= [hir:d176] <|@
86 gap ((0) = [xmm1|R];) () () () [hir:d176] <|@
88 gap () ([rcx|R] = [stack:-2]; [rdx|R] = [stack:-1]; [rbx|R] = [stack:2]; [xmm1|R]; [rax|R] = [constant:11];) () () [hir:v19] <|@
90 goto B4 [hir:v19] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3" "B2"
successors "B5"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 92
last_lir_id 138
begin_states
begin_locals
size 5
method "None"
0 t31 [ t2 t21 uses:0_0s_0i_0d_0t type:Tagged]
1 t32 [ t3 t22 uses:21_0s_0i_0d_0t type:Tagged]
2 t33 [ t1 t28 uses:4_0s_0i_0d_2t type:Tagged]
3 d34 [ d176 d177 uses:1_0s_0i_1d_0t type:TaggedNumber]
4 i35 [ i11 i178 uses:1_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v41 BlockEntry type:Tagged pos:23 <|@
0 0 v42 Simulate id=20 type:Tagged pos:23 <|@
0 1 i47 Constant 100000 type:Smi pos:43 <|@
0 1 t59 Constant 0x19d452643261 <JS Function len (SharedFunctionInfo 0x19d452642c89)> pos:60 <|@
0 2 t61 Constant 0x19d4526455d9 <JS Global Object> [map 0x3719780bf81] pos:60 <|@
0 7 t62 Constant 0x72389374189 <FixedArray[115]> pos:1_0 <|@
0 0 t66 CheckHeapObject t32 pos:1_247 <|@
0 0 t67 CheckMaps t32 [0x591d200e399,0x591d200e3f1] pos:1_247 <|@
0 2 t68 Constant 0x19d4526b21f1 <an Object with map 0x591d200e291> [map 0x591d200e291] pos:1_247 <|@
0 0 t69 CheckMaps t68 [0x591d200e291](stability-check) pos:1_247 <|@
0 1 t70 Constant 0x19d452643469 <JS Function Vec2.len (SharedFunctionInfo 0x19d452642ee9)> pos:1_247 <|@
0 3 t75 Constant 0x72389394509 <a MathConstructor with map 0x3719780a3a9> [map 0x3719780a3a9] pos:2_16 <|@
0 0 t76 CheckMaps t75 [0x3719780a3a9](stability-check) pos:2_21 <|@
0 1 t77 Constant 0x72389394c31 <JS Function sqrt (SharedFunctionInfo 0x7238934adb9)> [map 0x371978069e9] pos:2_21 <|@
0 1 t82 Constant 0x19d452643421 <JS Function Vec2.len2 (SharedFunctionInfo 0x19d452642e59)> pos:2_31 <|@
0 4 d96 LoadNamedField t32._x[in-object]@24 type:Tagged pos:4_16 <|@
0 3 d115 Mul d96 d96 ! type:TaggedNumber pos:3_23 <|@
0 4 d126 LoadNamedField t32._y[in-object]@32 type:Tagged pos:6_16 <|@
0 2 d145 Mul d126 d126 ! type:TaggedNumber pos:3_41 <|@
0 2 d147 Add d115 d145 ! type:TaggedNumber pos:3_32 <|@
0 3 d153 UnaryMathOperation sqrt d147 type:TaggedNumber pos:2_21 <|@
0 0 v43 Goto B5 type:Tagged pos:23 <|@
end_HIR
begin_LIR
92 label () ((0) = [rcx|R]; (0) = [rdx|R]; (0) = [rbx|R]; (0) = [xmm1|R]; (0) = [rax|R];) () () [hir:v41] <|@
94 gap () () () () [hir:v41] <|@
96 check-non-smi = [rdx|R] [id=20|deopt_id=3|parameters=2|arguments_stack_height=0|[rcx|R];[rdx|R];[rbx|R];[xmm1|R];[rax|R]] [hir:t66] <|@
98 gap () () () () [hir:t66] <|@
100 check-maps = [rdx|R] [id=20|deopt_id=4|parameters=2|arguments_stack_height=0|[rcx|R];[rdx|R];[rbx|R];[xmm1|R];[rax|R]] [hir:t67] <|@
102 gap () () () () [hir:t67] <|@
104 check-maps = NULL [hir:t69] <|@
106 gap () () () () [hir:t69] <|@
108 check-maps = NULL [hir:t76] <|@
110 gap () () () () [hir:t76] <|@
112 load-named-field [xmm2|R]= [rdx|R] [hir:d96] <|@
114 gap ((0) = [xmm2|R];) ([xmm3|R] = [xmm2|R];) () () [hir:d96] <|@
116 mul-d [xmm3|R]= [xmm3|R] [xmm2|R] [hir:d115] <|@
118 gap ((0) = [xmm3|R];) () () () [hir:d115] <|@
120 load-named-field [xmm2|R]= [rdx|R] [hir:d126] <|@
122 gap ((0) = [xmm2|R];) ([xmm4|R] = [xmm2|R];) () () [hir:d126] <|@
124 mul-d [xmm4|R]= [xmm4|R] [xmm2|R] [hir:d145] <|@
126 gap ((0) = [xmm4|R];) ([xmm3|R];) () () [hir:d145] <|@
128 add-d [xmm3|R]= [xmm3|R] [xmm4|R] [hir:d147] <|@
130 gap ((0) = [xmm3|R];) () () () [hir:d147] <|@
132 math-sqrt [xmm2|R]= [xmm3|R] [hir:d153] <|@
134 gap ((0) = [xmm2|R];) () () () [hir:d153] <|@
136 gap () ([xmm1|R]; [rax|R];) () () [hir:v43] <|@
138 goto B5 [hir:v43] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4" "B14"
successors "B6" "B15"
xhandlers
flags "dom-loop-succ"
dominator "B4"
loop_depth 1
first_lir_id 140
last_lir_id 146
begin_states
begin_locals
size 2
method "None"
3 d39 [ d34 d162 uses:3_0s_0i_1d_0t type:TaggedNumber]
4 i40 [ i35 i167 uses:2_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v44 BlockEntry type:Tagged pos:39 <|@
0 0 i48 CompareNumericAndBranch LT i40 i47 goto (B6, B15) type:Tagged pos:41 <|@
end_HIR
begin_LIR
140 label () ((0) = [xmm1|R]; (0) = [rax|R];) () () [hir:v44] <|@
142 gap () () () () [hir:v44] <|@
144 gap () () () () [hir:i48] <|@
146 compare-numeric-and-branch if [rax|R] < [constant:47] then B6 else B15 [hir:i48] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B7"
xhandlers
flags "dom-loop-succ"
dominator "B5"
loop_depth 1
first_lir_id 148
last_lir_id 154
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v49 BlockEntry type:Tagged pos:41 <|@
0 0 v50 Simulate id=24 type:Tagged pos:41 <|@
0 0 v51 Goto B7 type:Tagged pos:41 <|@
end_HIR
begin_LIR
148 label () () () () Dead block replaced with B7 [hir:v49] <|@
150 gap () () () () [hir:v49] <|@
152 gap () () () () [hir:v51] <|@
154 goto B7 [hir:v51] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors "B8"
xhandlers
flags "dom-loop-succ"
dominator "B6"
loop_depth 1
first_lir_id 156
last_lir_id 166
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v55 BlockEntry type:Tagged pos:23 <|@
0 0 v56 Simulate id=24 type:Tagged pos:23 <|@
0 0 v57 StackCheck t33 changes[NewSpacePromotion] type:Tagged pos:23 <|@
0 0 t63 ArgumentsObject t61 t32 type:Tagged pos:1_0 <|@
0 0 v64 Simulate id=-1 var[3] = t5, push d39, push t59, push t61, push t32 type:Tagged pos:1_0 <|@
0 0 v65 EnterInlined len type:Tagged pos:1_0 <|@
0 0 t72 ArgumentsObject t32 type:Tagged pos:2_0 <|@
0 0 v73 Simulate id=-1 var[2] = t62, push t70, push t32 type:Tagged pos:2_0 <|@
0 0 v74 EnterInlined Vec2.len type:Tagged pos:2_0 <|@
0 0 t84 ArgumentsObject t32 type:Tagged pos:3_0 <|@
0 0 v85 Simulate id=-1 var[1] = t62, push t77, push t75, push t82, push t32 type:Tagged pos:3_0 <|@
0 0 v86 EnterInlined Vec2.len2 type:Tagged pos:3_0 <|@
0 0 t92 ArgumentsObject t32 type:Tagged pos:4_0 <|@
0 0 v93 Simulate id=-1 var[1] = t62, push t32 type:Tagged pos:4_0 <|@
0 0 v94 EnterInlined x type:Tagged pos:4_0 <|@
0 0 v97 LeaveInlined type:Tagged pos:4_5 <|@
0 0 v98 Simulate id=12 push d96 type:Tagged pos:4_5 <|@
0 0 v99 Goto B8 type:Tagged pos:4_5 <|@
end_HIR
begin_LIR
156 label () () () () [hir:v55] <|@
158 gap () () () () [hir:v55] <|@
160 stack-check = [rbx|R] [id=24|deopt_id=5|parameters=2|arguments_stack_height=0|[rcx|R];[rdx|R];[rbx|R];[xmm1|R];[rax|R]] {[rcx|R];[rdx|R];[rbx|R]} [hir:v57] <|@
162 gap () () () () [hir:v57] <|@
164 gap () () () () [hir:v99] <|@
166 goto B8 [hir:v99] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B7"
successors "B9"
xhandlers
flags "dom-loop-succ"
dominator "B7"
loop_depth 1
first_lir_id 168
last_lir_id 174
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v100 BlockEntry type:Tagged pos:3_29 <|@
0 0 t106 ArgumentsObject t32 type:Tagged pos:5_0 <|@
0 0 v107 Simulate id=-1 push t32 type:Tagged pos:5_0 <|@
0 0 v108 EnterInlined x type:Tagged pos:5_0 <|@
0 0 v111 LeaveInlined type:Tagged pos:5_5 <|@
0 0 v112 Simulate id=21 push d96 type:Tagged pos:5_5 <|@
0 0 v113 Goto B9 type:Tagged pos:5_5 <|@
end_HIR
begin_LIR
168 label () () () () Dead block replaced with B9 [hir:v100] <|@
170 gap () () () () [hir:v100] <|@
172 gap () () () () [hir:v113] <|@
174 goto B9 [hir:v113] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B8"
successors "B10"
xhandlers
flags "dom-loop-succ"
dominator "B8"
loop_depth 1
first_lir_id 176
last_lir_id 182
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v114 BlockEntry type:Tagged pos:3_23 <|@
0 0 v116 Simulate id=8 pop 2 / push d115 type:Tagged pos:3_23 <|@
0 0 t122 ArgumentsObject t32 type:Tagged pos:6_0 <|@
0 0 v123 Simulate id=-1 pop 1 / push d115, push t32 type:Tagged pos:6_0 <|@
0 0 v124 EnterInlined y type:Tagged pos:6_0 <|@
0 0 v127 LeaveInlined type:Tagged pos:6_5 <|@
0 0 v128 Simulate id=34 push d126 type:Tagged pos:6_5 <|@
0 0 v129 Goto B10 type:Tagged pos:6_5 <|@
end_HIR
begin_LIR
176 label () () () () Dead block replaced with B10 [hir:v114] <|@
178 gap () () () () [hir:v114] <|@
180 gap () () () () [hir:v129] <|@
182 goto B10 [hir:v129] <|@
end_LIR
end_block
begin_block
name "B10"
from_bci -1
to_bci -1
predecessors "B9"
successors "B11"
xhandlers
flags "dom-loop-succ"
dominator "B9"
loop_depth 1
first_lir_id 184
last_lir_id 190
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v130 BlockEntry type:Tagged pos:3_47 <|@
0 0 t136 ArgumentsObject t32 type:Tagged pos:7_0 <|@
0 0 v137 Simulate id=-1 push t32 type:Tagged pos:7_0 <|@
0 0 v138 EnterInlined y type:Tagged pos:7_0 <|@
0 0 v141 LeaveInlined type:Tagged pos:7_5 <|@
0 0 v142 Simulate id=43 push d126 type:Tagged pos:7_5 <|@
0 0 v143 Goto B11 type:Tagged pos:7_5 <|@
end_HIR
begin_LIR
184 label () () () () Dead block replaced with B11 [hir:v130] <|@
186 gap () () () () [hir:v130] <|@
188 gap () () () () [hir:v143] <|@
190 goto B11 [hir:v143] <|@
end_LIR
end_block
begin_block
name "B11"
from_bci -1
to_bci -1
predecessors "B10"
successors "B12"
xhandlers
flags "dom-loop-succ"
dominator "B10"
loop_depth 1
first_lir_id 192
last_lir_id 198
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v144 BlockEntry type:Tagged pos:3_41 <|@
0 0 v146 Simulate id=30 pop 2 / push d145 type:Tagged pos:3_41 <|@
0 0 v149 LeaveInlined type:Tagged pos:3_9 <|@
0 0 v150 Simulate id=17 pop 1 / push d147 type:Tagged pos:3_9 <|@
0 0 v151 Goto B12 type:Tagged pos:3_9 <|@
end_HIR
begin_LIR
192 label () () () () Dead block replaced with B12 [hir:v144] <|@
194 gap () () () () [hir:v144] <|@
196 gap () () () () [hir:v151] <|@
198 goto B12 [hir:v151] <|@
end_LIR
end_block
begin_block
name "B12"
from_bci -1
to_bci -1
predecessors "B11"
successors "B13"
xhandlers
flags "dom-loop-succ"
dominator "B11"
loop_depth 1
first_lir_id 200
last_lir_id 206
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v152 BlockEntry type:Tagged pos:2_21 <|@
0 0 v154 LeaveInlined type:Tagged pos:2_9 <|@
0 0 v155 Simulate id=4 pop 1 / push d153 type:Tagged pos:2_9 <|@
0 0 v156 Goto B13 type:Tagged pos:2_9 <|@
end_HIR
begin_LIR
200 label () () () () Dead block replaced with B13 [hir:v152] <|@
202 gap () () () () [hir:v152] <|@
204 gap () () () () [hir:v156] <|@
206 goto B13 [hir:v156] <|@
end_LIR
end_block
begin_block
name "B13"
from_bci -1
to_bci -1
predecessors "B12"
successors "B14"
xhandlers
flags "dom-loop-succ"
dominator "B12"
loop_depth 1
first_lir_id 208
last_lir_id 214
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v157 BlockEntry type:Tagged pos:1_238 <|@
0 0 v158 LeaveInlined type:Tagged pos:1_238 <|@
0 0 v159 Simulate id=73 pop 1 / push d153 type:Tagged pos:1_238 <|@
0 0 v160 Goto B14 type:Tagged pos:1_238 <|@
end_HIR
begin_LIR
208 label () () () () Dead block replaced with B14 [hir:v157] <|@
210 gap () () () () [hir:v157] <|@
212 gap () () () () [hir:v160] <|@
214 goto B14 [hir:v160] <|@
end_LIR
end_block
begin_block
name "B14"
from_bci -1
to_bci -1
predecessors "B13"
successors "B5"
xhandlers
flags "dom-loop-succ"
dominator "B13"
loop_depth 1
first_lir_id 216
last_lir_id 230
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v161 BlockEntry type:Tagged pos:58 <|@
0 3 d162 Add d39 d153 ! type:TaggedNumber pos:58 <|@
0 0 v163 Simulate id=57 pop 2 / push d162 type:Tagged pos:58 <|@
0 2 i167 Add i40 i166 type:TaggedNumber pos:49 <|@
0 0 v169 Simulate id=20 pop 1 / var[4] = i167, var[3] = d162 type:Tagged pos:23 <|@
0 0 v170 Goto B5 type:Tagged pos:23 <|@
end_HIR
begin_LIR
216 label () () () () [hir:v161] <|@
218 gap () ([xmm1|R];) () () [hir:v161] <|@
220 add-d [xmm1|R]= [xmm1|R] [xmm2|R] [hir:d162] <|@
222 gap ((0) = [xmm1|R];) () () () [hir:d162] <|@
224 add-i [rax|R]= [rax|R] [constant:166] [hir:i167] <|@
226 gap ((0) = [rax|R];) () () () [hir:i167] <|@
228 gap () ([xmm1|R]; [rax|R];) () () [hir:v170] <|@
230 goto B5 [hir:v170] <|@
end_LIR
end_block
begin_block
name "B15"
from_bci -1
to_bci -1
predecessors "B5"
successors "B16"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 232
last_lir_id 238
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v52 BlockEntry type:Tagged pos:41 <|@
0 0 v53 Simulate id=21 var[4] = t5 type:Tagged pos:41 <|@
0 0 v54 Goto B16 type:Tagged pos:41 <|@
end_HIR
begin_LIR
232 label () () () () Dead block replaced with B16 [hir:v52] <|@
234 gap () () () () [hir:v52] <|@
236 gap () () () () [hir:v54] <|@
238 goto B16 [hir:v54] <|@
end_LIR
end_block
begin_block
name "B16"
from_bci -1
to_bci -1
predecessors "B15"
successors
xhandlers
flags
dominator "B15"
loop_depth 0
first_lir_id 240
last_lir_id 250
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v171 BlockEntry type:Tagged pos:77 <|@
0 1 t179 Change d39 d to t changes[NewSpacePromotion] pos:70 <|@
0 1 s180 Constant 1 type:Smi pos:70 <|@
0 0 v174 Return t179 (pop s180 values) type:Tagged pos:70 <|@
end_HIR
begin_LIR
240 label () () () () [hir:v171] <|@
242 gap () () () () [hir:v171] <|@
244 number-tag-d [rbx|R]= [xmm1|R] {[rbx|R]} [hir:t179] <|@
246 gap ((0) = [rbx|R];) ([rax|R] = [rbx|R];) () () [hir:t179] <|@
248 return = [rax|R] NULL [constant:180] [hir:v174] <|@
250 gap () () () () [hir:v174] <|@
end_LIR
end_block
end_cfg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment