RFR: 8223136: Move compressed oops functions to CompressedOops class
Stefan Karlsson
stefan.karlsson at oracle.com
Thu May 2 12:44:54 UTC 2019
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