RFR: 8231497: [lworld] Inline type use of Access API (Runtime)
Frederic Parain
frederic.parain at oracle.com
Fri Sep 27 12:01:19 UTC 2019
Sounds good.
Reviewed with the name change below.
Thank you,
Fred
> On Sep 27, 2019, at 07:08, David Simms <david.simms at oracle.com> wrote:
>
>
> I agree with your concern here; propose "value_alloc_copy_from_index()" for the return oop method ?
>
>
> On 26/09/19 5:46 PM, Frederic Parain wrote:
>> In addition of fixing some GCs issues, it also makes the code
>> much cleaner!
>>
>> Thank you for having included the handling of empty values in
>> the copy methods, it will be easier to maintain.
>>
>> I have an issue with method naming in valueArrayOop.hpp:
>>
>> 41 static oop value_copy_from_index(valueArrayHandle vah, int index, TRAPS);
>> 42 void value_copy_from_index(int index, oop dst) const;
>>
>> Two methods with the same name, but one returns an oops, the other void,
>> one is static, one is not. Even if arguments are different, I’m concerned
>> that this overloaded name could lead to confusion.
>>
>> Regards,
>>
>> Fred
>>
>>
>>
>>> On Sep 26, 2019, at 10:23, David Simms <david.simms at oracle.com> wrote:
>>>
>>>
>>>
>>> Bug/RFE: https://bugs.openjdk.java.net/browse/JDK-8231497
>>>
>>> Webrev: http://cr.openjdk.java.net/~dsimms/valhalla/8231497/webrev0/
>>>
>>>
>>>
>>> Hi,
>>>
>>> So for the longest time Valhalla has completely ignored the Heap Access API, and gone and used write barriers directly, thereby breaking other GCs with different barrier requirements.
>>>
>>> Here is a 1st pass at adding the required Heap Access API for "inline types", and an runtime (C++) implementation for modBarrierSet and zBarrierSet. No compiler support as yet, I've open another bug[1] for that.
>>>
>>> Webrev notes:
>>>
>>> • Reviewed the actual Access API changes already with Erik Österlund, he's okayed it.
>>> • There was some inline header file clean up required, sorry for the noise
>>> • Hotspot convention uses the Access API in *Oop and * Klass implementation, not directly in runtime code
>>> • ValueKlass has "value_copy_*" API since it deals with naked payload (inlined layout from different containers), not just oops (otherwise they could have gone into oop API)
>>> • Rather than a single "value_store", gone with multiple methods so call-site can use the appropriate decorators
>>> • Remove runtime conditions
>>> • Feel free to have an opinion on the "value_copy*" API naming
>>> • Passes testing
>>> • ValueOops -Xint, C1 and C2 need further fix [1]
>>>
>>>
>>> [1] https://bugs.openjdk.java.net/browse/JDK-8231498
>>>
>
More information about the valhalla-dev
mailing list