JDK-8183232 : Avoid resolving method_kind in AbstractInterpreter::can_be_compiled
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 10
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2017-06-29
  • Updated: 2019-05-22
  • Resolved: 2017-07-03
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 10
10 b21Fixed
Related Reports
Relates :  
Description
compilationPolicy.cpp calls AbstractInterpreter::can_be_compiled during linking and resolve steps, which is somewhat costly and affects startup:

  if (!AbstractInterpreter::can_be_compiled(m)) {
    return false;
  }

It would seem that rather than resolving the method_kind(m) in can_be_compiled, it would suffice to switch on m->intrinsic_id():

switch (m->intrinsic_id()) {
      case vmIntrinsics::_dsin  : // fall thru
    ...

This significantly reduces the cost of AbstractInterpreter::can_be_compiled