[PATCH] D65803: [MVE] Don't try to unroll vectorised MVE loops

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 6 06:07:13 PDT 2019


dmgreen created this revision.
dmgreen added reviewers: t.p.northover, samparker, SjoerdMeijer, simon_tatham, ostannard.
Herald added subscribers: zzheng, hiraditya, javed.absar.
Herald added a project: LLVM.

Due to the nature of the beat system in an MVE pipeline, with tail predication and low-overhead loops, unrolling has less benefit compared to normal loops. You can not, for example, hide the latency of a load with other instructions as you can for scalar code. Not unrolling also makes the code easier to read and reason about.

So if a loop has already been vectorised, don't enable the runtime unrolling. At least for the time being.


https://reviews.llvm.org/D65803

Files:
  llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
  llvm/test/Transforms/LoopUnroll/ARM/mve-nounroll.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65803.213591.patch
Type: text/x-patch
Size: 7197 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190806/beee839e/attachment.bin>


More information about the llvm-commits mailing list