OSDN Git Service

Optimizing: Better invoke-static/-direct dispatch.
authorVladimir Marko <vmarko@google.com>
Wed, 6 May 2015 13:12:42 +0000 (14:12 +0100)
committerVladimir Marko <vmarko@google.com>
Wed, 19 Aug 2015 11:23:37 +0000 (12:23 +0100)
commit9b688a095afbae21112df5d495487ac5231b12d0
treee5e881d4d124803e66f1e90c1e0a0e4c90d22e13
parent009c34cba875885d9540696f33255a9b355d6e15
Optimizing: Better invoke-static/-direct dispatch.

Add framework for different types of loading ArtMethod*
and code pointer retrieval. Implement invoke-static and
invoke-direct calls the same way as Quick. Document the
dispatch kinds in HInvokeStaticOrDirect's new enumerations
MethodLoadKind and CodePtrLocation.

PC-relative loads from dex cache arrays are used only for
x86-64 and arm64. The implementation for other architectures
will be done in separate CLs.

Change-Id: I468ca4d422dbd14748e1ba6b45289f0d31734d94
21 files changed:
compiler/dex/quick/codegen_util.cc
compiler/driver/compiler_driver-inl.h
compiler/linker/x86/relative_patcher_x86.cc
compiler/optimizing/builder.cc
compiler/optimizing/builder.h
compiler/optimizing/code_generator.cc
compiler/optimizing/code_generator.h
compiler/optimizing/code_generator_arm.cc
compiler/optimizing/code_generator_arm.h
compiler/optimizing/code_generator_arm64.cc
compiler/optimizing/code_generator_arm64.h
compiler/optimizing/code_generator_mips64.cc
compiler/optimizing/code_generator_x86.cc
compiler/optimizing/code_generator_x86.h
compiler/optimizing/code_generator_x86_64.cc
compiler/optimizing/code_generator_x86_64.h
compiler/optimizing/inliner.cc
compiler/optimizing/inliner.h
compiler/optimizing/nodes.h
compiler/optimizing/optimizing_compiler.cc
dex2oat/dex2oat.cc