aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitReader.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2022-02-07 19:34:28 +0000
committerDavid Green <david.green@arm.com>2022-02-07 19:34:28 +0000
commitb4c6d1bb379192cb5b712fda9f60cd105f21194f (patch)
tree889271db4610b1d16f39059f19352e851b542943 /llvm/lib/Bitcode/Reader/BitReader.cpp
parentd5a29442191066b70176e59260288d8cb08bd602 (diff)
downloadllvm-b4c6d1bb379192cb5b712fda9f60cd105f21194f.zip
llvm-b4c6d1bb379192cb5b712fda9f60cd105f21194f.tar.gz
llvm-b4c6d1bb379192cb5b712fda9f60cd105f21194f.tar.bz2
[LoopVectorizer] Don't perform interleaving of predicated scalar loops
The vectorizer will choose at times to "vectorize" loops with a scalar factor (VF=1) with interleaving (IC > 1). This can occasionally produce better code than the unroller (notable for reductions where it can produce independent reduction chains that are combined after the loop). At times this is not very beneficial though, for example when runtime checks are needed or when the scalar code requires predication. This addresses the second point, preventing the vectorizer from interleaving when the scalar loop will require predication. This prevents it from making a bit of a mess, that is worse than the original and better left for the unroller to unroll if beneficial. It helps reverse some of the regressions from D118090. Differential Revision: https://reviews.llvm.org/D118566
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitReader.cpp')
0 files changed, 0 insertions, 0 deletions