diff options
| author | 2017-02-01 13:10:06 -0800 | |
|---|---|---|
| committer | 2017-02-02 17:49:39 +0000 | |
| commit | 90c5a9b889af84cbb840c60e461d5bdbf8dc0df6 (patch) | |
| tree | ef0cc70d9ad20546f950be3364cbbbdeb05b5db6 /runtime/art_method-inl.h | |
| parent | 3cb871ab1af47576959fd24a99d370381b8f193e (diff) | |
Various improvements to stack walking speed
Make BitMemoryRegion constructor inlined, remove read barrier
for IsProxyMethod.
Around 15% speedup for pmd benchmark, maybe more for CC.
Test: test-art-host
Change-Id: Ib4392649e041406e538cc944c26c69f68d388fb4
Diffstat (limited to 'runtime/art_method-inl.h')
| -rw-r--r-- | runtime/art_method-inl.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/runtime/art_method-inl.h b/runtime/art_method-inl.h index 7ec3900aa9..950f1aa9f4 100644 --- a/runtime/art_method-inl.h +++ b/runtime/art_method-inl.h @@ -374,9 +374,10 @@ inline mirror::DexCache* ArtMethod::GetDexCache() { } } -template<ReadBarrierOption kReadBarrierOption> inline bool ArtMethod::IsProxyMethod() { - return GetDeclaringClass<kReadBarrierOption>()->IsProxyClass(); + // Avoid read barrier since the from-space version of the class will have the correct proxy class + // flags since they are constant for the lifetime of the class. + return GetDeclaringClass<kWithoutReadBarrier>()->IsProxyClass(); } inline ArtMethod* ArtMethod::GetInterfaceMethodIfProxy(PointerSize pointer_size) { |