[all-commits] [llvm/llvm-project] 959eaa: [ARM][MVE] Only tail-fold integer add reductions

sjoerdmeijer via All-commits all-commits at lists.llvm.org
Tue Jul 14 02:15:51 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 959eaa50d62d807dd78c980d5f3b9da0f06b0003
      https://github.com/llvm/llvm-project/commit/959eaa50d62d807dd78c980d5f3b9da0f06b0003
  Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
  Date:   2020-07-14 (Tue, 14 Jul 2020)

  Changed paths:
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/test/Transforms/LoopVectorize/ARM/tail-loop-folding.ll

  Log Message:
  -----------
  [ARM][MVE] Only tail-fold integer add reductions

If a vector body has live-out values, it is probably a reduction, which needs a
final reduction step after the loop. MVE has a VADDV instruction to reduce
integer vectors, but doesn't have an equivalent one for float vectors. A
live-out value that is not recognised as reduction later in the optimisation
pipeline will result in the tail-predicated loop to be reverted to a
non-predicated loop and this is very expensive, i.e. it has a significant
performance impact, which is what we hope to avoid with fine tuning the ARM TTI
hook preferPredicateOverEpilogue implementation.

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




More information about the All-commits mailing list