JDK-8257211 : C2: Enable call devirtualization during post-parse phase
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 16
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-11-27
  • Updated: 2022-03-07
  • Resolved: 2020-12-07
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 16
16 b28Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Call devirtualization happens only during parsing.
If devirtualization fails, virtual call is issued and it stays the same irrespective of receiver type changes (later optimization passes can improve the type so devirtualization becomes possible).
With the introduction of post-parse inlining, it becomes possible to inline through virtual calls as well if there's enough type information available.  
Comments
Changeset: 62c7788b Author: Vladimir Ivanov <vlivanov@openjdk.org> Date: 2020-12-07 22:50:38 +0000 URL: https://git.openjdk.java.net/jdk/commit/62c7788b
07-12-2020