diff options
| author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2019-11-21 14:03:28 +0000 |
|---|---|---|
| committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2019-11-21 14:06:10 +0000 |
| commit | 901cd3b3f62d0c700e5d2c3f97eff97d634bec5e (patch) | |
| tree | 4fa4571bbafc1e9fbfa4bd4bbbaf3ebe2b03a5fc /llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | |
| parent | 8cf8ec40a1fee9706237d30385e78e1de214d8f7 (diff) | |
| download | bcm5719-llvm-901cd3b3f62d0c700e5d2c3f97eff97d634bec5e.tar.gz bcm5719-llvm-901cd3b3f62d0c700e5d2c3f97eff97d634bec5e.zip | |
[LV] PreferPredicateOverEpilog respecting option
Follow-up of cb47b8783: don't query TTI->preferPredicateOverEpilogue when
option -prefer-predicate-over-epilog is set to false, i.e. when we prefer not
to predicate the loop.
Differential Revision: https://reviews.llvm.org/D70382
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoopVectorize.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index af05683273d..fcd8b05b883 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -7429,6 +7429,9 @@ getScalarEpilogueLowering(Function *F, Loop *L, LoopVectorizeHints &Hints, ScalarEvolution *SE, DominatorTree *DT, const LoopAccessInfo *LAI) { ScalarEpilogueLowering SEL = CM_ScalarEpilogueAllowed; + bool PredicateOptDisabled = PreferPredicateOverEpilog.getNumOccurrences() && + !PreferPredicateOverEpilog; + if (Hints.getForce() != LoopVectorizeHints::FK_Enabled && (F->hasOptSize() || llvm::shouldOptimizeForSize(L->getHeader(), PSI, BFI))) @@ -7436,7 +7439,8 @@ getScalarEpilogueLowering(Function *F, Loop *L, LoopVectorizeHints &Hints, else if (PreferPredicateOverEpilog || Hints.getPredicate() == LoopVectorizeHints::FK_Enabled || (TTI->preferPredicateOverEpilogue(L, LI, *SE, *AC, TLI, DT, LAI) && - Hints.getPredicate() != LoopVectorizeHints::FK_Disabled)) + Hints.getPredicate() != LoopVectorizeHints::FK_Disabled && + !PredicateOptDisabled)) SEL = CM_ScalarEpilogueNotNeededUsePredicate; return SEL; |

