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 /runtime/entrypoints/portable | |
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 'runtime/entrypoints/portable')
11 files changed, 12 insertions, 12 deletions
diff --git a/runtime/entrypoints/portable/portable_alloc_entrypoints.cc b/runtime/entrypoints/portable/portable_alloc_entrypoints.cc index 4c05e75..de95f7d 100644 --- a/runtime/entrypoints/portable/portable_alloc_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_alloc_entrypoints.cc @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/art_method-inl.h" #include "mirror/object-inl.h" diff --git a/runtime/entrypoints/portable/portable_cast_entrypoints.cc b/runtime/entrypoints/portable/portable_cast_entrypoints.cc index a553a22..151b178 100644 --- a/runtime/entrypoints/portable/portable_cast_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_cast_entrypoints.cc @@ -15,7 +15,7 @@ */ #include "common_throws.h" -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/object-inl.h" namespace art { diff --git a/runtime/entrypoints/portable/portable_dexcache_entrypoints.cc b/runtime/entrypoints/portable/portable_dexcache_entrypoints.cc index b37ebcf..9364c46 100644 --- a/runtime/entrypoints/portable/portable_dexcache_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_dexcache_entrypoints.cc @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "gc/accounting/card_table-inl.h" #include "mirror/art_method-inl.h" #include "mirror/object-inl.h" diff --git a/runtime/entrypoints/portable/portable_field_entrypoints.cc b/runtime/entrypoints/portable/portable_field_entrypoints.cc index f48f1a9..371aca4 100644 --- a/runtime/entrypoints/portable/portable_field_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_field_entrypoints.cc @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/art_field-inl.h" #include "mirror/art_method-inl.h" #include "mirror/object-inl.h" diff --git a/runtime/entrypoints/portable/portable_fillarray_entrypoints.cc b/runtime/entrypoints/portable/portable_fillarray_entrypoints.cc index 335a617..686954b 100644 --- a/runtime/entrypoints/portable/portable_fillarray_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_fillarray_entrypoints.cc @@ -15,7 +15,7 @@ */ #include "dex_instruction.h" -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/art_method-inl.h" #include "mirror/object-inl.h" diff --git a/runtime/entrypoints/portable/portable_invoke_entrypoints.cc b/runtime/entrypoints/portable/portable_invoke_entrypoints.cc index eb50ec3..6f9c083 100644 --- a/runtime/entrypoints/portable/portable_invoke_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_invoke_entrypoints.cc @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/art_method-inl.h" #include "mirror/dex_cache-inl.h" #include "mirror/object-inl.h" diff --git a/runtime/entrypoints/portable/portable_jni_entrypoints.cc b/runtime/entrypoints/portable/portable_jni_entrypoints.cc index 3e7b30a..0d0f21b 100644 --- a/runtime/entrypoints/portable/portable_jni_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_jni_entrypoints.cc @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/art_method-inl.h" #include "mirror/object-inl.h" #include "thread-inl.h" diff --git a/runtime/entrypoints/portable/portable_lock_entrypoints.cc b/runtime/entrypoints/portable/portable_lock_entrypoints.cc index 358ac23..fcd3e9d 100644 --- a/runtime/entrypoints/portable/portable_lock_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_lock_entrypoints.cc @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/object-inl.h" namespace art { diff --git a/runtime/entrypoints/portable/portable_thread_entrypoints.cc b/runtime/entrypoints/portable/portable_thread_entrypoints.cc index 9e62e0e..23e1c36 100644 --- a/runtime/entrypoints/portable/portable_thread_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_thread_entrypoints.cc @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/art_method.h" #include "mirror/object-inl.h" #include "verifier/dex_gc_map.h" diff --git a/runtime/entrypoints/portable/portable_throw_entrypoints.cc b/runtime/entrypoints/portable/portable_throw_entrypoints.cc index 189e6b5..9e36a05 100644 --- a/runtime/entrypoints/portable/portable_throw_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_throw_entrypoints.cc @@ -15,7 +15,7 @@ */ #include "dex_instruction.h" -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/art_method-inl.h" #include "mirror/object-inl.h" diff --git a/runtime/entrypoints/portable/portable_trampoline_entrypoints.cc b/runtime/entrypoints/portable/portable_trampoline_entrypoints.cc index 2da016f..7ee869b 100644 --- a/runtime/entrypoints/portable/portable_trampoline_entrypoints.cc +++ b/runtime/entrypoints/portable/portable_trampoline_entrypoints.cc @@ -18,7 +18,7 @@ #define ART_RUNTIME_ENTRYPOINTS_PORTABLE_PORTABLE_ARGUMENT_VISITOR_H_ #include "dex_instruction-inl.h" -#include "entrypoints/entrypoint_utils.h" +#include "entrypoints/entrypoint_utils-inl.h" #include "interpreter/interpreter.h" #include "mirror/art_method-inl.h" #include "mirror/object-inl.h" @@ -431,7 +431,7 @@ extern "C" const void* artPortableResolutionTrampoline(mirror::ArtMethod* called // Expect class to at least be initializing. DCHECK(called->GetDeclaringClass()->IsInitializing()); // Don't want infinite recursion. - DCHECK(code != GetPortableResolutionTrampoline(linker)); + DCHECK(code != linker->GetPortableResolutionTrampoline()); // Set up entry into main method *called_addr = called; } |