Files
kevinjeon-g fd6a07d233 Add source<>disassembly highlighting for dex2oat (#7248)
oatdump, the dex2oat dump tool, doesn't output any information that can
be used to associate disassembly with source lines. However, dex2oat's
output optimization CFG (classes.cfg) does contain a final disassembly
stage that retains dex_pc.

Lines of disassembly from oatdump can be associated with lines of
disassembly in classes.cfg, and through the dex_pcs there, be mapped
back to the D8 .smali output, which does contain source line
information.
2025-01-08 11:17:17 -06:00

8792 lines
176 KiB
INI

begin_compilation
name "isa:arm64 isa_features:a53,crc,-lse,-fp16,-dotprod,-sve read_barrier_type:none"
method "isa:arm64 isa_features:a53,crc,-lse,-fp16,-dotprod,-sve read_barrier_type:none"
date 1736268393
end_compilation
begin_compilation
name "void Square.<init>()"
method "void Square.<init>()"
date 1736268393
end_compilation
begin_cfg
name "builder (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none klass:Square can_be_null:false exact:false <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v3 InvokeStaticOrDirect [l0] dex_pc:0 block:B1 dex_file_index:2 method_name:java.lang.Object.<init> always_throws:false method_index:0 intrinsic:None method_load_kind:BootImageRelRo env:[[l0]] loop:none <|@
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v3 InvokeStaticOrDirect [l0] dex_pc:0 block:B1 dex_file_index:2 method_name:java.lang.Object.<init> always_throws:false method_index:0 intrinsic:None method_load_kind:BootImageRelRo env:[[l0]] loop:none <|@
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v3 InvokeStaticOrDirect [l0] dex_pc:0 block:B1 dex_file_index:2 method_name:java.lang.Object.<init> always_throws:false method_index:0 intrinsic:None method_load_kind:BootImageRelRo env:[[l0]] loop:none <|@
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v3 InvokeStaticOrDirect [l0] dex_pc:0 block:B1 dex_file_index:2 method_name:java.lang.Object.<init> always_throws:false method_index:0 intrinsic:None method_load_kind:BootImageRelRo env:[[l0]] loop:none <|@
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v3 InvokeStaticOrDirect [l0] dex_pc:0 block:B1 dex_file_index:2 method_name:java.lang.Object.<init> always_throws:false method_index:0 intrinsic:None method_load_kind:BootImageRelRo env:[[l0]] loop:none <|@
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$initial (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v3 InvokeStaticOrDirect [l0] dex_pc:0 block:B1 dex_file_index:2 method_name:java.lang.Object.<init> always_throws:false method_index:0 intrinsic:None method_load_kind:BootImageRelRo env:[[l0]] loop:none <|@
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$initial (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v3 InvokeStaticOrDirect [l0] dex_pc:0 block:B1 dex_file_index:2 method_name:java.lang.Object.<init> always_throws:false method_index:0 intrinsic:None method_load_kind:BootImageRelRo env:[[l0]] loop:none <|@
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "inliner (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none klass:Square can_be_null:false exact:false <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v3 InvokeStaticOrDirect [l0] dex_pc:0 block:B1 dex_file_index:2 method_name:java.lang.Object.<init> always_throws:false method_index:0 intrinsic:None method_load_kind:BootImageRelRo env:[[l0]] loop:none <|@
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "inliner (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none klass:Square can_be_null:false exact:false <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_inlining (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_inlining (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_inlining (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_inlining (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_inlining (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_inlining (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects$before_gvn (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects$before_gvn (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "GVN (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "GVN (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "select_generator (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "select_generator (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_gvn (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_gvn (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_gvn (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_gvn (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_gvn (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_gvn (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects$before_licm (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects$before_licm (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "licm (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "licm (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "induction_var_analysis (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "induction_var_analysis (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "BCE (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "BCE (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "loop_optimization (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "loop_optimization (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_loop_opt (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_loop_opt (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_loop_opt (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_loop_opt (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_loop_opt (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_loop_opt (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "load_store_elimination (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "load_store_elimination (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "cha_guard_optimization (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "cha_guard_optimization (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "code_sinking (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "code_sinking (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$before_codegen (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$before_codegen (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$before_codegen (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$before_codegen (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$before_codegen (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$before_codegen (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constructor_fence_redundancy_elimination (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constructor_fence_redundancy_elimination (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier_arm64 (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier_arm64 (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "GVN$after_arch (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "GVN$after_arch (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "scheduler (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "scheduler (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "write_barrier_elimination (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "write_barrier_elimination (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "prepare_for_register_allocation (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "prepare_for_register_allocation (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "liveness (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "liveness (after)"
begin_block
name "B0"
from_bci 0
to_bci 8
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true liveness:2 ranges:{[2,5)} uses:[] env_uses:[5] is_fixed:0 is_split:0 is_low:0 is_high:0 loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] liveness:4 loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 liveness:6 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci 8
to_bci 12
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 liveness:10 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci 12
to_bci 16
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 liveness:14 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "register (before)"
begin_block
name "B0"
from_bci 0
to_bci 8
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[l0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci 8
to_bci 12
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci 12
to_bci 16
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "register (after)"
begin_block
name "B0"
from_bci 0
to_bci 8
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true liveness:2 locations:[]->x1 loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 liveness:6 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci 8
to_bci 12
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 liveness:10 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci 12
to_bci 16
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 liveness:14 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "disassembly (after)"
begin_block
name "FrameEntry"
from_bci -1
to_bci -1
predecessors
successors "B0"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 disasm FrameEntry <|@
end_HIR
end_block
begin_block
name "B0"
from_bci 0
to_bci 8
predecessors "FrameEntry"
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 l0 ParameterValue dex_pc:n/a block:B0 is_this:true loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci 8
to_bci 12
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v4 ReturnVoid dex_pc:3 block:B1 loop:none
0x00000000: d65f03c0 ret
<|@
end_HIR
end_block
begin_block
name "B2"
from_bci 12
to_bci 16
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_compilation
name "int Square.square(int)"
method "int Square.square(int)"
date 1736268393
end_compilation
begin_cfg
name "builder (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$initial (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$initial (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "inliner (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "inliner (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects$before_gvn (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects$before_gvn (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "GVN (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "GVN (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "select_generator (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "select_generator (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_gvn (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_gvn (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_gvn (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_gvn (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_gvn (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_gvn (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects$before_licm (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects$before_licm (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "licm (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "licm (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "induction_var_analysis (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "induction_var_analysis (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "BCE (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "BCE (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "loop_optimization (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "loop_optimization (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_loop_opt (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$after_loop_opt (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_loop_opt (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$after_loop_opt (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_loop_opt (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$after_loop_opt (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "load_store_elimination (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "load_store_elimination (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "cha_guard_optimization (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "cha_guard_optimization (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "code_sinking (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "code_sinking (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$before_codegen (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constant_folding$before_codegen (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$before_codegen (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier$before_codegen (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$before_codegen (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "dead_code_elimination$before_codegen (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constructor_fence_redundancy_elimination (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "constructor_fence_redundancy_elimination (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier_arm64 (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "instruction_simplifier_arm64 (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "side_effects (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "GVN$after_arch (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "GVN$after_arch (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "scheduler (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "scheduler (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "write_barrier_elimination (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "write_barrier_elimination (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "prepare_for_register_allocation (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "prepare_for_register_allocation (after)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "liveness (before)"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "liveness (after)"
begin_block
name "B0"
from_bci 0
to_bci 8
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false liveness:2 ranges:{[2,11)} uses:[11,11] env_uses:[] is_fixed:0 is_split:0 is_low:0 is_high:0 loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] liveness:4 loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 liveness:6 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci 8
to_bci 14
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 liveness:10 ranges:{[10,12)} uses:[12] env_uses:[] is_fixed:0 is_split:0 is_low:0 is_high:0 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 liveness:12 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci 14
to_bci 18
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 liveness:16 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "register (before)"
begin_block
name "B0"
from_bci 0
to_bci 8
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v1 SuspendCheck dex_pc:0 block:B0 is_no_op:false env:[[i0]] loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci 8
to_bci 14
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci 14
to_bci 18
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "register (after)"
begin_block
name "B0"
from_bci 0
to_bci 8
predecessors
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false liveness:2 locations:[]->x1 loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 liveness:6 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci 8
to_bci 14
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 liveness:10 locations:[x1,x1]->x0 loop:none <|@
0 0 v4 Return [i3] dex_pc:1 block:B1 liveness:12 locations:[x0]->invalid loop:none <|@
end_HIR
end_block
begin_block
name "B2"
from_bci 14
to_bci 18
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 liveness:16 loop:none <|@
end_HIR
end_block
end_cfg
begin_cfg
name "disassembly (after)"
begin_block
name "FrameEntry"
from_bci -1
to_bci -1
predecessors
successors "B0"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 disasm FrameEntry <|@
end_HIR
end_block
begin_block
name "B0"
from_bci 0
to_bci 8
predecessors "FrameEntry"
successors "B1"
xhandlers
flags
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 2 i0 ParameterValue dex_pc:n/a block:B0 is_this:false loop:none <|@
0 0 v2 Goto dex_pc:0 block:B0 target:B1 loop:none <|@
end_HIR
end_block
begin_block
name "B1"
from_bci 8
to_bci 14
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 1 i3 Mul [i0,i0] dex_pc:0 block:B1 loop:none
0x00000000: 1b017c20 mul w0, w1, w1
<|@
0 0 v4 Return [i3] dex_pc:1 block:B1 loop:none
0x00000004: d65f03c0 ret
<|@
end_HIR
end_block
begin_block
name "B2"
from_bci 14
to_bci 18
predecessors "B1"
successors
xhandlers
flags
dominator "B1"
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v5 Exit dex_pc:n/a block:B2 loop:none <|@
end_HIR
end_block
end_cfg