JDK-8218163 : C2: Continuous deoptimization w/ Reason_speculate_class_check and Action_none
Type:Bug
Component:hotspot
Sub-Component:compiler
Affected Version:11,12,13
Priority:P3
Status:Resolved
Resolution:Fixed
Submitted:2019-01-31
Updated:2019-10-04
Resolved:2019-02-02
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.
Continuous deoptimization w/ Reason_speculate_class_check and Action_none when recompilation count is too high.
Affects EarleyBoyer benchmark (Octane/Nashorn) and manifests as bimodal distribution of scores.
Comments
Fix Request (11u)
This alleviates bad compilation conditions when devirtualized callsite is constantly changing. The patch would fallback to virtual call in those conditions. The patch applies cleanly to 11u, passes tier1, tier2 tests. Ran earley-boyer benchmark from octane.js (not the same Vladimir has), the performance is on par with the baseline.