summaryrefslogtreecommitdiff
path: root/runtime/art_method-inl.h
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2017-02-01 13:10:06 -0800
committer Mathieu Chartier <mathieuc@google.com> 2017-02-02 17:49:39 +0000
commit90c5a9b889af84cbb840c60e461d5bdbf8dc0df6 (patch)
treeef0cc70d9ad20546f950be3364cbbbdeb05b5db6 /runtime/art_method-inl.h
parent3cb871ab1af47576959fd24a99d370381b8f193e (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.h5
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) {