RFR: 8199946: Move load/store and encode/decode out of oopDesc
Stefan Karlsson
stefan.karlsson at oracle.com
Fri Mar 23 12:27:23 UTC 2018
On 2018-03-23 13:28, Erik Österlund wrote:
> Hi Stefan,
>
> Looks good. There is one remaining OOP_NOT_NULL in
> psScavenge.inline.hpp, but I do not need another webrev.
Fixed. Thanks for the review!
StefanK
>
> Thanks,
> /Erik
>
> On 2018-03-22 20:28, Stefan Karlsson wrote:
>> Erik found two places where I didn't use OOP_NOT_NULL, where we
>> previously used _not_null functions.
>>
>> diff --git a/src/hotspot/share/gc/cms/parNewGeneration.cpp
>> b/src/hotspot/share/gc/cms/parNewGeneration.cpp
>> --- a/src/hotspot/share/gc/cms/parNewGeneration.cpp
>> +++ b/src/hotspot/share/gc/cms/parNewGeneration.cpp
>> @@ -734,7 +734,7 @@
>> oop new_obj = obj->is_forwarded()
>> ? obj->forwardee()
>> :
>> _g->DefNewGeneration::copy_to_survivor_space(obj);
>> - RawAccess<>::oop_store(p, new_obj);
>> + RawAccess<OOP_NOT_NULL>::oop_store(p, new_obj);
>> }
>> if (_gc_barrier) {
>> // If p points to a younger generation, mark the card.
>> diff --git a/src/hotspot/share/gc/cms/parOopClosures.inline.hpp
>> b/src/hotspot/share/gc/cms/parOopClosures.inline.hpp
>> --- a/src/hotspot/share/gc/cms/parOopClosures.inline.hpp
>> +++ b/src/hotspot/share/gc/cms/parOopClosures.inline.hpp
>> @@ -52,7 +52,7 @@
>> new_obj =
>> ((ParNewGeneration*)_g)->copy_to_survivor_space(_par_scan_state,
>> obj, obj_sz, m);
>> }
>> - RawAccess<>::oop_store(p, new_obj);
>> + RawAccess<OOP_NOT_NULL>::oop_store(p, new_obj);
>> }
>> }
>>
>> StefanK
>>
>> On 2018-03-22 17:01, Stefan Karlsson wrote:
>>> Hi,
>>>
>>> This patch needs Erik's change to the LoadProxies:
>>> http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2018-March/021504.html
>>>
>>>
>>> to build on fastdebug.
>>>
>>> Here's a rebased patch:
>>> http://cr.openjdk.java.net/~stefank/8199946/webrev.02/
>>>
>>> Thanks,
>>> StefanK
>>>
>>> On 2018-03-21 18:27, Stefan Karlsson wrote:
>>>> Hi all,
>>>>
>>>> Please review this patch to get rid of the oopDesc::load/store
>>>> functions and to move the oopDesc::encode/decode functions to a new
>>>> CompressedOops subsystem.
>>>>
>>>> http://cr.openjdk.java.net/~stefank/8199946/webrev.01
>>>> https://bugs.openjdk.java.net/browse/JDK-8199946
>>>>
>>>> When the Access API was introduced many of the usages of
>>>> oopDesc::load_decode_heap_oop, and friends, were replaced by calls
>>>> to the Access API. However, there are still some usages of these
>>>> functions, most notably in the GC code.
>>>>
>>>> This patch is two-fold:
>>>>
>>>> 1) It replaces the oopDesc load and store calls with RawAccess
>>>> equivalents.
>>>>
>>>> 2) It moves the oopDesc encode and decode functions to a new,
>>>> separate, subsystem called CompressedOops. A future patch could even
>>>> move all the Universe::_narrow_oop variables over to CompressedOops.
>>>>
>>>> The second part has the nice property that it breaks up a circular
>>>> dependency between oop.inline.hpp and access.inline.hpp. After the
>>>> change we have:
>>>>
>>>> oop.inline.hpp includes:
>>>> access.inline.hpp
>>>> compressedOops.inline.hpp
>>>>
>>>> access.inline.hpp includes:
>>>> compressedOops.inline.hpp
>>>>
>>>> Thanks,
>>>> StefanK
>>
>>
>
More information about the hotspot-dev
mailing list