RFR: 8350118: Simplify the layout access VarHandle [v3]

Jorn Vernee jvernee at openjdk.org
Wed Feb 26 20:27:56 UTC 2025


On Wed, 26 Feb 2025 20:13:42 GMT, Chen Liang <liach at openjdk.org> wrote:

>> Simplify the layout access var handles to be direct in some common cases. Also made `VarHandle::isAccessModeSupported` report if an access mode is supported for a VH.
>> 
>> Reduces the instructions to execute this code in a simple main by 47%:
>> 
>> long[] arr = new long[8];
>> var ms = MemorySegment.ofArray(arr);
>> ms.setAtIndex(ValueLayout.JAVA_BYTE, 12, (byte) 3);
>> 
>> 
>> Main overheads in FFM are identified to be:
>> 1. Eager initialization of direct MethodHandle; can be CDS archived
>> 2. MH combinator forms via LambdaFormEditor, not cached right now and always have large overhead
>> 
>> Still need other measures to deal with common user patterns of `MethodHandles.insertCoordinates(vh, 1, 0L)` which currently is still very slow.
>> 
>> Tests: 2 unrelated failures on tier 1-3
>
> Chen Liang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Jorn vernee review

Some more general questions I have: Using which methodology was the performance impact of this patch measured? How can someone reproduce that measurement (now and in the future)? Is there some script or other automation we could add to the repo to do the measurement?

(I have an idea about the answers, but I think it's good to capture the answers here, as part of this review thread, as well)

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

PR Comment: https://git.openjdk.org/jdk/pull/23720#issuecomment-2686113353


More information about the build-dev mailing list