[all-commits] [llvm/llvm-project] 6c2a4f: [TTI][LV] preferPredicateOverEpilogue
sjoerdmeijer via All-commits
all-commits at lists.llvm.org
Wed Nov 6 02:14:46 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 6c2a4f5ff93e16c3b86c18543e02a193ced2d956
https://github.com/llvm/llvm-project/commit/6c2a4f5ff93e16c3b86c18543e02a193ced2d956
Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
Date: 2019-11-06 (Wed, 06 Nov 2019)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
A llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
M llvm/test/Transforms/LoopVectorize/ARM/tail-loop-folding.ll
Log Message:
-----------
[TTI][LV] preferPredicateOverEpilogue
We have two ways to steer creating a predicated vector body over creating a
scalar epilogue. To force this, we have 1) a command line option and 2) a
pragma available. This adds a third: a target hook to TargetTransformInfo that
can be queried whether predication is preferred or not, which allows the
vectoriser to make the decision without forcing it.
While this change behaves as a non-functional change for now, it shows the
required TTI plumbing, usage of this new hook in the vectoriser, and the
beginning of an ARM MVE implementation. I will follow up on this with:
- a complete MVE implementation, see D69845.
- a patch to disable this, i.e. we should respect "vector_predicate(disable)"
and its corresponding loophint.
Differential Revision: https://reviews.llvm.org/D69040
More information about the All-commits
mailing list