[llvm] 274f86e - [TTI] Remove OperandValueKind/Properties from getArithmeticInstrCost interface [nfc]
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 22 11:07:15 PDT 2022
Author: Philip Reames
Date: 2022-08-22T11:06:32-07:00
New Revision: 274f86e7a6d5468b38be7a4a4008a883a27ce008
URL: https://github.com/llvm/llvm-project/commit/274f86e7a6d5468b38be7a4a4008a883a27ce008
DIFF: https://github.com/llvm/llvm-project/commit/274f86e7a6d5468b38be7a4a4008a883a27ce008.diff
LOG: [TTI] Remove OperandValueKind/Properties from getArithmeticInstrCost interface [nfc]
This completes the client side transition to the OperandValueInfo version of this routine. Backend TTI implementations still use the prior versions for now.
Added:
Modified:
llvm/include/llvm/Analysis/TargetTransformInfo.h
llvm/lib/Analysis/TargetTransformInfo.cpp
llvm/lib/CodeGen/CodeGenPrepare.cpp
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Analysis/TargetTransformInfo.h b/llvm/include/llvm/Analysis/TargetTransformInfo.h
index 590ac70be75e..ece6550b813f 100644
--- a/llvm/include/llvm/Analysis/TargetTransformInfo.h
+++ b/llvm/include/llvm/Analysis/TargetTransformInfo.h
@@ -904,8 +904,8 @@ class TargetTransformInfo {
// of migrating uses of OperandValueKind and OperandValueProperties
// to use this class, and then will change the internal representation.
struct OperandValueInfo {
- OperandValueKind Kind;
- OperandValueProperties Properties;
+ OperandValueKind Kind = OK_AnyValue;
+ OperandValueProperties Properties = OP_None;
};
/// \return the number of registers in the target-provided register class.
@@ -1059,16 +1059,6 @@ class TargetTransformInfo {
/// cases or optimizations based on those values.
/// \p CxtI is the optional original context instruction, if one exists, to
/// provide even more information.
- InstructionCost getArithmeticInstrCost(
- unsigned Opcode, Type *Ty,
- TTI::TargetCostKind CostKind,
- OperandValueKind Opd1Info,
- OperandValueKind Opd2Info = OK_AnyValue,
- OperandValueProperties Opd1PropInfo = OP_None,
- OperandValueProperties Opd2PropInfo = OP_None,
- ArrayRef<const Value *> Args = ArrayRef<const Value *>(),
- const Instruction *CxtI = nullptr) const;
-
InstructionCost getArithmeticInstrCost(
unsigned Opcode, Type *Ty,
TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput,
diff --git a/llvm/lib/Analysis/TargetTransformInfo.cpp b/llvm/lib/Analysis/TargetTransformInfo.cpp
index 85caa59a1341..7ec968f1a1eb 100644
--- a/llvm/lib/Analysis/TargetTransformInfo.cpp
+++ b/llvm/lib/Analysis/TargetTransformInfo.cpp
@@ -765,18 +765,6 @@ TargetTransformInfo::getOperandInfo(const Value *V) {
return {OpInfo, OpProps};
}
-InstructionCost TargetTransformInfo::getArithmeticInstrCost(
- unsigned Opcode, Type *Ty, TTI::TargetCostKind CostKind,
- OperandValueKind Opd1Info, OperandValueKind Opd2Info,
- OperandValueProperties Opd1PropInfo, OperandValueProperties Opd2PropInfo,
- ArrayRef<const Value *> Args, const Instruction *CxtI) const {
- InstructionCost Cost =
- TTIImpl->getArithmeticInstrCost(Opcode, Ty, CostKind, Opd1Info, Opd2Info,
- Opd1PropInfo, Opd2PropInfo, Args, CxtI);
- assert(Cost >= 0 && "TTI should not produce negative costs!");
- return Cost;
-}
-
InstructionCost TargetTransformInfo::getArithmeticInstrCost(
unsigned Opcode, Type *Ty, TTI::TargetCostKind CostKind,
OperandValueInfo Op1Info, OperandValueInfo Op2Info,
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp
index 099be15be50f..88c01c32f4a7 100644
--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp
+++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp
@@ -7273,17 +7273,16 @@ class VectorPromoteHelper {
Value *Arg0 = Inst->getOperand(0);
bool IsArg0Constant = isa<UndefValue>(Arg0) || isa<ConstantInt>(Arg0) ||
isa<ConstantFP>(Arg0);
- TargetTransformInfo::OperandValueKind Arg0OVK =
- IsArg0Constant ? TargetTransformInfo::OK_UniformConstantValue
- : TargetTransformInfo::OK_AnyValue;
- TargetTransformInfo::OperandValueKind Arg1OVK =
- !IsArg0Constant ? TargetTransformInfo::OK_UniformConstantValue
- : TargetTransformInfo::OK_AnyValue;
+ TargetTransformInfo::OperandValueInfo Arg0Info, Arg1Info;
+ if (IsArg0Constant)
+ Arg0Info.Kind = TargetTransformInfo::OK_UniformConstantValue;
+ else
+ Arg1Info.Kind = TargetTransformInfo::OK_UniformConstantValue;
+
ScalarCost += TTI.getArithmeticInstrCost(
- Inst->getOpcode(), Inst->getType(), CostKind, Arg0OVK, Arg1OVK);
+ Inst->getOpcode(), Inst->getType(), CostKind, Arg0Info, Arg1Info);
VectorCost += TTI.getArithmeticInstrCost(Inst->getOpcode(), PromotedType,
- CostKind,
- Arg0OVK, Arg1OVK);
+ CostKind, Arg0Info, Arg1Info);
}
LLVM_DEBUG(
dbgs() << "Estimated cost of computation to be promoted:\nScalar: "
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index aedae332f079..7d84c2695e8a 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -6443,13 +6443,17 @@ InstructionCost BoUpSLP::getEntryCost(const TreeEntry *E,
: TargetTransformInfo::OK_UniformConstantValue;
InstructionCost ScalarEltCost = TTI->getArithmeticInstrCost(
- Instruction::Add, ScalarTy, CostKind, Op1VK, Op2VK);
+ Instruction::Add, ScalarTy, CostKind,
+ {Op1VK, TargetTransformInfo::OP_None},
+ {Op2VK, TargetTransformInfo::OP_None});
if (NeedToShuffleReuses) {
CommonCost -= (EntryVF - VL.size()) * ScalarEltCost;
}
InstructionCost ScalarCost = VecTy->getNumElements() * ScalarEltCost;
InstructionCost VecCost = TTI->getArithmeticInstrCost(
- Instruction::Add, VecTy, CostKind, Op1VK, Op2VK);
+ Instruction::Add, VecTy, CostKind,
+ {Op1VK, TargetTransformInfo::OP_None},
+ {Op2VK, TargetTransformInfo::OP_None});
LLVM_DEBUG(dumpTreeCosts(E, CommonCost, VecCost, ScalarCost));
return CommonCost + VecCost - ScalarCost;
}
More information about the llvm-commits
mailing list