From: Simon Pilgrim Date: Wed, 22 Sep 2021 15:48:01 +0000 (+0100) Subject: [SLP] getReductionCost - use explicit TTI::TCK_RecipThroughput CostKind. NFCI. X-Git-Tag: upstream/15.0.7~30839 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8a44281f478fb0b62ea2d09f10b13643f774cdab;p=platform%2Fupstream%2Fllvm.git [SLP] getReductionCost - use explicit TTI::TCK_RecipThroughput CostKind. NFCI. Avoid relying on the default cost kinds in TTI calls (we already do this in other places in SLP) - noticed while trying to see how much work it'd be to extend D110242 and remove all remaining uses of default CostKind arguments. --- diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 7400b3d..113d191 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -8492,6 +8492,7 @@ private: InstructionCost getReductionCost(TargetTransformInfo *TTI, Value *FirstReducedVal, unsigned ReduxWidth, FastMathFlags FMF) { + TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput; Type *ScalarTy = FirstReducedVal->getType(); FixedVectorType *VectorTy = FixedVectorType::get(ScalarTy, ReduxWidth); InstructionCost VectorCost, ScalarCost; @@ -8504,15 +8505,16 @@ private: case RecurKind::FAdd: case RecurKind::FMul: { unsigned RdxOpcode = RecurrenceDescriptor::getOpcode(RdxKind); - VectorCost = TTI->getArithmeticReductionCost(RdxOpcode, VectorTy, FMF); - ScalarCost = TTI->getArithmeticInstrCost(RdxOpcode, ScalarTy); + VectorCost = + TTI->getArithmeticReductionCost(RdxOpcode, VectorTy, FMF, CostKind); + ScalarCost = TTI->getArithmeticInstrCost(RdxOpcode, ScalarTy, CostKind); break; } case RecurKind::FMax: case RecurKind::FMin: { auto *VecCondTy = cast(CmpInst::makeCmpResultType(VectorTy)); VectorCost = TTI->getMinMaxReductionCost(VectorTy, VecCondTy, - /*unsigned=*/false); + /*unsigned=*/false, CostKind); ScalarCost = TTI->getCmpSelInstrCost(Instruction::FCmp, ScalarTy) + TTI->getCmpSelInstrCost(Instruction::Select, ScalarTy, @@ -8526,7 +8528,8 @@ private: auto *VecCondTy = cast(CmpInst::makeCmpResultType(VectorTy)); bool IsUnsigned = RdxKind == RecurKind::UMax || RdxKind == RecurKind::UMin; - VectorCost = TTI->getMinMaxReductionCost(VectorTy, VecCondTy, IsUnsigned); + VectorCost = TTI->getMinMaxReductionCost(VectorTy, VecCondTy, IsUnsigned, + CostKind); ScalarCost = TTI->getCmpSelInstrCost(Instruction::ICmp, ScalarTy) + TTI->getCmpSelInstrCost(Instruction::Select, ScalarTy,