On Jun 30, 2014, at 1:06 PM, Coleen Phillimore <coleen.phillim...@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?
> 
> I don't know if I was justified in worrying about the optimization in the 
> first place.   Since getComponentType() is conditional, I wasn't worried.
> 
> But it should be consistent.  Maybe I should revert the classLoader 
> constructor change, now that I fixed all the tests not to care.   What do 
> people think?
>> 
>> +  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?
> 
> Yes, please look at the _full webrev.  That has the non-optional changes in 
> it and the follow on changes to remove getComponentType as an intrinsic in C2 
> (will file new RFE).  I really would like a compiler person to comment on it.

Sorry, I missed that.  Yes, the compiler changes look good.

> 
> Thanks so much,
> Coleen
> 
>> 
>> On Jun 30, 2014, at 5:42 AM, Coleen Phillimore 
>> <coleen.phillim...@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/~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
>>> 
>> 
> 

Reply via email to