OSDN Git Service

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)
committerbuzbee <buzbee@google.com>
Sun, 27 Jul 2014 17:06:27 +0000 (10:06 -0700)
commitfcc36ba2a2b8fd10e6eebd21ecb6329606443ded
tree58084b4fdb842b129324e034ac1a195f6d0cee4e
parenta65d63e4eb81605fd798f1ca038d651b0faa29eb
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: Iefae9b696f87f833ef35c451ed4d49c5a1b6fde0
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