RFR: 8223136: Move compressed oops functions to CompressedOops class

Stefan Karlsson stefan.karlsson at oracle.com
Tue Apr 30 08:58:49 UTC 2019


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