Skip to content

Instantly share code, notes, and snippets.

@mattzeunert
Created August 20, 2015 00:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattzeunert/baea04b55ae16042aea6 to your computer and use it in GitHub Desktop.
Save mattzeunert/baea04b55ae16042aea6 to your computer and use it in GitHub Desktop.
begin_compilation
name "add"
method "add:0"
date 1440029178000
end_compilation
begin_cfg
name "H_Assign dominators"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 0 t12 Constant 0x333080a1 <the hole> [map 0x29e08211] <|@
0 0 t6 Constant 0x33308091 <undefined> [map 0x29e080f9] <|@
0 4 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 3 t3 Parameter 1 type:Tagged <|@
0 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 v13 Add t3 t4 ! changes[*] type:TaggedNumber <|@
0 0 v14 Simulate id=4 push v13 type:Tagged <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return v13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Environment liveness analysis"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 0 s17 Constant 0 type:Smi <|@
0 0 t12 Constant 0x333080a1 <the hole> [map 0x29e08211] <|@
0 0 t6 Constant 0x33308091 <undefined> [map 0x29e080f9] <|@
0 4 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 3 t3 Parameter 1 type:Tagged <|@
0 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 v13 Add t3 t4 ! changes[*] type:TaggedNumber <|@
0 0 v14 Simulate id=4 push v13 type:Tagged <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return v13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Redundant phi elimination"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 0 s17 Constant 0 type:Smi <|@
0 0 t12 Constant 0x333080a1 <the hole> [map 0x29e08211] <|@
0 0 t6 Constant 0x33308091 <undefined> [map 0x29e080f9] <|@
0 4 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 3 t3 Parameter 1 type:Tagged <|@
0 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 v13 Add t3 t4 ! changes[*] type:TaggedNumber <|@
0 0 v14 Simulate id=4 push v13 type:Tagged <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return v13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Mark unreachable blocks"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 0 s17 Constant 0 type:Smi <|@
0 0 t12 Constant 0x333080a1 <the hole> [map 0x29e08211] <|@
0 0 t6 Constant 0x33308091 <undefined> [map 0x29e080f9] <|@
0 4 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 3 t3 Parameter 1 type:Tagged <|@
0 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 v13 Add t3 t4 ! changes[*] type:TaggedNumber <|@
0 0 v14 Simulate id=4 push v13 type:Tagged <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return v13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Dead code elimination"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 v13 Add t3 t4 ! changes[*] type:TaggedNumber <|@
0 0 v14 Simulate id=4 push v13 type:Tagged <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return v13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Escape analysis"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 v13 Add t3 t4 ! changes[*] type:TaggedNumber <|@
0 0 v14 Simulate id=4 push v13 type:Tagged <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return v13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Load elimination"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 v13 Add t3 t4 ! changes[*] type:TaggedNumber <|@
0 0 v14 Simulate id=4 push v13 type:Tagged <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return v13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Infer representations"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 s13 Add t3 t4 ! type:TaggedNumber <|@
0 0 v14 Simulate id=4 push s13 type:Tagged <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return s13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Merge removable simulates"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s13 Add t3 t4 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return s13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Mark deoptimize on undefined"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s13 Add t3 t4 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 0 v16 Return s13 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Representation changes"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s type:TaggedNumber <|@
0 1 s19 Change t4 t to s type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Inferring types"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s type:TaggedNumber <|@
0 1 s19 Change t4 t to s type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Compute safe UInt32 operations"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s type:TaggedNumber <|@
0 1 s19 Change t4 t to s type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Redundant phi elimination"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s type:TaggedNumber <|@
0 1 s19 Change t4 t to s type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Canonicalize"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s type:TaggedNumber <|@
0 1 s19 Change t4 t to s type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Global value numbering"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s type:TaggedNumber <|@
0 1 s19 Change t4 t to s type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Check Elimination"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s type:TaggedNumber <|@
0 1 s19 Change t4 t to s type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Range analysis"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? type:TaggedNumber <|@
0 1 s19 Change t4 t to s type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Compute change undefined to nan"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Stack check elimination"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Bounds checks elimination"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Dehoist index computations"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Dead code elimination"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Restore actual values"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "H_Mark unreachable blocks"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
end_block
end_cfg
begin_cfg
name "L_Building chunk"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context v1(R)= [hir:t1] <|@
6 gap () () () () [hir:t1] <|@
8 parameter v2(=-3S)= [hir:t2] <|@
10 gap () () () () [hir:t2] <|@
12 parameter v3(=-2S)= [hir:t3] <|@
14 gap () () () () [hir:t3] <|@
16 parameter v4(=-1S)= [hir:t4] <|@
18 gap () () () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () () () () [hir:v9] <|@
28 stack-check = v1(=esi) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] {} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:v11] <|@
34 gap () () () () [hir:v11] <|@
36 check-smi v18(1)= v3(R) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s18] <|@
38 gap () () () () [hir:s18] <|@
40 check-smi v19(1)= v4(R) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s19] <|@
42 gap () () () () [hir:s19] <|@
44 add-i v13(1)= v19(R) v18 [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s13] <|@
46 gap () () () () [hir:s13] <|@
48 dummy-use v20(1)= v13(R) [hir:t20] <|@
50 gap () () () () [hir:t20] <|@
52 return = v20(=eax) NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_cfg
name "L_Register constraints"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context v1(R)= [hir:t1] <|@
6 gap ((0) = v1(R);) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () (v2(-) = [stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () (v3(-) = [stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () (v4(-) = [stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = v1(-);) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] {[esi|R]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:v11] <|@
34 gap () (v18(R) = v3(-);) () () [hir:v11] <|@
36 check-smi v18(1)= v18(R) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s18] <|@
38 gap ((0) = v18(1);) (v19(R) = v4(-);) () () [hir:s18] <|@
40 check-smi v19(1)= v19(R) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s19] <|@
42 gap ((0) = v19(1);) (v13(R) = v19(-);) () () [hir:s19] <|@
44 add-i v13(1)= v13(R) v18 [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s13] <|@
46 gap ((0) = v13(1);) (v20(R) = v13(-);) () () [hir:s13] <|@
48 dummy-use v20(1)= v20(R) [hir:t20] <|@
50 gap ((0) = v20(1);) ([eax|R] = v20(-);) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_intervals
name "L_Register constraints"
end_intervals
begin_cfg
name "L_Resolve phis"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context v1(R)= [hir:t1] <|@
6 gap ((0) = v1(R);) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () (v2(-) = [stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () (v3(-) = [stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () (v4(-) = [stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = v1(-);) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] {[esi|R]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:v11] <|@
34 gap () (v18(R) = v3(-);) () () [hir:v11] <|@
36 check-smi v18(1)= v18(R) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s18] <|@
38 gap ((0) = v18(1);) (v19(R) = v4(-);) () () [hir:s18] <|@
40 check-smi v19(1)= v19(R) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s19] <|@
42 gap ((0) = v19(1);) (v13(R) = v19(-);) () () [hir:s19] <|@
44 add-i v13(1)= v13(R) v18 [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s13] <|@
46 gap ((0) = v13(1);) (v20(R) = v13(-);) () () [hir:s13] <|@
48 dummy-use v20(1)= v20(R) [hir:t20] <|@
50 gap ((0) = v20(1);) ([eax|R] = v20(-);) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_intervals
name "L_Resolve phis"
end_intervals
begin_cfg
name "L_Build live ranges"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context v1(R)= [hir:t1] <|@
6 gap ((0) = v1(R);) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () (v2(-) = [stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () (v3(-) = [stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () (v4(-) = [stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = v1(-);) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] {[esi|R]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:v11] <|@
34 gap () (v18(R) = v3(-);) () () [hir:v11] <|@
36 check-smi v18(1)= v18(R) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s18] <|@
38 gap ((0) = v18(1);) (v19(R) = v4(-);) () () [hir:s18] <|@
40 check-smi v19(1)= v19(R) [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s19] <|@
42 gap ((0) = v19(1);) (v13(R) = v19(-);) () () [hir:s19] <|@
44 add-i v13(1)= v13(R) v18 [id=3|parameters=3|arguments_stack_height=0|v2(-);v3(-);v4(-);v1(-)] [hir:s13] <|@
46 gap ((0) = v13(1);) (v20(R) = v13(-);) () () [hir:s13] <|@
48 dummy-use v20(1)= v20(R) [hir:t20] <|@
50 gap ((0) = v20(1);) ([eax|R] = v20(-);) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_intervals
name "L_Build live ranges"
-7 fixed "xmm1" -7 -1 [28, 29[ ""
-8 fixed "xmm2" -8 -1 [28, 29[ ""
-9 fixed "xmm3" -9 -1 [28, 29[ ""
-10 fixed "xmm4" -10 -1 [28, 29[ ""
-11 fixed "xmm5" -11 -1 [28, 29[ ""
-12 fixed "xmm6" -12 -1 [28, 29[ ""
-13 fixed "xmm7" -13 -1 [28, 29[ ""
-1 fixed "eax" -1 -1 [28, 29[ [50, 53[ ""
-2 fixed "ecx" -2 -1 [28, 29[ ""
-3 fixed "edx" -3 -1 [28, 29[ ""
-4 fixed "ebx" -4 -1 [28, 29[ ""
-5 fixed "esi" -5 -1 [26, 29[ ""
-6 fixed "edi" -6 -1 [28, 29[ ""
1 object 1 -1 [4, 45[ 4 M ""
2 object 2 -1 [10, 45[ ""
3 object 3 -1 [14, 45[ ""
4 object 4 -1 [18, 45[ ""
13 object 13 -1 [42, 46[ 42 M 44 M 44 M ""
18 object 18 -1 [34, 44[ 34 M 36 M 37 M 44 M ""
19 object 19 -1 [38, 42[ 38 M 40 M 41 M ""
20 object 20 -1 [46, 50[ 46 M 48 M 49 M ""
end_intervals
begin_cfg
name "L_Allocate general registers"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v11] <|@
34 gap () ([eax|R] = [stack:-2];) () () [hir:v11] <|@
36 check-smi [eax|R]= [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s18] <|@
38 gap ((0) = [eax|R];) ([ecx|R] = [stack:-1];) () () [hir:s18] <|@
40 check-smi [ecx|R]= [ecx|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s19] <|@
42 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s19] <|@
44 add-i [ecx|R]= [ecx|R] [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s13] <|@
46 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s13] <|@
48 dummy-use [ecx|R]= [ecx|R] [hir:t20] <|@
50 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_intervals
name "L_Allocate general registers"
-7 fixed "xmm1" -7 -1 [28, 29[ ""
-8 fixed "xmm2" -8 -1 [28, 29[ ""
-9 fixed "xmm3" -9 -1 [28, 29[ ""
-10 fixed "xmm4" -10 -1 [28, 29[ ""
-11 fixed "xmm5" -11 -1 [28, 29[ ""
-12 fixed "xmm6" -12 -1 [28, 29[ ""
-13 fixed "xmm7" -13 -1 [28, 29[ ""
-1 fixed "eax" -1 -1 [28, 29[ [50, 53[ ""
-2 fixed "ecx" -2 -1 [28, 29[ ""
-3 fixed "edx" -3 -1 [28, 29[ ""
-4 fixed "ebx" -4 -1 [28, 29[ ""
-5 fixed "esi" -5 -1 [26, 29[ ""
-6 fixed "edi" -6 -1 [28, 29[ ""
1 object "eax" 1 -1 [4, 28[ 4 M ""
2 object "stack:-3" 2 -1 [10, 45[ ""
3 object "stack:-2" 3 -1 [14, 45[ ""
4 object "stack:-1" 4 -1 [18, 45[ ""
13 object "ecx" 13 -1 [42, 46[ 42 M 44 M 44 M ""
18 object "eax" 18 -1 [34, 44[ 34 M 36 M 37 M 44 M ""
19 object "ecx" 19 -1 [38, 42[ 38 M 40 M 41 M ""
20 object "ecx" 20 -1 [46, 50[ 46 M 48 M 49 M ""
21 object "stack:1" 1 -1 [28, 45[ ""
end_intervals
begin_cfg
name "L_Allocate double registers"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v11] <|@
34 gap () ([eax|R] = [stack:-2];) () () [hir:v11] <|@
36 check-smi [eax|R]= [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s18] <|@
38 gap ((0) = [eax|R];) ([ecx|R] = [stack:-1];) () () [hir:s18] <|@
40 check-smi [ecx|R]= [ecx|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s19] <|@
42 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s19] <|@
44 add-i [ecx|R]= [ecx|R] [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s13] <|@
46 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s13] <|@
48 dummy-use [ecx|R]= [ecx|R] [hir:t20] <|@
50 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_intervals
name "L_Allocate double registers"
-7 fixed "xmm1" -7 -1 [28, 29[ ""
-8 fixed "xmm2" -8 -1 [28, 29[ ""
-9 fixed "xmm3" -9 -1 [28, 29[ ""
-10 fixed "xmm4" -10 -1 [28, 29[ ""
-11 fixed "xmm5" -11 -1 [28, 29[ ""
-12 fixed "xmm6" -12 -1 [28, 29[ ""
-13 fixed "xmm7" -13 -1 [28, 29[ ""
-1 fixed "eax" -1 -1 [28, 29[ [50, 53[ ""
-2 fixed "ecx" -2 -1 [28, 29[ ""
-3 fixed "edx" -3 -1 [28, 29[ ""
-4 fixed "ebx" -4 -1 [28, 29[ ""
-5 fixed "esi" -5 -1 [26, 29[ ""
-6 fixed "edi" -6 -1 [28, 29[ ""
1 object "eax" 1 -1 [4, 28[ 4 M ""
2 object "stack:-3" 2 -1 [10, 45[ ""
3 object "stack:-2" 3 -1 [14, 45[ ""
4 object "stack:-1" 4 -1 [18, 45[ ""
13 object "ecx" 13 -1 [42, 46[ 42 M 44 M 44 M ""
18 object "eax" 18 -1 [34, 44[ 34 M 36 M 37 M 44 M ""
19 object "ecx" 19 -1 [38, 42[ 38 M 40 M 41 M ""
20 object "ecx" 20 -1 [46, 50[ 46 M 48 M 49 M ""
21 object "stack:1" 1 -1 [28, 45[ ""
end_intervals
begin_cfg
name "L_Populate pointer maps"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R];[stack:1]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v11] <|@
34 gap () ([eax|R] = [stack:-2];) () () [hir:v11] <|@
36 check-smi [eax|R]= [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s18] <|@
38 gap ((0) = [eax|R];) ([ecx|R] = [stack:-1];) () () [hir:s18] <|@
40 check-smi [ecx|R]= [ecx|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s19] <|@
42 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s19] <|@
44 add-i [ecx|R]= [ecx|R] [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s13] <|@
46 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s13] <|@
48 dummy-use [ecx|R]= [ecx|R] [hir:t20] <|@
50 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_intervals
name "L_Populate pointer maps"
-7 fixed "xmm1" -7 -1 [28, 29[ ""
-8 fixed "xmm2" -8 -1 [28, 29[ ""
-9 fixed "xmm3" -9 -1 [28, 29[ ""
-10 fixed "xmm4" -10 -1 [28, 29[ ""
-11 fixed "xmm5" -11 -1 [28, 29[ ""
-12 fixed "xmm6" -12 -1 [28, 29[ ""
-13 fixed "xmm7" -13 -1 [28, 29[ ""
-1 fixed "eax" -1 -1 [28, 29[ [50, 53[ ""
-2 fixed "ecx" -2 -1 [28, 29[ ""
-3 fixed "edx" -3 -1 [28, 29[ ""
-4 fixed "ebx" -4 -1 [28, 29[ ""
-5 fixed "esi" -5 -1 [26, 29[ ""
-6 fixed "edi" -6 -1 [28, 29[ ""
1 object "eax" 1 -1 [4, 28[ 4 M ""
2 object "stack:-3" 2 -1 [10, 45[ ""
3 object "stack:-2" 3 -1 [14, 45[ ""
4 object "stack:-1" 4 -1 [18, 45[ ""
13 object "ecx" 13 -1 [42, 46[ 42 M 44 M 44 M ""
18 object "eax" 18 -1 [34, 44[ 34 M 36 M 37 M 44 M ""
19 object "ecx" 19 -1 [38, 42[ 38 M 40 M 41 M ""
20 object "ecx" 20 -1 [46, 50[ 46 M 48 M 49 M ""
21 object "stack:1" 1 -1 [28, 45[ ""
end_intervals
begin_cfg
name "L_Connect ranges"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R];[stack:1]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v11] <|@
34 gap () ([eax|R] = [stack:-2];) () () [hir:v11] <|@
36 check-smi [eax|R]= [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s18] <|@
38 gap ((0) = [eax|R];) ([ecx|R] = [stack:-1];) () () [hir:s18] <|@
40 check-smi [ecx|R]= [ecx|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s19] <|@
42 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s19] <|@
44 add-i [ecx|R]= [ecx|R] [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s13] <|@
46 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s13] <|@
48 dummy-use [ecx|R]= [ecx|R] [hir:t20] <|@
50 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_intervals
name "L_Connect ranges"
-7 fixed "xmm1" -7 -1 [28, 29[ ""
-8 fixed "xmm2" -8 -1 [28, 29[ ""
-9 fixed "xmm3" -9 -1 [28, 29[ ""
-10 fixed "xmm4" -10 -1 [28, 29[ ""
-11 fixed "xmm5" -11 -1 [28, 29[ ""
-12 fixed "xmm6" -12 -1 [28, 29[ ""
-13 fixed "xmm7" -13 -1 [28, 29[ ""
-1 fixed "eax" -1 -1 [28, 29[ [50, 53[ ""
-2 fixed "ecx" -2 -1 [28, 29[ ""
-3 fixed "edx" -3 -1 [28, 29[ ""
-4 fixed "ebx" -4 -1 [28, 29[ ""
-5 fixed "esi" -5 -1 [26, 29[ ""
-6 fixed "edi" -6 -1 [28, 29[ ""
1 object "eax" 1 -1 [4, 28[ 4 M ""
2 object "stack:-3" 2 -1 [10, 45[ ""
3 object "stack:-2" 3 -1 [14, 45[ ""
4 object "stack:-1" 4 -1 [18, 45[ ""
13 object "ecx" 13 -1 [42, 46[ 42 M 44 M 44 M ""
18 object "eax" 18 -1 [34, 44[ 34 M 36 M 37 M 44 M ""
19 object "ecx" 19 -1 [38, 42[ 38 M 40 M 41 M ""
20 object "ecx" 20 -1 [46, 50[ 46 M 48 M 49 M ""
21 object "stack:1" 1 -1 [28, 45[ ""
end_intervals
begin_cfg
name "L_Resolve control flow"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R];[stack:1]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v11] <|@
34 gap () ([eax|R] = [stack:-2];) () () [hir:v11] <|@
36 check-smi [eax|R]= [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s18] <|@
38 gap ((0) = [eax|R];) ([ecx|R] = [stack:-1];) () () [hir:s18] <|@
40 check-smi [ecx|R]= [ecx|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s19] <|@
42 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s19] <|@
44 add-i [ecx|R]= [ecx|R] [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s13] <|@
46 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s13] <|@
48 dummy-use [ecx|R]= [ecx|R] [hir:t20] <|@
50 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
begin_intervals
name "L_Resolve control flow"
-7 fixed "xmm1" -7 -1 [28, 29[ ""
-8 fixed "xmm2" -8 -1 [28, 29[ ""
-9 fixed "xmm3" -9 -1 [28, 29[ ""
-10 fixed "xmm4" -10 -1 [28, 29[ ""
-11 fixed "xmm5" -11 -1 [28, 29[ ""
-12 fixed "xmm6" -12 -1 [28, 29[ ""
-13 fixed "xmm7" -13 -1 [28, 29[ ""
-1 fixed "eax" -1 -1 [28, 29[ [50, 53[ ""
-2 fixed "ecx" -2 -1 [28, 29[ ""
-3 fixed "edx" -3 -1 [28, 29[ ""
-4 fixed "ebx" -4 -1 [28, 29[ ""
-5 fixed "esi" -5 -1 [26, 29[ ""
-6 fixed "edi" -6 -1 [28, 29[ ""
1 object "eax" 1 -1 [4, 28[ 4 M ""
2 object "stack:-3" 2 -1 [10, 45[ ""
3 object "stack:-2" 3 -1 [14, 45[ ""
4 object "stack:-1" 4 -1 [18, 45[ ""
13 object "ecx" 13 -1 [42, 46[ 42 M 44 M 44 M ""
18 object "eax" 18 -1 [34, 44[ 34 M 36 M 37 M 44 M ""
19 object "ecx" 19 -1 [38, 42[ 38 M 40 M 41 M ""
20 object "ecx" 20 -1 [46, 50[ 46 M 48 M 49 M ""
21 object "stack:1" 1 -1 [28, 45[ ""
end_intervals
begin_cfg
name "L_Mark empty blocks"
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R];[stack:1]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v11] <|@
34 gap () ([eax|R] = [stack:-2];) () () [hir:v11] <|@
36 check-smi [eax|R]= [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s18] <|@
38 gap ((0) = [eax|R];) ([ecx|R] = [stack:-1];) () () [hir:s18] <|@
40 check-smi [ecx|R]= [ecx|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s19] <|@
42 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s19] <|@
44 add-i [ecx|R]= [ecx|R] [eax|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s13] <|@
46 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s13] <|@
48 dummy-use [ecx|R]= [ecx|R] [hir:t20] <|@
50 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
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 22
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 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
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 24
last_lir_id 54
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 s18 Change t3 t to s -0? allow-undefined-as-nan type:TaggedNumber <|@
0 1 s19 Change t4 t to s allow-undefined-as-nan type:TaggedNumber <|@
0 1 s13 Add s18 s19 ! type:TaggedNumber <|@
0 1 s15 Constant 2 type:Smi <|@
0 1 t20 Change s13 s to t <|@
0 0 v16 Return t20 (pop s15 values) type:Tagged <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R];[stack:1]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|deopt_id=0|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v11] <|@
34 gap () ([eax|R] = [stack:-2];) () () [hir:v11] <|@
36 check-smi [eax|R]= [eax|R] [id=3|deopt_id=1|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s18] <|@
38 gap ((0) = [eax|R];) ([ecx|R] = [stack:-1];) () () [hir:s18] <|@
40 check-smi [ecx|R]= [ecx|R] [id=3|deopt_id=2|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s19] <|@
42 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s19] <|@
44 add-i [ecx|R]= [ecx|R] [eax|R] [id=3|deopt_id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:s13] <|@
46 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:s13] <|@
48 dummy-use [ecx|R]= [ecx|R] [hir:t20] <|@
50 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:t20] <|@
52 return = [eax|R] NULL [constant:15] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
end_LIR
end_block
end_cfg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment