mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 14:04:04 -05:00
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.
8792 lines
176 KiB
INI
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
|