JDK-6385692 : type profiled inlining should allow method holders to be a superclass
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 5.0u8,6
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2006-02-14
  • Updated: 2010-04-02
  • Resolved: 2006-03-31
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.0u8Fixed 6 b76Fixed
Related Reports
Relates :  
Description
This cutout in the inlining code is keeping us from taking advantage of the type profile information in cases where we could.

        if (receiver_method->holder() != ik) {
          receiver_method = NULL;
        }

It should be removed.

Comments
SUGGESTED FIX plus this delta http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2006/20060315120121.never.vtable/workspace/webrevs/webrev-2006.03.15/index.html
15-03-2006

SUGGESTED FIX http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2006/20060303114842.never.vtable/workspace/webrevs/webrev-2006.03.03/index.html
03-03-2006

SUGGESTED FIX *** /tmp/geta26306 Tue Feb 14 15:13:50 2006 --- doCall.cpp Tue Feb 14 15:13:49 2006 *************** *** 140,148 **** if (receiver_method != NULL && receiver_method->is_abstract()) { receiver_method = NULL; // shouldn't happen, but better safe than sorry } - if (receiver_method != NULL && receiver_method->holder() != ik) { - receiver_method = NULL; - } } if (receiver_method != NULL) { // The single majority receiver sufficiently outweighs the minority. --- 140,145 ----
14-02-2006

EVALUATION This really a leftover from some incorrect logic which was using find_method to find the receiver method and find_method only looks in the current class. The fix is simply to remove the cutout.
14-02-2006