JDK-8074548 : Never-taken branches cause repeated deopts in MHs.GWT case
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8u60,9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-03-06
  • Updated: 2015-09-29
  • Resolved: 2015-03-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 8 JDK 9
8u60Fixed 9 b64Fixed
Description
MethodHandleImpl::profileBoolean doesn't update never-taken branch count when hitting a deopt on it.
As a result, for rarely taken branches consequent compilations consider them as never-taken and prune them again, causing repeated deopts. It severely affects peak performance.
Comments
noreg-perf: performance can be verified by running Octane benchmarks.
20-03-2015

Suggested fix: http://cr.openjdk.java.net/~vlivanov/8074548/webrev.00/
06-03-2015