[LLVMdev] Loop unrolling opportunity in SPEC's libquantum with profile info
Sean Silva
chisophugis at gmail.com
Wed Jan 15 19:43:35 PST 2014
On Wed, Jan 15, 2014 at 8:30 PM, Nadav Rotem <nrotem at apple.com> wrote:
>
> Hi Diego!
>
> Thanks for looking at this!
>
> Chandler also pointed me at the vectorizer, which has its own
> unroller. However, the vectorizer only unrolls enough to serve the
> target, it's not as general as the runtime-triggered unroller. From
> what I've seen, it will get a maximum unroll factor of 2 on x86 (4 on
> avx targets). Additionally, the vectorizer only unrolls to aid
> reduction variables.
>
>
> The vectorizer has a heuristics that is used to decide when to unroll.
> One of the rules that the heuristics has is that reductions are profitable
> to unroll. The other rule is that small loops should also be unrolled.
>
> When I forced the vectorizer to unroll these
> loops, the performance effects were nil.
>
>
> Was the vectorizer successful in unrolling the loop in quantum_sigma_x? I
> wonder if 'size’ is typically high or low.
>
Yeah, can you produce a histogram of the values of `reg->size`? (or provide
the raw data for me to analyze?).
-- Sean Silva
>
> Thanks,
> Nadav
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140115/44719f0d/attachment.html>
More information about the llvm-dev
mailing list