RFR 8047737 Move array component mirror to instance of java/lang/Class

Coleen Phillimore coleen.phillimore at oracle.com
Fri Jun 27 19:24:04 UTC 2014

Summary: Add field in java.lang.Class for componentType to simplify oop 
processing and intrinsics in JVM

This is part of ongoing work to clean up oop pointers in the metadata 
and simplify the interface between the JDK j.l.C and the JVM.  There's a 
performance benefit at the end of all of this if we can remove all oop 
pointers from metadata.   mirror in Klass is the only one left after 
this full change.

See bug https://bugs.openjdk.java.net/browse/JDK-8047737

There are a couple steps to this change because Hotspot testing is done 
with promoted JDKs.  The first step is this webrev:


When the JDK is promoted, the code to remove 
ArrayKlass::_component_mirror will be changed under a new bug id.


Finally, a compatibility request and licensee notification will occur to 
remove the function JVM_GetComponentType.

Performance testing was done that shows no difference in performance.  
The isArray() call is a compiler intrinsic which is now called instead 
of getComponentType, which was recognized as a compiler intrinsic.

JDK jtreg testing, hotspot jtreg testing, hotspot NSK testing and jck8 
tests were performed on both the change requested (1st one) and the full 

hotspot NSK tests were run on the hotspot-only change with a promoted JDK.

Please send your comments.


More information about the core-libs-dev mailing list