JDK-8217998: Remove method_type field associated with the appendix field of an indy or method handle call

Lois Foltan lois.foltan at oracle.com
Mon Feb 11 22:47:39 UTC 2019


On 2/11/2019 2:58 PM, coleen.phillimore at oracle.com wrote:
>
>
> On 2/11/19 2:16 PM, Lois Foltan wrote:
>>
>>
>> On 2/6/2019 3:34 PM, Lois Foltan wrote:
>>>
>>> On 2/5/2019 6:01 PM, coleen.phillimore at oracle.com wrote:
>>>>
>>>> Hi Lois,  I like that there are no longer two resolved references 
>>>> for indy instructions, especially if it wasn't used.
>>>
>>> Thanks Coleen for the review!  More below.
>>>
>>>>
>>>> http://cr.openjdk.java.net/~lfoltan/bug_jdk8217998.2/webrev/src/hotspot/share/interpreter/linkResolver.cpp.udiff.html 
>>>>
>>>>
>>>> I can't find a call where set_handle() passes false for the 
>>>> _has_local_sig field.
>>>
>>> There is no call to set_handle() that passes false for the 
>>> _has_local_sig field.  It is set to false initially in 
>>> CallInfo::set_common.  I considered not passing the "has_local_sig" 
>>> parameter to set_handle and just always set CallInfo::_has_local_sig 
>>> to true within that method but I am assuming John wanted to allow 
>>> for the possibility that it could be set to false in the future.
>>>
>>>>
>>>> Can you rename CallInfo::_has_local_signature, since it's not that 
>>>> much longer and reads better?
>>>>
>>>> + const bool has_local_sig = call_info.has_local_signature();
>>>> + assert(has_local_sig, "MHs and indy are always sig-poly");
>>>
>>> I'm confused.  The field currently within CallInfo is named 
>>> CallInfo::_has_local_sig.  Are you referring to the method 
>>> CallInfo::has_local_signature()?  Do you want that shortened?
>>>
>>>>
>>>> So why do you need this field if it's always true?  Was hoping for 
>>>> a cpCache bit back :)
>>
>> Hi Coleen,
>>
>> I looked over your review comments again and you are correct 
>> concerning the need for CallInfo::_has_local_sig.  It is always set 
>> to true for MHs and indy and thus really is not necessary for setting 
>> the local variable "has_local_sig" within the method 
>> ConstantPoolCacheEntry::set_method_handle_common().  I have removed 
>> CallInfo::_has_local_sig. 
>> ConstantPoolCacheEntry::has_local_signature_shift is still necessary, 
>> however.
>>
>> Updated webrev at: 
>> http://cr.openjdk.java.net/~lfoltan/bug_jdk8217998.3/webrev/
>
> This looks great!
> Thanks!
> Coleen

Thanks Coleen for another review of it!
Lois

>
>>
>> Thanks for your review and help with this!
>> Lois
>>
>>>
>>> It's not always true.
>>>
>>>>
>>>> Perhaps there's a future use?
>>>>
>>>> http://cr.openjdk.java.net/~lfoltan/bug_jdk8217998.2/webrev/src/hotspot/share/oops/cpCache.hpp.udiff.html 
>>>>
>>>>
>>>> + has_local_signature_shift = 25, // (M) does the call site have a 
>>>> per-site signature (sig-poly methods)?
>>>>
>>>>
>>>> Can you make this an "S" vs. "M" and change the coment in the top 
>>>> of cpCache.hpp:
>>>>
>>>> // _flags [tos|0|F=0|M|A|I|f|0|vf|indy_rf|000|00000|psize] (for 
>>>> method entries)
>>>> // bit length [ 4 |1| 1 |1|1|1|1|1|1 |-4--|--8--|--8--]
>>>
>>> Done, changed the "M" to "S" in both places.  The comment in the top 
>>> of cpCache.hpp does not refer to the method_type in any form, so 
>>> unclear as to how you want me to change it?  I am assuming you want 
>>> me to remove the "method_type info (t_section) from this comment?
>>>
>>> // _flags   = method type info (t section),
>>> //            virtual final bit (vfinal),
>>>
>>>
>>>>
>>>> And a line under this:
>>>>
>>>> // A      = call site has an appendix argument (loaded from 
>>>> resolved references)
>>>
>>> Not sure what you mean by this?
>>>
>>> Thanks,
>>> Lois
>>>
>>>>
>>>> Although I don't like this comment because it gets out of date.
>>>>
>>>> Thanks,
>>>> Coleen
>>>>
>>>> On 2/4/19 7:32 AM, Lois Foltan wrote:
>>>>> Please review this change that removes the unused method_type 
>>>>> field associated with the appendix field of an indy or method 
>>>>> handle call.  This is the first of a series of changes working 
>>>>> towards JDK-8210685: Bootstrap method consolidation.
>>>>>
>>>>> open webrev at: 
>>>>> http://cr.openjdk.java.net/~lfoltan/bug_jdk8217998.1/webrev/
>>>>> bug link: https://bugs.openjdk.java.net/browse/JDK-8217998
>>>>> co-contributors: Lois Foltan & John Rose
>>>>>
>>>>> Testing: hs-tier1-4 & jdk-tier1-3 (all platforms), hs-tier5-8 
>>>>> (linux only), JCK vm & lang (linux only)
>>>>>
>>>>> Thanks,
>>>>> Lois
>>>>
>>>
>>
>



More information about the hotspot-dev mailing list