RFR: 8223136: Move compressed oops functions to CompressedOops class

Stefan Karlsson stefan.karlsson at oracle.com
Thu May 2 14:17:11 UTC 2019


On 2019-05-02 16:12, coleen.phillimore at oracle.com wrote:
>
> Hi Stefan, This seems fine but I'd really like to have the #include 
> universe.hpp part of the patch broken out, as much as possible.

OK. Thanks for the feedback. Let me work on that and get back to you 
with a few separate patches.

Thanks,
StefanK

>
> Thanks,
> Coleen
>
> On 5/2/19 8:44 AM, Stefan Karlsson wrote:
>> Hi all,
>>
>> Rebased on top of latest changes (jdk/jdk @ edd709e64ea1):
>>  http://cr.openjdk.java.net/~stefank/8223136/webrev.02/
>>
>> Thanks,
>> StefanK
>>
>>
>> On 2019-04-30 10:58, Stefan Karlsson wrote:
>>> Hi all,
>>>
>>> Please review this patch to move the rest of the compressed oops 
>>> functions and variables over to CompressedOops.
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01
>>> https://bugs.openjdk.java.net/browse/JDK-8223136
>>>
>>> In 'JDK-8199946: Move load/store and encode/decode out of oopDesc' 
>>> the decoding and encoding of compressed oops were moved into the 
>>> namespace named CompressedOops.
>>>
>>> There infrastructure used by these functions were left in Universe. 
>>> This patch moves rest of the functions and variables over to 
>>> CompressedOops. I decided to convert the CompressedOops namespace 
>>> into a proper AllStatic class, to avoid any potential problems with 
>>> VMStructs.
>>>
>>> I also moved the corresponding functionality for compressed klass 
>>> pointers into a new class named CompressedKlassPointers.
>>>
>>> While doing this change I decided to cleanup the includes regarding 
>>> compressed oops, and universe.hpp, where most of the code was moved 
>>> from. Therefore, the patch is touching a large number of files. A 
>>> lot of the files contain updated header includes and simple renames. 
>>> If you want to fast-forward through those, these are the main files 
>>> where code related to compressed oops actually moved:
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/memory/universe.cpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/memory/universe.hpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/oops/compressedOops.hpp.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/oops/compressedOops.inline.hpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/oops/klass.cpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/oops/klass.hpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/oops/klass.inline.hpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/oops/oop.cpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/oops/oop.hpp.udiff.html 
>>>
>>>
>>> To get cleaner includes I did some minor restructuring to other 
>>> files. I can do these changes a small preparation patches, but would 
>>> like to get feedback on the overall patch first.
>>>
>>> Move flag checking out of hpp file, to stop propagation of 
>>> globals.hpp to all places where compressedOops.hpp is included:
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/memory/oopFactory.cpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/memory/oopFactory.hpp.udiff.html 
>>>
>>>
>>> Extract VerifyOption out of universe.hpp:
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/gc/shared/verifyOption.hpp.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/gc/shared/verifyOption.hpp.html 
>>>
>>>
>>> Moves a usage of CompressedOops to the cpp file:
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/opto/matcher.cpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/opto/matcher.hpp.udiff.html 
>>>
>>>
>>> Move Universe usage out of hpp files
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/gc/shared/memAllocator.hpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/gc/shared/memAllocator.cpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/gc/shared/isGCActiveMark.hpp.udiff.html 
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/gc/shared/isGCActiveMark.cpp.html 
>>>
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/memory/oopFactory.cpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/memory/oopFactory.hpp.udiff.html 
>>>
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/code/oopRecorder.hpp.udiff.html 
>>>
>>>
>>> http://cr.openjdk.java.net/~stefank/8223136/webrev.01/src/hotspot/share/code/oopRecorder.inline.hpp.html 
>>>
>>>
>>> I've tried to update all platforms, but would appreciate 
>>> verification from platform maintainers that the changes don't break 
>>> the build.
>>>
>>> I've also left some of the old names in JVMCI, to not disturb 
>>> ongoing changes in that area.
>>>
>>> Thanks,
>>> StefanK
>



More information about the hotspot-dev mailing list