JDK-7004547 : regular loop unroll should not unroll more than max unrolling
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs20
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2010-12-03
  • Updated: 2011-09-22
  • Resolved: 2011-04-24
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 7 Other
7Fixed hs21Fixed
Related Reports
Relates :  
Description
Max unroll policy when calculating new loop body size does not take into account that after one unroll loop's head and tail will fold. As result there are cases when max unroll was not done but regular unroll will do more unrolling for main loop than needed so it is skipped (only pre- and post- loops are executed).

Comments
PUBLIC COMMENTS Max unroll policy when calculating new loop body size does not take into account that after unroll conjoined loop's head and tail will fold. As result there are cases when max unroll was not done but regular unroll will do full unrolling for main loop. Use long arithmetic to calculate exact trip count. Add missing nodes limit check for loop split (pre-main-post).
05-04-2011

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/d7a3fed1c1c9
05-04-2011