[9] RFR (X): 8163880: Constant pool caching of fields inhibited/delayed unnecessarily
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon Aug 22 18:20:26 UTC 2016
Typo (double 'not'):
+ // and the required IllegalAccessError would not not be thrown.
I think has_initialized_final_update should be part of assert to see it in hs_err:
+ if (has_initialized_final_update) {
+ assert(info.access_flags().is_final(), "Fields with initialized final updates must be final");
+ }
Why is_put check is not done in outer check? It is missing for is_final():
+ if (!uninitialized_static) {
+ if ((is_put && !has_initialized_final_update) || !info.access_flags().is_final()) {
Thanks,
Vladimir
On 8/22/16 4:20 AM, Zoltán Majó wrote:
> Hi,
>
>
> please review the fix for JDK-8163880.
>
> https://bugs.openjdk.java.net/browse/JDK-8163880
>
> Problem & solution: The performance regression reported by the bug is caused by unnecessary delay (or even inhibition) of constant pool caching for fields targeted by put instructions. For a more
> detailed description of the problem and possible solutions, please see the following comment in the bug report [1].
>
> Webrev:
> http://cr.openjdk.java.net/~zmajo/8163880/webrev.00/
>
> Testing:
> - performance evaluation with the affected benchmark shows that fix above solves the performance regression;
> - all hotspot test with -Xmixed and -Xcomp (running).
>
> Thank you!
>
> Best regards,
>
>
> Zoltan
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8163880?focusedCommentId=13990030&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13990030
>
More information about the hotspot-dev
mailing list