JDK-2137205 : Bad performance when HotSpot cannot optimize polymorphic calls
  • Type: Backport
  • Backport of: JDK-5074577
  • Component: hotspot
  • Sub-Component: compiler
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2006-04-18
  • Updated: 2010-04-03
  • Resolved: 2006-05-10
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 JDK 6
5.0u8 b01Fixed 6Fixed
Description
This is 1.5.0_08 backport.

Comments
SUGGESTED FIX Webrev: http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/1.5/tiger_update8_baseline/2006/20060426114105.kvn.5074577/workspace/webrevs/webrev-2006.04.26/index.html Add C2 product flag UseBimorphicInlining and set the default value to true. Save information about all known receivers from method_data in ciCallProfile. Sort the information by calls count. Inline (or direct call) second method if the call site is bimorphic and the flag UseBimorphicInlining is true. Set probability on dynamic class check based on the virtual call profile info. It shows double performance improvement on the original test cases from 4803284 but it doesn't improve our benchmarks scores.
26-04-2006

EVALUATION The profiling keeps information about two receivers but C2 doesn't use this information to inline (or do direct call to) a second method.
26-04-2006