]> granicus.if.org Git - llvm/commit
[MVE] Don't try to unroll vectorised MVE loops
authorDavid Green <david.green@arm.com>
Sun, 11 Aug 2019 08:53:18 +0000 (08:53 +0000)
committerDavid Green <david.green@arm.com>
Sun, 11 Aug 2019 08:53:18 +0000 (08:53 +0000)
commit1e034f1a6d98809f5145acbe716cda2846c876fa
tree6f766d8a249442404195b42d933ef08665ee961d
parent6cc3211b706ccf5149d644e45f162e0f7c5aa2f4
[MVE] Don't try to unroll vectorised MVE loops

Due to the nature of the beat system in the MVE architecture, along 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. Preventing unrolling also makes the
code easier to read and reason about.

So if a loop contains vector code, don't enable the runtime unrolling. At least
for the time being.

Differential Revision: https://reviews.llvm.org/D65803

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368530 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMTargetTransformInfo.cpp
test/Transforms/LoopUnroll/ARM/mve-nounroll.ll [new file with mode: 0644]