JDK-6464263 : Bypass ConvI2L operation for positive array's index on amd64
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 7
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2006-08-25
  • Updated: 2013-11-01
  • Resolved: 2011-03-08
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 6 JDK 7 Other
6u10Fixed 7Fixed hs11Fixed
Related Reports
Relates :  
Description
On amd64 all address expressions are 64 bits values but a loop's index variable
is mostly 32 bits value (integer). C2 uses ConvI2L operation to extand sign
of an index variable when it is used in address expression.
We can bypass ConvI2L if we know that the index variable is positive since
the address expression is array reference which has the start of array as a base.

Comments
SUGGESTED FIX Webrev: http://prt-web.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2007/20070927154806.kvn.6464263/workspace/webrevs/webrev-2007.09.27/index.html Bypass ConvI2L in address expressions on amd64. These changes give about 10% improvement of Sparse score with small matrix on amd64. Also fixed typo in 6602875 changes.
28-09-2007

EVALUATION See Description.
26-08-2006