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
Wed Feb 6 20:34:51 UTC 2019
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 :)
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