On Mon, 11 Apr 2022 09:34:17 GMT, ExE Boss <d...@openjdk.java.net> wrote:

>> Claes Redestad has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Simplified as suggested by @ExE-Boss
>
> src/java.base/share/classes/java/lang/invoke/VarHandles.java line 719:
> 
>> 717: //                        
>> MethodHandle.linkToStatic(<LINK_TO_STATIC_ARGS>);
>> 718: //                    } else {
>> 719: //                        MethodHandle mh = 
>> handle.getMethodHandle(ad.mode);
> 
> The `direct`‑ness check can be hoisted into an enclosing `if` statement:
> Suggestion:
> 
> //                    if (direct) {
> //                        if (handle.vform.methodType_table[ad.type] == 
> ad.symbolicMethodTypeErased) {
> //                            
> MethodHandle.linkToStatic(<LINK_TO_STATIC_ARGS>);
> //                            return;
> //                        } else if (handle.vform.getMethodType_V(ad.type) == 
> ad.symbolicMethodTypeErased) {
> //                            
> MethodHandle.linkToStatic(<LINK_TO_STATIC_ARGS>);
> //                            return;
> //                        }
> //                    }
> //                    MethodHandle mh = handle.getMethodHandle(ad.mode);
> 
> 
> Also, any reason `GUARD_METHOD_TEMPLATE_V` uses `LINK_TO_STATIC_ARGS` instead 
> of `LINK_TO_STATIC_ARGS_V`?

> How would the performance change if the `isDirect` and `checkExactAccessMode` 
> merger was reverted?

Add around 15-20ns/op for these micros.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8160

Reply via email to