[all-commits] [llvm/llvm-project] c7e275: [ARM] Don't aggressively unroll vector remainder l...

David Green via All-commits all-commits at lists.llvm.org
Tue Nov 10 09:02:03 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c7e275388e3fe55163296e587eff1b6325b63da2
      https://github.com/llvm/llvm-project/commit/c7e275388e3fe55163296e587eff1b6325b63da2
  Author: David Green <david.green at arm.com>
  Date:   2020-11-10 (Tue, 10 Nov 2020)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/test/Transforms/LoopUnroll/ARM/mve-nounroll.ll

  Log Message:
  -----------
  [ARM] Don't aggressively unroll vector remainder loops

We already do not unroll loops with vector instructions under MVE, but
that does not include the remainder loops that the vectorizer produces.
These remainder loops will be rarely executed and are not worth
unrolling, as the trip count is likely to be low if they get executed at
all. Luckily they get llvm.loop.isvectorized to make recognizing them
simpler.

We have wanted to do this for a while but hit issues with low overhead
loops being reverted due to difficult registry allocation. With recent
changes that seems to be less of an issue now.

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




More information about the All-commits mailing list