JDK-8164525 : Re-examine zero form link time pre-generation
  • Type: Sub-task
  • Component: core-libs
  • Sub-Component: java.lang.invoke
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2016-08-20
  • Updated: 2016-08-25
  • Resolved: 2016-08-22
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 9
9 b133Fixed
Description
The first attempt to pre-generate zero LambdaForms, JDK-8164451, failed due to the current implementation emitting bytecode placeholder constants rather than the corresponding bytecode (iconst_0, etc).

Turns out the setup of Zero and Identity forms aren't marking the generated LFs as the associated Intrinsic, which makes the forms emit less than optimal bytecode.

When fixing this reapplying the optimization from JDK-8164451 now works as intended and pass all tests.