RFR JDK-8207197: [lworld] VarHandle array support for value types
David Simms
david.simms at oracle.com
Tue Jul 17 17:51:27 UTC 2018
Looks good, ship it...
On 17/07/2018 7:33 p.m., mandy chung wrote:
> On 7/17/18 4:18 AM, David Simms wrote:
>>
>> Looks good, some minor suggestions (don't need follow up RFR)...
>>
>>
>> unsafe.cpp:315 :324 :360 :369
>>
>> Suggest moving the "index" calculation into a new method in
>> valueArrayKlass.hpp so any size related calculations are encapsulated
>> in the same place. ("jint ValueArrayKlass::index_at_offset(jlong)" ?)
>
> The index calculation here is for assert and logging which is
> temporary to aid troubleshooting. I don't see the need for
> ValueArrayKlass::index_at_offset and I would leave it as is.
> If we add it, it should probably detect invalid offset where
> possible and return -1.
>
> I move the assert and logging code in its function.
>
>> unsafe.cpp:319 :364
>>
>> Add a final condition "else { ShouldNotReachHere(); }" in the
>> ASSERT block, just in case
>
> Good suggestion. I added that.
>
>> ArrayElementVarHandleTest.java
>>
>> Run this tests with array flattening explicitly disabled via
>> "-XX:-ValueArrayFlatten", and explicitly enabled
>> "-XX:+ValueArrayFlatten" (i.e. 2 jteg @run lines)
>
> Thanks for the flag. I added Unsafe::isFlattenedArray to detect
> if an array is flattened. We will revisit the Unsafe API after LW1.
>
> Webrev
> http://cr.openjdk.java.net/~mchung/valhalla/webrevs/8207197/webrev.01/
>
> Mandy
>
More information about the valhalla-dev
mailing list