JDK-8272569 : Release Note: New Class Hierarchy Analysis Implementation in the HotSpot JVM
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 17
  • Priority: P4
  • Status: Resolved
  • Resolution: Delivered
  • Submitted: 2021-08-17
  • Updated: 2021-09-03
  • Resolved: 2021-08-20
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 17
17Resolved
Description
A new Class Hierarchy Analysis implementation is introduced in the HotSpot JVM.
It features enhanced handling of abstract and default methods which improves inlining decisions made by the JIT-compilers.
The new implementation supersedes the original one and is turned on by default.

To help diagnose possible issues related to the new implementation, the original
implementation can be turned on by specifying the
`-XX:+UnlockDiagnosticVMOptions -XX:-UseVtableBasedCHA` command-line flags.

The original implementation may be removed in a future release.
Comments
Thank you, David. I'll consider updating the man page in 17u.
20-08-2021

Updates look good - I fixed one typo. There are no real guidelines on the manpage content (and it is too late for 17 now anyway). I suggest seeing if there is anything already in the manpage that relates to CHA such it may be necessary to make a change based on the new implementation (and you can do that for 17u and 18); otherwise you can probably just let it slide.
19-08-2021

I haven't considered updating the man page. Any existing guidelines about what type of information is appropriate there?
18-08-2021

Thank you, David! I tried to incorporate your suggestions in the updated version.
18-08-2021

Also if this is worthy of a release note then it probably should also have been documented in the Java manpage.
17-08-2021

UseVtableBasedCHA is a diagnostic flag which means you don't really intend people to change this unless they encounter a problem - and of course it has to be unlocked to be used, so that needs to be explained. Something like the following: "The new implementation is expected to be applicable to all usecases, but if you think you have encountered a problem you can revert to the old implementation by specifying a diagnostic command-line flag as follows: `-XX:+UnlockDiagnosticVMOptions -XX:-UseVtableBasedCHA`." You may also want to ask people to file a bug for any such issues and warn them that the ability to revert to the old implementation may be removed in future releases.
17-08-2021