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
diff --git a/runtime/art_method-inl.h b/runtime/art_method-inl.h
index 7ec3900..950f1aa 100644
--- a/runtime/art_method-inl.h
+++ b/runtime/art_method-inl.h
@@ -374,9 +374,10 @@
}
}
-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) {