summaryrefslogtreecommitdiff
path: root/lib/Transforms/Vectorize/LoopVectorize.cpp
diff options
context:
space:
mode:
authorDorit Nuzman <dorit.nuzman@intel.com>2017-12-12 08:57:43 +0000
committerDorit Nuzman <dorit.nuzman@intel.com>2017-12-12 08:57:43 +0000
commit330c5d954fa7999f3c2adb32b0513406f143f9c9 (patch)
tree3763b8bb15077505062f9dd86a1798f4e4c25263 /lib/Transforms/Vectorize/LoopVectorize.cpp
parent315da3f2f72d3a657b8ce95431cb9009c7811b8d (diff)
[LV] Ignore the cost of values that will not appear in the vectorized loop
VecValuesToIgnore holds values that will not appear in the vectorized loop. We should therefore ignore their cost when VF > 1. Differential Revision: https://reviews.llvm.org/D40883 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320463 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Vectorize/LoopVectorize.cpp')
-rw-r--r--lib/Transforms/Vectorize/LoopVectorize.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Transforms/Vectorize/LoopVectorize.cpp b/lib/Transforms/Vectorize/LoopVectorize.cpp
index c5d62d0b97d..440641bd91c 100644
--- a/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -6877,7 +6877,8 @@ LoopVectorizationCostModel::expectedCost(unsigned VF) {
continue;
// Skip ignored values.
- if (ValuesToIgnore.count(&I))
+ if (ValuesToIgnore.count(&I) ||
+ (VF > 1 && VecValuesToIgnore.count(&I)))
continue;
VectorizationCostTy C = getInstructionCost(&I, VF);