OSDN Git Service

Revert "Revert "Enable Load Store Elimination for ARM and ARM64""
authorSerban Constantinescu <serban.constantinescu@arm.com>
Tue, 15 Jul 2014 16:44:21 +0000 (17:44 +0100)
committerSerban Constantinescu <serban.constantinescu@arm.com>
Mon, 28 Jul 2014 18:17:30 +0000 (19:17 +0100)
commit63999683329612292d534e6be09dbde9480f1250
tree4412a387d3fc4313f98138764ce9197f58f9825c
parent3f49507c333b7c8d36620870522a7a1055987ef8
Revert "Revert "Enable Load Store Elimination for ARM and ARM64""

This patch refactors the implementation of the LoadStoreElimination
optimisation pass. Please note that this pass was disabled and not
functional for any of the backends.

The current implementation tracks aliases and handles DalvikRegs as well
as Heap memory regions. It has been tested and it is known to optimise
out the following:
  * Load - Load
  * Store - Load
  * Store - Store
  * Load Literals

Change-Id: I3aadb12a787164146a95bc314e85fa73ad91e12b
14 files changed:
compiler/dex/compiler_enums.h
compiler/dex/frontend.cc
compiler/dex/quick/arm/assemble_arm.cc
compiler/dex/quick/arm/codegen_arm.h
compiler/dex/quick/arm/utility_arm.cc
compiler/dex/quick/arm64/assemble_arm64.cc
compiler/dex/quick/arm64/codegen_arm64.h
compiler/dex/quick/arm64/int_arm64.cc
compiler/dex/quick/arm64/utility_arm64.cc
compiler/dex/quick/local_optimizations.cc
compiler/dex/quick/mir_to_lir-inl.h
compiler/dex/quick/mir_to_lir.cc
compiler/dex/quick/mir_to_lir.h
compiler/dex/reg_storage.h