class TargetTransformInfoImplCRTPBase
Declaration
template <typename T>
class TargetTransformInfoImplCRTPBase
: public TargetTransformInfoImplBase { /* full declaration omitted */ };
Description
CRTP base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:705
Inherits from: TargetTransformInfoImplBase
Templates
- T
Member Variables
Inherited from TargetTransformInfoImplBase:
Method Overview
- protected TargetTransformInfoImplCRTPBase<T>(const llvm::DataLayout & DL)
- public unsigned int getCallCost(const llvm::Function * F, int NumArgs, const llvm::User * U)
- public unsigned int getCallCost(const llvm::Function * F, ArrayRef<const llvm::Value *> Arguments, const llvm::User * U)
- public int getGEPCost(llvm::Type * PointeeType, const llvm::Value * Ptr, ArrayRef<const llvm::Value *> Operands)
- public int getInstructionLatency(const llvm::Instruction * I)
- public unsigned int getIntrinsicCost(Intrinsic::ID IID, llvm::Type * RetTy, ArrayRef<llvm::Type *> ParamTys, const llvm::User * U)
- public unsigned int getIntrinsicCost(Intrinsic::ID IID, llvm::Type * RetTy, ArrayRef<const llvm::Value *> Arguments, const llvm::User * U)
- public unsigned int getUserCost(const llvm::User * U, ArrayRef<const llvm::Value *> Operands)
Inherited from TargetTransformInfoImplBase:
- public LSRWithInstrQueries
- public allowsMisalignedMemoryAccesses
- public areFunctionArgsABICompatible
- public areInlineCompatible
- public canMacroFuseCmp
- public canSaveCmp
- public collectFlatAddressOperands
- public enableAggressiveInterleaving
- public enableInterleavedAccessVectorization
- public enableMaskedInterleavedAccessVectorization
- public enableMemCmpExpansion
- public getAddressComputationCost
- public getArithmeticInstrCost
- public getArithmeticReductionCost
- public getAtomicMemIntrinsicMaxElementSize
- public getCFInstrCost
- public getCacheAssociativity
- public getCacheLineSize
- public getCacheSize
- public getCallCost
- public getCallInstrCost
- public getCastInstrCost
- public getCmpSelInstrCost
- protected getConstantStrideStep
- public getCostOfKeepingLiveOverCall
- public getDataLayout
- public getEstimatedNumberOfCaseClusters
- public getExtCost
- public getExtractWithExtendCost
- public getFPOpCost
- public getFlatAddressSpace
- public getGEPCost
- public getGISelRematGlobalCost
- public getGatherScatterOpCost
- public getInlinerVectorBonusPercent
- public getInliningThresholdMultiplier
- public getIntImmCodeSizeCost
- public getIntImmCost
- public getIntImmCostInst
- public getIntImmCostIntrin
- public getInterleavedMemoryOpCost
- public getIntrinsicInstrCost
- public getIntrinsicInstrCost
- public getLoadStoreVecRegBitWidth
- public getLoadVectorFactor
- public getMaskedMemoryOpCost
- public getMaxInterleaveFactor
- public getMaxPrefetchIterationsAhead
- public getMemcpyCost
- public getMemcpyLoopLoweringType
- public getMemcpyLoopResidualLoweringType
- public getMemoryOpCost
- public getMinMaxReductionCost
- public getMinPrefetchStride
- public getMinVectorRegisterBitWidth
- public getMinimumVF
- public getNumberOfParts
- public getNumberOfRegisters
- public getOperandsScalarizationOverhead
- public getOperationCost
- public getOrCreateResultFromMemIntrinsic
- public getPopcntSupport
- public getPrefetchDistance
- public getRegisterBitWidth
- public getRegisterClassForType
- public getRegisterClassName
- public getScalarizationOverhead
- public getScalingFactorCost
- public getShuffleCost
- public getStoreVectorFactor
- public getTgtMemIntrinsic
- public getUnrollingPreferences
- public getVectorInstrCost
- public hasBranchDivergence
- public hasDivRemOp
- public hasVolatileVariant
- public haveFastSqrt
- public isAlwaysUniform
- protected isConstantStridedAccessLessThan
- public isFCmpOrdCheaperThanFCmpZero
- public isFPVectorizationPotentiallyUnsafe
- public isHardwareLoopProfitable
- public isIndexedLoadLegal
- public isIndexedStoreLegal
- public isLSRCostLess
- public isLegalAddImmediate
- public isLegalAddressingMode
- public isLegalICmpImmediate
- public isLegalMaskedCompressStore
- public isLegalMaskedExpandLoad
- public isLegalMaskedGather
- public isLegalMaskedLoad
- public isLegalMaskedScatter
- public isLegalMaskedStore
- public isLegalNTLoad
- public isLegalNTStore
- public isLegalToVectorizeLoad
- public isLegalToVectorizeLoadChain
- public isLegalToVectorizeStore
- public isLegalToVectorizeStoreChain
- public isLoweredToCall
- public isProfitableToHoist
- public isSourceOfDivergence
- protected isStridedAccess
- public isTruncateFree
- public isTypeLegal
- protected minRequiredElementSize
- public preferPredicateOverEpilogue
- public prefersVectorizedAddressing
- public rewriteIntrinsicWithAddressSpace
- public shouldBuildLookupTables
- public shouldBuildLookupTablesForConstant
- public shouldConsiderAddressTypePromotion
- public shouldExpandReduction
- public shouldFavorBackedgeIndex
- public shouldFavorPostInc
- public shouldMaximizeVectorBandwidth
- public supportsEfficientVectorElementLoadStore
- public useAA
- public useColdCCForColdCall
- public useReductionIntrinsic
Methods
¶TargetTransformInfoImplCRTPBase<T>(
const llvm::DataLayout& DL)
TargetTransformInfoImplCRTPBase<T>(
const llvm::DataLayout& DL)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:710
Parameters
- const llvm::DataLayout& DL
¶unsigned int getCallCost(const llvm::Function* F,
int NumArgs,
const llvm::User* U)
unsigned int getCallCost(const llvm::Function* F,
int NumArgs,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:715
Parameters
- const llvm::Function* F
- int NumArgs
- const llvm::User* U
¶unsigned int getCallCost(
const llvm::Function* F,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
unsigned int getCallCost(
const llvm::Function* F,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:737
Parameters
- const llvm::Function* F
- ArrayRef<const llvm::Value*> Arguments
- const llvm::User* U
¶int getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands)
int getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:747
Parameters
- llvm::Type* PointeeType
- const llvm::Value* Ptr
- ArrayRef<const llvm::Value*> Operands
¶int getInstructionLatency(
const llvm::Instruction* I)
int getInstructionLatency(
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:903
Parameters
- const llvm::Instruction* I
¶unsigned int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> ParamTys,
const llvm::User* U)
unsigned int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> ParamTys,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:805
Parameters
- Intrinsic::ID IID
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> ParamTys
- const llvm::User* U
¶unsigned int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
unsigned int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:849
Parameters
- Intrinsic::ID IID
- llvm::Type* RetTy
- ArrayRef<const llvm::Value*> Arguments
- const llvm::User* U
¶unsigned int getUserCost(
const llvm::User* U,
ArrayRef<const llvm::Value*> Operands)
unsigned int getUserCost(
const llvm::User* U,
ArrayRef<const llvm::Value*> Operands)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:861
Parameters
- const llvm::User* U
- ArrayRef<const llvm::Value*> Operands