[LLVMdev] Should we enable Partial unrolling and Runtime unrolling on AArch64?

Kevin Qin kevinqindev at gmail.com
Thu Jul 31 01:03:19 PDT 2014


Hi all,

Partial unrolling and runtime unrolling are enabled by default in aarch64
gcc which is help to get performance better. But these two methods are
enabled for only several backends in LLVM which are X86, PowerPC and R600.
I don't know the history of these two kinds of unrolling, and why they are
not widely used. I also want to know is, for aarch64 backend, is
it intentionally to get them disabled?

I've did some experiment around this and see the performance is indeed
impacted. Overall, partial unrolling can bring small benefit on most cases
of Benchmark and regression is major and small. Runtime unrolling can bring
huge improvement on some certain cases but also huge regression on
others. The proportion of improvement and regression varies in different
Benchmark. Also, code size is increased for two both.

I will show more information before this be changed. Here I just want to
know more backgrounds of two unrolling methods.

-- 
Best Regards,

Kevin Qin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140731/07e44ae1/attachment.html>


More information about the llvm-dev mailing list