mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[TTI] NFC: Change getGEPCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost. See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html Differential Revision: https://reviews.llvm.org/D100562
This commit is contained in:
parent
9390d5a48f
commit
9eda3a0c2e
@ -263,9 +263,10 @@ public:
|
||||
};
|
||||
|
||||
/// Estimate the cost of a GEP operation when lowered.
|
||||
int getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TargetCostKind CostKind = TCK_SizeAndLatency) const;
|
||||
InstructionCost
|
||||
getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TargetCostKind CostKind = TCK_SizeAndLatency) const;
|
||||
|
||||
/// \returns A value by which our inlining threshold should be multiplied.
|
||||
/// This is primarily used to bump up the inlining threshold wholesale on
|
||||
@ -1401,9 +1402,9 @@ class TargetTransformInfo::Concept {
|
||||
public:
|
||||
virtual ~Concept() = 0;
|
||||
virtual const DataLayout &getDataLayout() const = 0;
|
||||
virtual int getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TTI::TargetCostKind CostKind) = 0;
|
||||
virtual InstructionCost getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TTI::TargetCostKind CostKind) = 0;
|
||||
virtual unsigned getInliningThresholdMultiplier() = 0;
|
||||
virtual unsigned adjustInliningThreshold(const CallBase *CB) = 0;
|
||||
virtual int getInlinerVectorBonusPercent() = 0;
|
||||
@ -1693,9 +1694,10 @@ public:
|
||||
return Impl.getDataLayout();
|
||||
}
|
||||
|
||||
int getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
enum TargetTransformInfo::TargetCostKind CostKind) override {
|
||||
InstructionCost
|
||||
getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
enum TargetTransformInfo::TargetCostKind CostKind) override {
|
||||
return Impl.getGEPCost(PointeeType, Ptr, Operands);
|
||||
}
|
||||
unsigned getInliningThresholdMultiplier() override {
|
||||
|
@ -47,9 +47,10 @@ public:
|
||||
|
||||
const DataLayout &getDataLayout() const { return DL; }
|
||||
|
||||
int getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TTI::TargetCostKind CostKind = TTI::TCK_SizeAndLatency) const {
|
||||
InstructionCost
|
||||
getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TTI::TargetCostKind CostKind = TTI::TCK_SizeAndLatency) const {
|
||||
// In the basic model, we just assume that all-constant GEPs will be folded
|
||||
// into their uses via addressing modes.
|
||||
for (unsigned Idx = 0, Size = Operands.size(); Idx != Size; ++Idx)
|
||||
@ -841,9 +842,10 @@ protected:
|
||||
public:
|
||||
using BaseT::getGEPCost;
|
||||
|
||||
int getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TTI::TargetCostKind CostKind = TTI::TCK_SizeAndLatency) {
|
||||
InstructionCost
|
||||
getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TTI::TargetCostKind CostKind = TTI::TCK_SizeAndLatency) {
|
||||
assert(PointeeType && Ptr && "can't get GEPCost of nullptr");
|
||||
// TODO: will remove this when pointers have an opaque type.
|
||||
assert(Ptr->getType()->getScalarType()->getPointerElementType() ==
|
||||
|
@ -310,8 +310,8 @@ public:
|
||||
return getTLI()->getTypeLegalizationCost(DL, Ty).first;
|
||||
}
|
||||
|
||||
int getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands) {
|
||||
InstructionCost getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands) {
|
||||
return BaseT::getGEPCost(PointeeType, Ptr, Operands);
|
||||
}
|
||||
|
||||
|
@ -206,9 +206,10 @@ int TargetTransformInfo::getInlinerVectorBonusPercent() const {
|
||||
return TTIImpl->getInlinerVectorBonusPercent();
|
||||
}
|
||||
|
||||
int TargetTransformInfo::getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TTI::TargetCostKind CostKind) const {
|
||||
InstructionCost
|
||||
TargetTransformInfo::getGEPCost(Type *PointeeType, const Value *Ptr,
|
||||
ArrayRef<const Value *> Operands,
|
||||
TTI::TargetCostKind CostKind) const {
|
||||
return TTIImpl->getGEPCost(PointeeType, Ptr, Operands, CostKind);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user