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

Christian Thalinger christian.thalinger at oracle.com
Tue Jul 1 04:51:23 UTC 2014


On Jun 30, 2014, at 5:50 PM, Coleen Phillimore <coleen.phillimore at oracle.com> wrote:

> 
> On 6/30/14, 3:50 PM, Christian Thalinger wrote:
>>      private Class(ClassLoader loader) {
>>          // Initialize final field for classLoader.  The initialization value of non-null
>>          // prevents future JIT optimizations from assuming this final field is null.
>>          classLoader = loader;
>> +        componentType = null;
>>      }
>> 
>> Are we worried about the same optimization?
> 
> Hi,  I've decided to make them consistent and add another parameter to the Class constructor.
> 
> http://cr.openjdk.java.net/~coleenp/8047737_jdk_2/

Thanks.

> 
> Thanks,
> Coleen
>> 
>> +  compute_optional_offset(_component_mirror_offset,
>> +                 klass_oop, vmSymbols::componentType_name(),
>> +                 vmSymbols::class_signature());
>> 
>> Is there a followup cleanup to make it non-optional?  Or, are you waiting for JPRT to be able to push hotspot and jdk changes together?
>> 
>> On Jun 30, 2014, at 5:42 AM, Coleen Phillimore <coleen.phillimore at oracle.com <mailto:coleen.phillimore at oracle.com>> wrote:
>> 
>>> 
>>> On 6/30/14, 1:55 AM, David Holmes wrote:
>>>> Hi Coleen,
>>>> 
>>>> Your webrev links are to internal locations.
>>> 
>>> Sorry, I cut/pasted the wrong links.  They are:
>>> 
>>> http://cr.openjdk.java.net/~coleenp/8047737_jdk/ <http://cr.openjdk.java.net/%7Ecoleenp/8047737_jdk/>
>>> http://cr.openjdk.java.net/~coleenp/8047737_hotspot/
>>> 
>>> and the full version
>>> 
>>> http://cr.openjdk.java.net/~coleenp/8047737_hotspot/
>>> 
>>> Thank you for pointing this out David.
>>> 
>>> Coleen
>>> 
>>>> 
>>>> David
>>>> 
>>>> On 28/06/2014 5:24 AM, Coleen Phillimore wrote:
>>>>> 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:
>>>>> 
>>>>> http://oklahoma.us.oracle.com/~cphillim/webrev/8047737_jdk/
>>>>> http://oklahoma.us.oracle.com/~cphillim/webrev/8047737_hotspot/
>>>>> 
>>>>> When the JDK is promoted, the code to remove
>>>>> ArrayKlass::_component_mirror will be changed under a new bug id.
>>>>> 
>>>>> http://oklahoma.us.oracle.com/~cphillim/webrev/8047737_hotspot_full
>>>>> 
>>>>> 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
>>>>> change.
>>>>> 
>>>>> hotspot NSK tests were run on the hotspot-only change with a promoted JDK.
>>>>> 
>>>>> Please send your comments.
>>>>> 
>>>>> Thanks,
>>>>> Coleen
>>> 
>> 
> 



More information about the hotspot-dev mailing list