summaryrefslogtreecommitdiff
path: root/test/MultiDexModifiedSecondary/Second.java
diff options
context:
space:
mode:
authorArtem Serov <artem.serov@linaro.org>2017-07-20 16:33:59 +0100
committerArtem Serov <artem.serov@linaro.org>2017-12-12 18:13:10 +0000
commit1de1e11ac90db9fad8916ac43d43714ccb8d978f (patch)
tree6653892be4d2372a189c4b82e8c3c8b0be064979 /test/MultiDexModifiedSecondary/Second.java
parent986005c955860a69d788f7ff7d7f28964eb684ad (diff)
ART: Try to statically evaluate some conditions.
If a condition 'cond' is evaluated in an HIf instruction then in the successors of the this HIF_BLOCK we statically know the value of the condition (TRUE in TRUE_SUCC, FALSE in FALSE_SUCC). Using that we could replace another evaluation (use) EVAL of the same 'cond' with TRUE value (FALSE value) if every path from the ENTRY_BLOCK to EVAL_BLOCK contains the edge HIF_BLOCK->TRUE_SUCC (HIF_BLOCK->FALSE_SUCC). if (cond) { ... if (cond) { ... } ... int a = cond ? 5 : 105; ... } The patch is a prerequisite step for "Loop peeling to eliminate invariant exits" however it brings some value on its own with a tiny code size reduction in boot-framework.oat (-8Kb). Test: 458-checker-instruct-simplification Test: test-art-target, test-art-host. Change-Id: Ifbe45097dc2b5f098176fa1a1d023ea90b76d396
Diffstat (limited to 'test/MultiDexModifiedSecondary/Second.java')
0 files changed, 0 insertions, 0 deletions