summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorJames Molloy <james.molloy@arm.com>2015-11-09 14:32:05 +0000
committerJames Molloy <james.molloy@arm.com>2015-11-09 14:32:05 +0000
commit45f67d52d0e7b7aced3e125dca2f128021c8a073 (patch)
tree26fd161e66e58f068adf331ab22a7cf697116d7a /llvm/lib/Transforms
parentdab6b25e38011832b40dcd96b32f7f3959068dd9 (diff)
downloadbcm5719-llvm-45f67d52d0e7b7aced3e125dca2f128021c8a073.tar.gz
bcm5719-llvm-45f67d52d0e7b7aced3e125dca2f128021c8a073.zip
[LoopVectorize] Address post-commit feedback on r250032
Implemented as many of Michael's suggestions as were possible: * clang-format the added code while it is still fresh. * tried to change Value* to Instruction* in many places in computeMinimumValueSizes - unfortunately there are several places where Constants need to be handled so this wasn't possible. * Reduce the pass list on loop-vectorization-factors.ll. * Fix a bug where we were querying MinBWs for I->getOperand(0) but using MinBWs[I]. llvm-svn: 252469
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Vectorize/LoopVectorize.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index 1a6021cb3c8..d3101c69e01 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -2100,7 +2100,6 @@ InnerLoopVectorizer::getVectorValue(Value *V) {
// If this scalar is unknown, assume that it is a constant or that it is
// loop invariant. Broadcast V and save the value for future uses.
Value *B = getBroadcastInstrs(V);
-
return WidenMap.splat(V, B);
}
@@ -5409,8 +5408,10 @@ LoopVectorizationCostModel::getInstructionCost(Instruction *I, unsigned VF) {
case Instruction::ICmp:
case Instruction::FCmp: {
Type *ValTy = I->getOperand(0)->getType();
- if (VF > 1 && MinBWs.count(dyn_cast<Instruction>(I->getOperand(0))))
- ValTy = IntegerType::get(ValTy->getContext(), MinBWs[I]);
+ Instruction *Op0AsInstruction = dyn_cast<Instruction>(I->getOperand(0));
+ auto It = MinBWs.find(Op0AsInstruction);
+ if (VF > 1 && It != MinBWs.end())
+ ValTy = IntegerType::get(ValTy->getContext(), It->second);
VectorTy = ToVectorTy(ValTy, VF);
return TTI.getCmpSelInstrCost(I->getOpcode(), VectorTy);
}
OpenPOWER on IntegriCloud