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:909
Inherits from: TargetTransformInfoImplBase
Templates
- T
Member Variables
Inherited from TargetTransformInfoImplBase:
Method Overview
- protected TargetTransformInfoImplCRTPBase<T>(const llvm::DataLayout & DL)
- public llvm::InstructionCost getGEPCost(llvm::Type * PointeeType, const llvm::Value * Ptr, ArrayRef<const llvm::Value *> Operands, TTI::TargetCostKind CostKind)
- public llvm::InstructionCost getInstructionLatency(const llvm::Instruction * I)
- public llvm::InstructionCost getUserCost(const llvm::User * U, ArrayRef<const llvm::Value *> Operands, TTI::TargetCostKind CostKind)
Inherited from TargetTransformInfoImplBase:
- public LSRWithInstrQueries
- public adjustInliningThreshold
- public allowsMisalignedMemoryAccesses
- public areInlineCompatible
- public areTypesABICompatible
- public canHaveNonUndefGlobalInitializerInAddressSpace
- public canMacroFuseCmp
- public canSaveCmp
- public collectFlatAddressOperands
- public emitGetActiveLaneMask
- public enableAggressiveInterleaving
- public enableInterleavedAccessVectorization
- public enableMaskedInterleavedAccessVectorization
- public enableMemCmpExpansion
- public enableOrderedReductions
- public enableScalableVectorization
- public enableWritePrefetching
- public forceScalarizeMaskedGather
- public forceScalarizeMaskedScatter
- public getAddressComputationCost
- public getArithmeticInstrCost
- public getArithmeticReductionCost
- public getAssumedAddrSpace
- public getAtomicMemIntrinsicMaxElementSize
- public getCFInstrCost
- public getCacheAssociativity
- public getCacheLineSize
- public getCacheSize
- public getCallInstrCost
- public getCastInstrCost
- public getCmpSelInstrCost
- protected getConstantStrideStep
- public getCostOfKeepingLiveOverCall
- public getDataLayout
- public getEstimatedNumberOfCaseClusters
- public getExtendedAddReductionCost
- 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 getLoadStoreVecRegBitWidth
- public getLoadVectorFactor
- public getMaskedMemoryOpCost
- public getMaxInterleaveFactor
- public getMaxPrefetchIterationsAhead
- public getMaxVScale
- public getMaximumVF
- public getMemcpyCost
- public getMemcpyLoopLoweringType
- public getMemcpyLoopResidualLoweringType
- public getMemoryOpCost
- public getMinMaxReductionCost
- public getMinPrefetchStride
- public getMinTripCountTailFoldingThreshold
- public getMinVectorRegisterBitWidth
- public getMinimumVF
- public getNumberOfParts
- public getNumberOfRegisters
- public getOperandsScalarizationOverhead
- public getOrCreateResultFromMemIntrinsic
- public getPeelingPreferences
- public getPopcntSupport
- public getPredicatedAddrSpace
- public getPredictableBranchThreshold
- public getPreferredAddressingMode
- public getPrefetchDistance
- public getRegUsageForType
- public getRegisterBitWidth
- public getRegisterClassForType
- public getRegisterClassName
- public getReplicationShuffleCost
- public getScalarizationOverhead
- public getScalingFactorCost
- public getShuffleCost
- public getStoreMinimumVF
- public getStoreVectorFactor
- public getTgtMemIntrinsic
- public getUnrollingPreferences
- public getVPLegalizationStrategy
- public getVPMemoryOpCost
- public getVScaleForTuning
- public getVectorInstrCost
- public hasActiveVectorLength
- public hasBranchDivergence
- public hasDivRemOp
- public hasVolatileVariant
- public haveFastSqrt
- public instCombineIntrinsic
- public isAlwaysUniform
- protected isConstantStridedAccessLessThan
- public isElementTypeLegalForScalableVector
- public isFCmpOrdCheaperThanFCmpZero
- public isFPVectorizationPotentiallyUnsafe
- public isHardwareLoopProfitable
- public isIndexedLoadLegal
- public isIndexedStoreLegal
- public isLSRCostLess
- public isLegalAddImmediate
- public isLegalAddressingMode
- public isLegalAltInstr
- public isLegalBroadcastLoad
- public isLegalICmpImmediate
- public isLegalMaskedCompressStore
- public isLegalMaskedExpandLoad
- public isLegalMaskedGather
- public isLegalMaskedLoad
- public isLegalMaskedScatter
- public isLegalMaskedStore
- public isLegalNTLoad
- public isLegalNTStore
- public isLegalToVectorizeLoad
- public isLegalToVectorizeLoadChain
- public isLegalToVectorizeReduction
- public isLegalToVectorizeStore
- public isLegalToVectorizeStoreChain
- public isLoweredToCall
- public isNoopAddrSpaceCast
- public isNumRegsMajorCostOfLSR
- public isProfitableLSRChainElement
- public isProfitableToHoist
- public isSourceOfDivergence
- protected isStridedAccess
- public isTruncateFree
- public isTypeLegal
- protected minRequiredElementSize
- public preferInLoopReduction
- public preferPredicateOverEpilogue
- public preferPredicatedReductionSelect
- public prefersVectorizedAddressing
- public rewriteIntrinsicWithAddressSpace
- public shouldBuildLookupTables
- public shouldBuildLookupTablesForConstant
- public shouldBuildRelLookupTables
- public shouldConsiderAddressTypePromotion
- public shouldExpandReduction
- public shouldMaximizeVectorBandwidth
- public simplifyDemandedUseBitsIntrinsic
- public simplifyDemandedVectorEltsIntrinsic
- public supportsEfficientVectorElementLoadStore
- public supportsScalableVectors
- public supportsTailCalls
- public useAA
- public useColdCCForColdCall
- public useGPUDivergenceAnalysis
Methods
¶TargetTransformInfoImplCRTPBase<T>(
const llvm::DataLayout& DL)
TargetTransformInfoImplCRTPBase<T>(
const llvm::DataLayout& DL)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:914
Parameters
- const llvm::DataLayout& DL
¶llvm::InstructionCost getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands,
TTI::TargetCostKind CostKind)
llvm::InstructionCost getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands,
TTI::TargetCostKind CostKind)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:919
Parameters
- llvm::Type* PointeeType
- const llvm::Value* Ptr
- ArrayRef<const llvm::Value*> Operands
- TTI::TargetCostKind CostKind
¶llvm::InstructionCost getInstructionLatency(
const llvm::Instruction* I)
llvm::InstructionCost getInstructionLatency(
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:1241
Parameters
- const llvm::Instruction* I
¶llvm::InstructionCost getUserCost(
const llvm::User* U,
ArrayRef<const llvm::Value*> Operands,
TTI::TargetCostKind CostKind)
llvm::InstructionCost getUserCost(
const llvm::User* U,
ArrayRef<const llvm::Value*> Operands,
TTI::TargetCostKind CostKind)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:982
Parameters
- const llvm::User* U
- ArrayRef<const llvm::Value*> Operands
- TTI::TargetCostKind CostKind