JDK-8222075 : C2: Enable loop predication for subtype checks
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 13
  • Priority: P3
  • Status: Resolved
  • Resolution: Duplicate
  • Submitted: 2019-04-06
  • Updated: 2020-02-07
  • Resolved: 2020-02-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.
Other
tbdResolved
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
Subtype checks sometimes require complex control flow and loop predication can't handle it. 

One example is receiver subtype checks for invokeinterface/invokespecial of interface methods: it involves a subtype check against an interface. As JDK-8220708 demonstrates, when the check is loop invariant, it is very beneficial to  hoist it out of the loop.