RFR: 8129920 - Vectorized loop unrolling

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Jun 29 20:59:48 UTC 2015

ignore_slp() and NoMoreSlp whould be fine names if they guard only 
superword optimization. You use it to skipp all loop optimizations 
except unrolling. It should be named differently. allow_unroll_only ?

why you need set_notpassed_slp()?:

+        // For atomic unrolled loops which are vector mapped, instigate 
more unrolling.
+        cl->set_notpassed_slp();


On 6/26/15 12:43 PM, Berg, Michael C wrote:
> Hi Folks,
> I would like to contribute Vectorized loop unrolling. I need two
> reviewers to review this patch and comment as needed:
> Bug-id: https://bugs.openjdk.java.net/browse/JDK-8129920
> webrev:
> http://cr.openjdk.java.net/~mcberg/8129920/webrev.01/
> 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 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.
> Thanks,
> Michael

More information about the hotspot-compiler-dev mailing list