JDK-8129920 : Vectorized loop unrolling
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2015-06-25
  • Updated: 2016-02-09
  • Resolved: 2015-07-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.
JDK 9
9 b75Fixed
Related Reports
Relates :  
Relates :  
Description
With this change we leverage superword unrolling queries and superword to stage re-entrance to ideal loop optimization.  We do this when superword succeeds on vectorizing a loop which was unroll query mapped.  When we re-enter ideal loop optimization, we have already done all major optimizations such as peeling, splitting, rce and superword on the vector map candidate loop. Thus we only unroll the loop.  We utilize the standard loop unrolling environment to accomplish this with default setting and any applicable user settings. In this way we leverage unroll factors from the baseline loop which are much larger to obtain optimum throughput on x86 architectures.  The uplift range on SpecJvm2008 is seen on scimark.lu.{small|large} with uplift noted at 3% and 8% respectively.  We see as much as 1.5x uplift on vector centric micros like reductions on default optimizations.
Comments
Webrev update: http://cr.openjdk.java.net/~mcberg/8129920/webrev.02/
30-06-2015