[ARM][MVE] Tail-Predication: rematerialise iteration count in exit blocks
authorSjoerd Meijer <sjoerd.meijer@arm.com>
Mon, 20 Jan 2020 10:26:36 +0000 (10:26 +0000)
committerSjoerd Meijer <sjoerd.meijer@arm.com>
Mon, 20 Jan 2020 10:26:36 +0000 (10:26 +0000)
commit8cba99e2aa937b8459e74e2d22d4e2c9d4bdc5d5
treee783115ef3752cff5559fc6346ce0e230fbb4379
parentcfe97681cdbf8c8c23caad80adeb6551911ccd6e
[ARM][MVE] Tail-Predication: rematerialise iteration count in exit blocks

This patch uses helper function rewriteLoopExitValues that is refactored in
D72602 to rematerialise the iteration count in exit blocks, so that we can
clean-up loop update expressions inside the hardware-loops later in
ARMLowOverheadLoops, which is necessary to get actual performance gains for
tail-predicated loops.

Differential Revision: https://reviews.llvm.org/D72714
llvm/lib/Target/ARM/MVETailPredication.cpp
llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
llvm/test/CodeGen/Thumb2/LowOverheadLoops/vector-arith-codegen.ll
llvm/test/CodeGen/Thumb2/LowOverheadLoops/vector-reduce-mve-tail.ll