RFR (S) 8247296: Optimize JVM_GetDeclaringClass

Yumin Qi yumin.qi at oracle.com
Fri Jul 24 05:54:31 UTC 2020


Hi, David

   Looks good to me. I have done a quick search and found (may not cover 
all):

1) 
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/compileBroker.cpp#L834

    Where thread_handle resolved multiple times.

2) 
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/prims/jni.cpp#L1174

     Where clazz resolved twice.

     Do you want to include those two files in your list?

Thanks

Yumin

On 7/23/20 8:49 PM, David Holmes wrote:
> Bug: https://bugs.openjdk.java.net/browse/JDK-8247296
> webrev: http://cr.openjdk.java.net/~dholmes/8247296/webrev/
>
> Please review this simple optimization contributed by Christoph Dreis 
> in its initial form and then expanded by me to cover other cases in 
> jvm.cpp.
>
> http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2020-June/040025.html 
>
>
> There is a common pattern of code of the form:
>
> if 
> (java_lang_Class::is_primitive(JNIHandles::resolve_non_null(ofClass)) ||
>     ! 
> java_lang_Class::as_Klass(JNIHandles::resolve_non_null(ofClass))->is_instance_klass()) 
> {
>
> which resolves cls twice. There are also duplicate calls to as_Klass 
> that can be removed in a couple of cases.
>
> Testing: tiers 1 - 3
>
> Thanks,
> David


More information about the hotspot-runtime-dev mailing list