diff options
author | Mingyao Yang <mingyao@google.com> | 2014-05-15 17:02:16 -0700 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2014-07-11 17:17:10 -0700 |
commit | 98d1cc8033251c93786e2fa8c59a2e555a9493be (patch) | |
tree | f0a76b8fff060ee484af09028da65a8339d57057 /compiler/driver | |
parent | aebf3cda094f34cf846d19a7724bdc8005267c95 (diff) | |
download | art-98d1cc8033251c93786e2fa8c59a2e555a9493be.zip art-98d1cc8033251c93786e2fa8c59a2e555a9493be.tar.gz art-98d1cc8033251c93786e2fa8c59a2e555a9493be.tar.bz2 |
Improve performance of invokevirtual/invokeinterface with embedded imt/vtable
Add an embedded version of imt/vtable into class object. Both tables start at
fixed offset within class object so method/entry point can be loaded directly
from class object for invokeinterface/invokevirtual.
Bug: 8142917
Change-Id: I4240d58cfbe9250107c95c0708c036854c455968
Diffstat (limited to 'compiler/driver')
-rw-r--r-- | compiler/driver/compiler_driver-inl.h | 1 | ||||
-rw-r--r-- | compiler/driver/compiler_driver.cc | 1 | ||||
-rw-r--r-- | compiler/driver/compiler_driver.h | 3 |
3 files changed, 4 insertions, 1 deletions
diff --git a/compiler/driver/compiler_driver-inl.h b/compiler/driver/compiler_driver-inl.h index 324f717..99fcc26 100644 --- a/compiler/driver/compiler_driver-inl.h +++ b/compiler/driver/compiler_driver-inl.h @@ -18,6 +18,7 @@ #define ART_COMPILER_DRIVER_COMPILER_DRIVER_INL_H_ #include "compiler_driver.h" + #include "dex/compiler_ir.h" #include "mirror/art_field.h" #include "mirror/art_field-inl.h" diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index 9bf5135..4b4d0d0 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -25,6 +25,7 @@ #include "base/stl_util.h" #include "base/timing_logger.h" #include "class_linker.h" +#include "compiled_class.h" #include "compiler.h" #include "compiler_driver-inl.h" #include "dex_compilation_unit.h" diff --git a/compiler/driver/compiler_driver.h b/compiler/driver/compiler_driver.h index 9903421..ae709f8 100644 --- a/compiler/driver/compiler_driver.h +++ b/compiler/driver/compiler_driver.h @@ -24,7 +24,6 @@ #include "base/mutex.h" #include "base/timing_logger.h" #include "class_reference.h" -#include "compiled_class.h" #include "compiled_method.h" #include "compiler.h" #include "dex_file.h" @@ -32,6 +31,7 @@ #include "instruction_set.h" #include "invoke_type.h" #include "method_reference.h" +#include "mirror/class.h" // For mirror::Class::Status. #include "os.h" #include "profiler.h" #include "runtime.h" @@ -46,6 +46,7 @@ namespace verifier { class MethodVerifier; } // namespace verifier +class CompiledClass; class CompilerOptions; class DexCompilationUnit; class DexFileToMethodInlinerMap; |