Skip to content

Commit 2f6f249

Browse files
committedMar 31, 2021
NFC: Change getIntrinsicInstrCost 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 Depends on D97468 Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D97469
1 parent 2f56e1c commit 2f6f249

18 files changed

+53
-46
lines changed
 

‎llvm/include/llvm/Analysis/TargetTransformInfo.h

+7-6
Original file line numberDiff line numberDiff line change
@@ -1197,8 +1197,8 @@ class TargetTransformInfo {
11971197
/// \returns The cost of Intrinsic instructions. Analyses the real arguments.
11981198
/// Three cases are handled: 1. scalar instruction 2. vector instruction
11991199
/// 3. scalar instruction which is to be vectorized.
1200-
int getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1201-
TTI::TargetCostKind CostKind) const;
1200+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1201+
TTI::TargetCostKind CostKind) const;
12021202

12031203
/// \returns The cost of Call instructions.
12041204
int getCallInstrCost(Function *F, Type *RetTy, ArrayRef<Type *> Tys,
@@ -1607,8 +1607,9 @@ class TargetTransformInfo::Concept {
16071607
virtual InstructionCost getExtendedAddReductionCost(
16081608
bool IsMLA, bool IsUnsigned, Type *ResTy, VectorType *Ty,
16091609
TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput) = 0;
1610-
virtual int getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1611-
TTI::TargetCostKind CostKind) = 0;
1610+
virtual InstructionCost
1611+
getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1612+
TTI::TargetCostKind CostKind) = 0;
16121613
virtual int getCallInstrCost(Function *F, Type *RetTy,
16131614
ArrayRef<Type *> Tys,
16141615
TTI::TargetCostKind CostKind) = 0;
@@ -2098,8 +2099,8 @@ class TargetTransformInfo::Model final : public TargetTransformInfo::Concept {
20982099
return Impl.getExtendedAddReductionCost(IsMLA, IsUnsigned, ResTy, Ty,
20992100
CostKind);
21002101
}
2101-
int getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
2102-
TTI::TargetCostKind CostKind) override {
2102+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
2103+
TTI::TargetCostKind CostKind) override {
21032104
return Impl.getIntrinsicInstrCost(ICA, CostKind);
21042105
}
21052106
int getCallInstrCost(Function *F, Type *RetTy,

‎llvm/include/llvm/Analysis/TargetTransformInfoImpl.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -558,8 +558,8 @@ class TargetTransformInfoImplBase {
558558
return 1;
559559
}
560560

561-
unsigned getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
562-
TTI::TargetCostKind CostKind) const {
561+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
562+
TTI::TargetCostKind CostKind) const {
563563
switch (ICA.getID()) {
564564
default:
565565
break;

‎llvm/include/llvm/CodeGen/BasicTTIImpl.h

+6-6
Original file line numberDiff line numberDiff line change
@@ -1195,8 +1195,8 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
11951195
}
11961196

11971197
/// Get intrinsic cost based on arguments.
1198-
unsigned getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1199-
TTI::TargetCostKind CostKind) {
1198+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1199+
TTI::TargetCostKind CostKind) {
12001200
// Check for generically free intrinsics.
12011201
if (BaseT::getIntrinsicInstrCost(ICA, CostKind) == 0)
12021202
return 0;
@@ -1207,7 +1207,7 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
12071207
return TargetTransformInfo::TCC_Basic;
12081208

12091209
if (ICA.isTypeBasedOnly())
1210-
return *getTypeBasedIntrinsicInstrCost(ICA, CostKind).getValue();
1210+
return getTypeBasedIntrinsicInstrCost(ICA, CostKind);
12111211

12121212
Type *RetTy = ICA.getReturnType();
12131213

@@ -1294,13 +1294,13 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
12941294
case Intrinsic::vector_reduce_umax:
12951295
case Intrinsic::vector_reduce_umin: {
12961296
IntrinsicCostAttributes Attrs(IID, RetTy, Args[0]->getType(), FMF, I, 1);
1297-
return *getTypeBasedIntrinsicInstrCost(Attrs, CostKind).getValue();
1297+
return getTypeBasedIntrinsicInstrCost(Attrs, CostKind);
12981298
}
12991299
case Intrinsic::vector_reduce_fadd:
13001300
case Intrinsic::vector_reduce_fmul: {
13011301
IntrinsicCostAttributes Attrs(
13021302
IID, RetTy, {Args[0]->getType(), Args[1]->getType()}, FMF, I, 1);
1303-
return *getTypeBasedIntrinsicInstrCost(Attrs, CostKind).getValue();
1303+
return getTypeBasedIntrinsicInstrCost(Attrs, CostKind);
13041304
}
13051305
case Intrinsic::fshl:
13061306
case Intrinsic::fshr: {
@@ -1365,7 +1365,7 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
13651365

13661366
IntrinsicCostAttributes Attrs(IID, RetTy, ICA.getArgTypes(), FMF, I,
13671367
ScalarizationCost);
1368-
return *thisT()->getTypeBasedIntrinsicInstrCost(Attrs, CostKind).getValue();
1368+
return thisT()->getTypeBasedIntrinsicInstrCost(Attrs, CostKind);
13691369
}
13701370

13711371
/// Get intrinsic cost based on argument types.

‎llvm/lib/Analysis/TargetTransformInfo.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -851,10 +851,10 @@ int TargetTransformInfo::getInterleavedMemoryOpCost(
851851
return Cost;
852852
}
853853

854-
int
854+
InstructionCost
855855
TargetTransformInfo::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
856856
TTI::TargetCostKind CostKind) const {
857-
int Cost = TTIImpl->getIntrinsicInstrCost(ICA, CostKind);
857+
InstructionCost Cost = TTIImpl->getIntrinsicInstrCost(ICA, CostKind);
858858
assert(Cost >= 0 && "TTI should not produce negative costs!");
859859
return Cost;
860860
}

‎llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ AArch64TTIImpl::getPopcntSupport(unsigned TyWidth) {
212212
return TTI::PSK_Software;
213213
}
214214

215-
unsigned
215+
InstructionCost
216216
AArch64TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
217217
TTI::TargetCostKind CostKind) {
218218
auto *RetTy = ICA.getReturnType();

‎llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ class AArch64TTIImpl : public BasicTTIImplBase<AArch64TTIImpl> {
9797
return 31;
9898
}
9999

100-
unsigned getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
101-
TTI::TargetCostKind CostKind);
100+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
101+
TTI::TargetCostKind CostKind);
102102

103103
TypeSize getRegisterBitWidth(TargetTransformInfo::RegisterKind K) const {
104104
switch (K) {

‎llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -727,8 +727,9 @@ static bool intrinsicHasPackedVectorBenefit(Intrinsic::ID ID) {
727727
}
728728
}
729729

730-
int GCNTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
731-
TTI::TargetCostKind CostKind) {
730+
InstructionCost
731+
GCNTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
732+
TTI::TargetCostKind CostKind) {
732733
if (ICA.getID() == Intrinsic::fabs)
733734
return 0;
734735

@@ -743,7 +744,7 @@ int GCNTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
743744

744745
// TODO: Combine these two logic paths.
745746
if (ICA.isTypeBasedOnly())
746-
return *getTypeBasedIntrinsicInstrCost(ICA, CostKind).getValue();
747+
return getTypeBasedIntrinsicInstrCost(ICA, CostKind);
747748

748749
unsigned RetVF =
749750
(RetTy->isVectorTy() ? cast<FixedVectorType>(RetTy)->getNumElements()

‎llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,8 @@ class GCNTTIImpl final : public BasicTTIImplBase<GCNTTIImpl> {
214214
bool IsPairwise,
215215
TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput);
216216

217-
int getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
218-
TTI::TargetCostKind CostKind);
217+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
218+
TTI::TargetCostKind CostKind);
219219
int getMinMaxReductionCost(
220220
VectorType *Ty, VectorType *CondTy, bool IsPairwiseForm, bool IsUnsigned,
221221
TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput);

‎llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ int ARMTTIImpl::getCmpSelInstrCost(unsigned Opcode, Type *ValTy, Type *CondTy,
900900
if (Sel != I)
901901
return 0;
902902
IntrinsicCostAttributes CostAttrs(IID, ValTy, {ValTy, ValTy});
903-
return getIntrinsicInstrCost(CostAttrs, CostKind);
903+
return *getIntrinsicInstrCost(CostAttrs, CostKind).getValue();
904904
}
905905
}
906906

@@ -1626,8 +1626,9 @@ ARMTTIImpl::getExtendedAddReductionCost(bool IsMLA, bool IsUnsigned,
16261626
CostKind);
16271627
}
16281628

1629-
int ARMTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1630-
TTI::TargetCostKind CostKind) {
1629+
InstructionCost
1630+
ARMTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1631+
TTI::TargetCostKind CostKind) {
16311632
switch (ICA.getID()) {
16321633
case Intrinsic::get_active_lane_mask:
16331634
// Currently we make a somewhat optimistic assumption that

‎llvm/lib/Target/ARM/ARMTargetTransformInfo.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,8 @@ class ARMTTIImpl : public BasicTTIImplBase<ARMTTIImpl> {
252252
Type *ResTy, VectorType *ValTy,
253253
TTI::TargetCostKind CostKind);
254254

255-
int getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
256-
TTI::TargetCostKind CostKind);
255+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
256+
TTI::TargetCostKind CostKind);
257257

258258
bool maybeLoweredToCall(Instruction &I);
259259
bool isLoweredToCall(const Function *F);

‎llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ unsigned HexagonTTIImpl::getCallInstrCost(Function *F, Type *RetTy,
139139
return BaseT::getCallInstrCost(F, RetTy, Tys, CostKind);
140140
}
141141

142-
unsigned
142+
InstructionCost
143143
HexagonTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
144144
TTI::TargetCostKind CostKind) {
145145
if (ICA.getID() == Intrinsic::bswap) {

‎llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ class HexagonTTIImpl : public BasicTTIImplBase<HexagonTTIImpl> {
110110
ArrayRef<Type *> Tys);
111111
unsigned getCallInstrCost(Function *F, Type *RetTy, ArrayRef<Type*> Tys,
112112
TTI::TargetCostKind CostKind);
113-
unsigned getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
114-
TTI::TargetCostKind CostKind);
113+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
114+
TTI::TargetCostKind CostKind);
115115
unsigned getAddressComputationCost(Type *Tp, ScalarEvolution *SE,
116116
const SCEV *S);
117117
unsigned getMemoryOpCost(unsigned Opcode, Type *Src, MaybeAlign Alignment,

‎llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -1209,8 +1209,9 @@ int PPCTTIImpl::getInterleavedMemoryOpCost(
12091209
return Cost;
12101210
}
12111211

1212-
unsigned PPCTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1213-
TTI::TargetCostKind CostKind) {
1212+
InstructionCost
1213+
PPCTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1214+
TTI::TargetCostKind CostKind) {
12141215
return BaseT::getIntrinsicInstrCost(ICA, CostKind);
12151216
}
12161217

‎llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ class PPCTTIImpl : public BasicTTIImplBase<PPCTTIImpl> {
127127
Align Alignment, unsigned AddressSpace,
128128
TTI::TargetCostKind CostKind = TTI::TCK_SizeAndLatency,
129129
bool UseMaskForCond = false, bool UseMaskForGaps = false);
130-
unsigned getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
131-
TTI::TargetCostKind CostKind);
130+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
131+
TTI::TargetCostKind CostKind);
132132

133133
/// @}
134134
};

‎llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -1191,9 +1191,11 @@ static int getVectorIntrinsicInstrCost(Intrinsic::ID ID, Type *RetTy) {
11911191
return -1;
11921192
}
11931193

1194-
int SystemZTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1195-
TTI::TargetCostKind CostKind) {
1196-
int Cost = getVectorIntrinsicInstrCost(ICA.getID(), ICA.getReturnType());
1194+
InstructionCost
1195+
SystemZTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
1196+
TTI::TargetCostKind CostKind) {
1197+
InstructionCost Cost =
1198+
getVectorIntrinsicInstrCost(ICA.getID(), ICA.getReturnType());
11971199
if (Cost != -1)
11981200
return Cost;
11991201
return BaseT::getIntrinsicInstrCost(ICA, CostKind);

‎llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ class SystemZTTIImpl : public BasicTTIImplBase<SystemZTTIImpl> {
112112
TTI::TargetCostKind CostKind = TTI::TCK_SizeAndLatency,
113113
bool UseMaskForCond = false, bool UseMaskForGaps = false);
114114

115-
int getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
116-
TTI::TargetCostKind CostKind);
115+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
116+
TTI::TargetCostKind CostKind);
117117
/// @}
118118
};
119119

‎llvm/lib/Target/X86/X86TargetTransformInfo.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -2912,10 +2912,11 @@ X86TTIImpl::getTypeBasedIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
29122912
return BaseT::getIntrinsicInstrCost(ICA, CostKind);
29132913
}
29142914

2915-
int X86TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
2916-
TTI::TargetCostKind CostKind) {
2915+
InstructionCost
2916+
X86TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
2917+
TTI::TargetCostKind CostKind) {
29172918
if (ICA.isTypeBasedOnly())
2918-
return *getTypeBasedIntrinsicInstrCost(ICA, CostKind).getValue();
2919+
return getTypeBasedIntrinsicInstrCost(ICA, CostKind);
29192920

29202921
static const CostTblEntry AVX512CostTbl[] = {
29212922
{ ISD::ROTL, MVT::v8i64, 1 },

‎llvm/lib/Target/X86/X86TargetTransformInfo.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,8 @@ class X86TTIImpl : public BasicTTIImplBase<X86TTIImpl> {
170170
InstructionCost
171171
getTypeBasedIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
172172
TTI::TargetCostKind CostKind);
173-
int getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
174-
TTI::TargetCostKind CostKind);
173+
InstructionCost getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
174+
TTI::TargetCostKind CostKind);
175175

176176
int getArithmeticReductionCost(unsigned Opcode, VectorType *Ty,
177177
bool IsPairwiseForm,

0 commit comments

Comments
 (0)
Please sign in to comment.