LLVM: llvm::TargetTransformInfoImplBase Class Reference (original) (raw)

Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class. More...

#include "[llvm/Analysis/TargetTransformInfoImpl.h](TargetTransformInfoImpl%5F8h%5Fsource.html)"

Public Member Functions
TargetTransformInfoImplBase (const TargetTransformInfoImplBase &Arg)=default
TargetTransformInfoImplBase (TargetTransformInfoImplBase &&Arg)
const DataLayout & getDataLayout () const
InstructionCost getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands, Type *AccessType, TTI::TargetCostKind CostKind) const
unsigned getEstimatedNumberOfCaseClusters (const SwitchInst &SI, unsigned &JTSize, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI) const
unsigned getInliningThresholdMultiplier () const
unsigned getInliningCostBenefitAnalysisSavingsMultiplier () const
unsigned getInliningCostBenefitAnalysisProfitableMultiplier () const
int getInliningLastCallToStaticBonus () const
unsigned adjustInliningThreshold (const CallBase *CB) const
unsigned getCallerAllocaCost (const CallBase *CB, const AllocaInst *AI) const
int getInlinerVectorBonusPercent () const
InstructionCost getMemcpyCost (const Instruction *I) const
uint64_t getMaxMemIntrinsicInlineSizeThreshold () const
BranchProbability getPredictableBranchThreshold () const
InstructionCost getBranchMispredictPenalty () const
bool hasBranchDivergence (const Function *F=nullptr) const
bool isSourceOfDivergence (const Value *V) const
bool isAlwaysUniform (const Value *V) const
bool isValidAddrSpaceCast (unsigned FromAS, unsigned ToAS) const
bool addrspacesMayAlias (unsigned AS0, unsigned AS1) const
unsigned getFlatAddressSpace () const
bool collectFlatAddressOperands (SmallVectorImpl< int > &OpIndexes, Intrinsic::ID IID) const
bool isNoopAddrSpaceCast (unsigned, unsigned) const
bool canHaveNonUndefGlobalInitializerInAddressSpace (unsigned AS) const
unsigned getAssumedAddrSpace (const Value *V) const
bool isSingleThreaded () const
std::pair< const Value *, unsigned > getPredicatedAddrSpace (const Value *V) const
Value * rewriteIntrinsicWithAddressSpace (IntrinsicInst *II, Value *OldV, Value *NewV) const
bool isLoweredToCall (const Function *F) const
bool isHardwareLoopProfitable (Loop *L, ScalarEvolution &SE, AssumptionCache &AC, TargetLibraryInfo *LibInfo, HardwareLoopInfo &HWLoopInfo) const
unsigned getEpilogueVectorizationMinVF () const
bool preferPredicateOverEpilogue (TailFoldingInfo *TFI) const
TailFoldingStyle getPreferredTailFoldingStyle (bool IVUpdateMayOverflow=true) const
std::optional< Instruction * > instCombineIntrinsic (InstCombiner &IC, IntrinsicInst &II) const
std::optional< Value * > simplifyDemandedUseBitsIntrinsic (InstCombiner &IC, IntrinsicInst &II, APInt DemandedMask, KnownBits &Known, bool &KnownBitsComputed) const
std::optional< Value * > simplifyDemandedVectorEltsIntrinsic (InstCombiner &IC, IntrinsicInst &II, APInt DemandedElts, APInt &UndefElts, APInt &UndefElts2, APInt &UndefElts3, std::function< void(Instruction *, unsigned, APInt, APInt &)> SimplifyAndSetOp) const
void getUnrollingPreferences (Loop *, ScalarEvolution &, TTI::UnrollingPreferences &, OptimizationRemarkEmitter *) const
void getPeelingPreferences (Loop *, ScalarEvolution &, TTI::PeelingPreferences &) const
bool isLegalAddImmediate (int64_t Imm) const
bool isLegalAddScalableImmediate (int64_t Imm) const
bool isLegalICmpImmediate (int64_t Imm) const
bool isLegalAddressingMode (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace, Instruction *I=nullptr, int64_t ScalableOffset=0) const
bool isLSRCostLess (const TTI::LSRCost &C1, const TTI::LSRCost &C2) const
bool isNumRegsMajorCostOfLSR () const
bool shouldDropLSRSolutionIfLessProfitable () const
bool isProfitableLSRChainElement (Instruction *I) const
bool canMacroFuseCmp () const
bool canSaveCmp (Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI, DominatorTree *DT, AssumptionCache *AC, TargetLibraryInfo *LibInfo) const
TTI::AddressingModeKind getPreferredAddressingMode (const Loop *L, ScalarEvolution *SE) const
bool isLegalMaskedStore (Type *DataType, Align Alignment) const
bool isLegalMaskedLoad (Type *DataType, Align Alignment) const
bool isLegalNTStore (Type *DataType, Align Alignment) const
bool isLegalNTLoad (Type *DataType, Align Alignment) const
bool isLegalBroadcastLoad (Type *ElementTy, ElementCount NumElements) const
bool isLegalMaskedScatter (Type *DataType, Align Alignment) const
bool isLegalMaskedGather (Type *DataType, Align Alignment) const
bool forceScalarizeMaskedGather (VectorType *DataType, Align Alignment) const
bool forceScalarizeMaskedScatter (VectorType *DataType, Align Alignment) const
bool isLegalMaskedCompressStore (Type *DataType, Align Alignment) const
bool isLegalAltInstr (VectorType *VecTy, unsigned Opcode0, unsigned Opcode1, const SmallBitVector &OpcodeMask) const
bool isLegalMaskedExpandLoad (Type *DataType, Align Alignment) const
bool isLegalStridedLoadStore (Type *DataType, Align Alignment) const
bool isLegalInterleavedAccessType (VectorType *VTy, unsigned Factor, Align Alignment, unsigned AddrSpace)
bool isLegalMaskedVectorHistogram (Type *AddrType, Type *DataType) const
bool enableOrderedReductions () const
bool hasDivRemOp (Type *DataType, bool IsSigned) const
bool hasVolatileVariant (Instruction *I, unsigned AddrSpace) const
bool prefersVectorizedAddressing () const
InstructionCost getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, StackOffset BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace) const
bool LSRWithInstrQueries () const
bool isTruncateFree (Type *Ty1, Type *Ty2) const
bool isProfitableToHoist (Instruction *I) const
bool useAA () const
bool isTypeLegal (Type *Ty) const
unsigned getRegUsageForType (Type *Ty) const
bool shouldBuildLookupTables () const
bool shouldBuildLookupTablesForConstant (Constant *C) const
bool shouldBuildRelLookupTables () const
bool useColdCCForColdCall (Function &F) const
bool isTargetIntrinsicTriviallyScalarizable (Intrinsic::ID ID) const
bool isTargetIntrinsicWithScalarOpAtArg (Intrinsic::ID ID, unsigned ScalarOpdIdx) const
bool isTargetIntrinsicWithOverloadTypeAtArg (Intrinsic::ID ID, int OpdIdx) const
bool isTargetIntrinsicWithStructReturnOverloadAtField (Intrinsic::ID ID, int RetIdx) const
InstructionCost getScalarizationOverhead (VectorType *Ty, const APInt &DemandedElts, bool Insert, bool Extract, TTI::TargetCostKind CostKind, ArrayRef< Value * > VL={}) const
InstructionCost getOperandsScalarizationOverhead (ArrayRef< const Value * > Args, ArrayRef< Type * > Tys, TTI::TargetCostKind CostKind) const
bool supportsEfficientVectorElementLoadStore () const
bool supportsTailCalls () const
bool enableAggressiveInterleaving (bool LoopHasReductions) const
TTI::MemCmpExpansionOptions enableMemCmpExpansion (bool OptSize, bool IsZeroCmp) const
bool enableSelectOptimize () const
bool shouldTreatInstructionLikeSelect (const Instruction *I)
bool enableInterleavedAccessVectorization () const
bool enableMaskedInterleavedAccessVectorization () const
bool isFPVectorizationPotentiallyUnsafe () const
bool allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, Align Alignment, unsigned *Fast) const
TTI::PopcntSupportKind getPopcntSupport (unsigned IntTyWidthInBit) const
bool haveFastSqrt (Type *Ty) const
bool isExpensiveToSpeculativelyExecute (const Instruction *I)
bool isFCmpOrdCheaperThanFCmpZero (Type *Ty) const
InstructionCost getFPOpCost (Type *Ty) const
InstructionCost getIntImmCodeSizeCost (unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty) const
InstructionCost getIntImmCost (const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind) const
InstructionCost getIntImmCostInst (unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind, Instruction *Inst=nullptr) const
InstructionCost getIntImmCostIntrin (Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind) const
bool preferToKeepConstantsAttached (const Instruction &Inst, const Function &Fn) const
unsigned getNumberOfRegisters (unsigned ClassID) const
bool hasConditionalLoadStoreForType (Type *Ty) const
unsigned getRegisterClassForType (bool Vector, Type *Ty=nullptr) const
const char * getRegisterClassName (unsigned ClassID) const
TypeSize getRegisterBitWidth (TargetTransformInfo::RegisterKind K) const
unsigned getMinVectorRegisterBitWidth () const
std::optional< unsigned > getMaxVScale () const
std::optional< unsigned > getVScaleForTuning () const
bool isVScaleKnownToBeAPowerOfTwo () const
bool shouldMaximizeVectorBandwidth (TargetTransformInfo::RegisterKind K) const
ElementCount getMinimumVF (unsigned ElemWidth, bool IsScalable) const
unsigned getMaximumVF (unsigned ElemWidth, unsigned Opcode) const
unsigned getStoreMinimumVF (unsigned VF, Type *, Type *) const
bool shouldConsiderAddressTypePromotion (const Instruction &I, bool &AllowPromotionWithoutCommonHeader) const
unsigned getCacheLineSize () const
std::optional< unsigned > getCacheSize (TargetTransformInfo::CacheLevel Level) const
std::optional< unsigned > getCacheAssociativity (TargetTransformInfo::CacheLevel Level) const
std::optional< unsigned > getMinPageSize () const
unsigned getPrefetchDistance () const
unsigned getMinPrefetchStride (unsigned NumMemAccesses, unsigned NumStridedMemAccesses, unsigned NumPrefetches, bool HasCall) const
unsigned getMaxPrefetchIterationsAhead () const
bool enableWritePrefetching () const
bool shouldPrefetchAddressSpace (unsigned AS) const
InstructionCost getPartialReductionCost (unsigned Opcode, Type *InputTypeA, Type *InputTypeB, Type *AccumType, ElementCount VF, TTI::PartialReductionExtendKind OpAExtend, TTI::PartialReductionExtendKind OpBExtend, std::optional< unsigned > BinOp=std::nullopt) const
unsigned getMaxInterleaveFactor (ElementCount VF) const
InstructionCost getArithmeticInstrCost (unsigned Opcode, Type *Ty, TTI::TargetCostKind CostKind, TTI::OperandValueInfo Opd1Info, TTI::OperandValueInfo Opd2Info, ArrayRef< const Value * > Args, const Instruction *CxtI=nullptr) const
InstructionCost getAltInstrCost (VectorType *VecTy, unsigned Opcode0, unsigned Opcode1, const SmallBitVector &OpcodeMask, TTI::TargetCostKind CostKind) const
InstructionCost getShuffleCost (TTI::ShuffleKind Kind, VectorType *Ty, ArrayRef< int > Mask, TTI::TargetCostKind CostKind, int Index, VectorType *SubTp, ArrayRef< const Value * > Args={}, const Instruction *CxtI=nullptr) const
InstructionCost getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src, TTI::CastContextHint CCH, TTI::TargetCostKind CostKind, const Instruction *I) const
InstructionCost getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index) const
InstructionCost getCFInstrCost (unsigned Opcode, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) const
InstructionCost getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy, CmpInst::Predicate VecPred, TTI::TargetCostKind CostKind, TTI::OperandValueInfo Op1Info, TTI::OperandValueInfo Op2Info, const Instruction *I) const
InstructionCost getVectorInstrCost (unsigned Opcode, Type *Val, TTI::TargetCostKind CostKind, unsigned Index, Value *Op0, Value *Op1) const
InstructionCost getVectorInstrCost (unsigned Opcode, Type *Val, TTI::TargetCostKind CostKind, unsigned Index, Value *Scalar, ArrayRef< std::tuple< Value *, User *, int > > ScalarUserAndIdx) const
InstructionCost getVectorInstrCost (const Instruction &I, Type *Val, TTI::TargetCostKind CostKind, unsigned Index) const
unsigned getReplicationShuffleCost (Type *EltTy, int ReplicationFactor, int VF, const APInt &DemandedDstElts, TTI::TargetCostKind CostKind)
InstructionCost getMemoryOpCost (unsigned Opcode, Type *Src, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, TTI::OperandValueInfo OpInfo, const Instruction *I) const
InstructionCost getVPMemoryOpCost (unsigned Opcode, Type *Src, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, const Instruction *I) const
InstructionCost getMaskedMemoryOpCost (unsigned Opcode, Type *Src, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind) const
InstructionCost getGatherScatterOpCost (unsigned Opcode, Type *DataTy, const Value *Ptr, bool VariableMask, Align Alignment, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) const
InstructionCost getStridedMemoryOpCost (unsigned Opcode, Type *DataTy, const Value *Ptr, bool VariableMask, Align Alignment, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) const
unsigned getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, bool UseMaskForCond, bool UseMaskForGaps) const
InstructionCost getIntrinsicInstrCost (const IntrinsicCostAttributes &ICA, TTI::TargetCostKind CostKind) const
InstructionCost getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type * > Tys, TTI::TargetCostKind CostKind) const
unsigned getNumberOfParts (Type *Tp) const
InstructionCost getAddressComputationCost (Type *Tp, ScalarEvolution *, const SCEV *) const
InstructionCost getArithmeticReductionCost (unsigned, VectorType *, std::optional< FastMathFlags > FMF, TTI::TargetCostKind) const
InstructionCost getMinMaxReductionCost (Intrinsic::ID IID, VectorType *, FastMathFlags, TTI::TargetCostKind) const
InstructionCost getExtendedReductionCost (unsigned Opcode, bool IsUnsigned, Type *ResTy, VectorType *Ty, FastMathFlags FMF, TTI::TargetCostKind CostKind) const
InstructionCost getMulAccReductionCost (bool IsUnsigned, Type *ResTy, VectorType *Ty, TTI::TargetCostKind CostKind) const
InstructionCost getCostOfKeepingLiveOverCall (ArrayRef< Type * > Tys) const
bool getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info) const
unsigned getAtomicMemIntrinsicMaxElementSize () const
Value * getOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType) const
Type * getMemcpyLoopLoweringType (LLVMContext &Context, Value *Length, unsigned SrcAddrSpace, unsigned DestAddrSpace, Align SrcAlign, Align DestAlign, std::optional< uint32_t > AtomicElementSize) const
void getMemcpyLoopResidualLoweringType (SmallVectorImpl< Type * > &OpsOut, LLVMContext &Context, unsigned RemainingBytes, unsigned SrcAddrSpace, unsigned DestAddrSpace, Align SrcAlign, Align DestAlign, std::optional< uint32_t > AtomicCpySize) const
bool areInlineCompatible (const Function *Caller, const Function *Callee) const
unsigned getInlineCallPenalty (const Function *F, const CallBase &Call, unsigned DefaultCallPenalty) const
bool areTypesABICompatible (const Function *Caller, const Function *Callee, const ArrayRef< Type * > &Types) const
bool isIndexedLoadLegal (TTI::MemIndexedMode Mode, Type *Ty, const DataLayout &DL) const
bool isIndexedStoreLegal (TTI::MemIndexedMode Mode, Type *Ty, const DataLayout &DL) const
unsigned getLoadStoreVecRegBitWidth (unsigned AddrSpace) const
bool isLegalToVectorizeLoad (LoadInst *LI) const
bool isLegalToVectorizeStore (StoreInst *SI) const
bool isLegalToVectorizeLoadChain (unsigned ChainSizeInBytes, Align Alignment, unsigned AddrSpace) const
bool isLegalToVectorizeStoreChain (unsigned ChainSizeInBytes, Align Alignment, unsigned AddrSpace) const
bool isLegalToVectorizeReduction (const RecurrenceDescriptor &RdxDesc, ElementCount VF) const
bool isElementTypeLegalForScalableVector (Type *Ty) const
unsigned getLoadVectorFactor (unsigned VF, unsigned LoadSize, unsigned ChainSizeInBytes, VectorType *VecTy) const
unsigned getStoreVectorFactor (unsigned VF, unsigned StoreSize, unsigned ChainSizeInBytes, VectorType *VecTy) const
bool preferFixedOverScalableIfEqualCost () const
bool preferInLoopReduction (unsigned Opcode, Type *Ty, TTI::ReductionFlags Flags) const
bool preferPredicatedReductionSelect (unsigned Opcode, Type *Ty, TTI::ReductionFlags Flags) const
bool preferEpilogueVectorization () const
bool shouldExpandReduction (const IntrinsicInst *II) const
TTI::ReductionShuffle getPreferredExpandedReductionShuffle (const IntrinsicInst *II) const
unsigned getGISelRematGlobalCost () const
unsigned getMinTripCountTailFoldingThreshold () const
bool supportsScalableVectors () const
bool enableScalableVectorization () const
bool hasActiveVectorLength (unsigned Opcode, Type *DataType, Align Alignment) const
bool isProfitableToSinkOperands (Instruction *I, SmallVectorImpl< Use * > &Ops) const
bool isVectorShiftByScalarCheap (Type *Ty) const
TargetTransformInfo::VPLegalization getVPLegalizationStrategy (const VPIntrinsic &PI) const
bool hasArmWideBranch (bool) const
uint64_t getFeatureMask (const Function &F) const
bool isMultiversionedFunction (const Function &F) const
unsigned getMaxNumArgs () const
unsigned getNumBytesToPadGlobalArray (unsigned Size, Type *ArrayType) const
Protected Member Functions
TargetTransformInfoImplBase (const DataLayout &DL)
unsigned minRequiredElementSize (const Value *Val, bool &isSigned) const
bool isStridedAccess (const SCEV *Ptr) const
const SCEVConstant * getConstantStrideStep (ScalarEvolution *SE, const SCEV *Ptr) const
bool isConstantStridedAccessLessThan (ScalarEvolution *SE, const SCEV *Ptr, int64_t MergeDistance) const

Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.

Definition at line 34 of file TargetTransformInfoImpl.h.

TTI

llvm::TargetTransformInfoImplBase::TargetTransformInfoImplBase ( const DataLayout & DL) inlineexplicitprotected

TargetTransformInfoImplBase() [2/3]

TargetTransformInfoImplBase() [3/3]

addrspacesMayAlias()

bool llvm::TargetTransformInfoImplBase::addrspacesMayAlias ( unsigned AS0, unsigned AS1 ) const inline

adjustInliningThreshold()

allowsMisalignedMemoryAccesses()

areInlineCompatible()

areTypesABICompatible()

canHaveNonUndefGlobalInitializerInAddressSpace()

bool llvm::TargetTransformInfoImplBase::canHaveNonUndefGlobalInitializerInAddressSpace ( unsigned AS) const inline

canMacroFuseCmp()

bool llvm::TargetTransformInfoImplBase::canMacroFuseCmp ( ) const inline

canSaveCmp()

collectFlatAddressOperands()

enableAggressiveInterleaving()

bool llvm::TargetTransformInfoImplBase::enableAggressiveInterleaving ( bool LoopHasReductions) const inline

enableInterleavedAccessVectorization()

bool llvm::TargetTransformInfoImplBase::enableInterleavedAccessVectorization ( ) const inline

enableMaskedInterleavedAccessVectorization()

bool llvm::TargetTransformInfoImplBase::enableMaskedInterleavedAccessVectorization ( ) const inline

enableMemCmpExpansion()

enableOrderedReductions()

bool llvm::TargetTransformInfoImplBase::enableOrderedReductions ( ) const inline

enableScalableVectorization()

bool llvm::TargetTransformInfoImplBase::enableScalableVectorization ( ) const inline

enableSelectOptimize()

bool llvm::TargetTransformInfoImplBase::enableSelectOptimize ( ) const inline

enableWritePrefetching()

bool llvm::TargetTransformInfoImplBase::enableWritePrefetching ( ) const inline

forceScalarizeMaskedGather()

bool llvm::TargetTransformInfoImplBase::forceScalarizeMaskedGather ( VectorType * DataType, Align Alignment ) const inline

forceScalarizeMaskedScatter()

bool llvm::TargetTransformInfoImplBase::forceScalarizeMaskedScatter ( VectorType * DataType, Align Alignment ) const inline

getAddressComputationCost()

getAltInstrCost()

getArithmeticInstrCost()

getArithmeticReductionCost()

getAssumedAddrSpace()

unsigned llvm::TargetTransformInfoImplBase::getAssumedAddrSpace ( const Value * V) const inline

getAtomicMemIntrinsicMaxElementSize()

unsigned llvm::TargetTransformInfoImplBase::getAtomicMemIntrinsicMaxElementSize ( ) const inline

getBranchMispredictPenalty()

InstructionCost llvm::TargetTransformInfoImplBase::getBranchMispredictPenalty ( ) const inline

getCacheAssociativity()

getCacheLineSize()

unsigned llvm::TargetTransformInfoImplBase::getCacheLineSize ( ) const inline

getCacheSize()

getCallerAllocaCost()

getCallInstrCost()

getCastInstrCost()

getCFInstrCost()

getCmpSelInstrCost()

getConstantStrideStep()

getCostOfKeepingLiveOverCall()

getDataLayout()

const DataLayout & llvm::TargetTransformInfoImplBase::getDataLayout ( ) const inline

getEpilogueVectorizationMinVF()

unsigned llvm::TargetTransformInfoImplBase::getEpilogueVectorizationMinVF ( ) const inline

getEstimatedNumberOfCaseClusters()

getExtendedReductionCost()

getExtractWithExtendCost()

getFeatureMask()

getFlatAddressSpace()

unsigned llvm::TargetTransformInfoImplBase::getFlatAddressSpace ( ) const inline

getFPOpCost()

getGatherScatterOpCost()

getGEPCost()

getGISelRematGlobalCost()

unsigned llvm::TargetTransformInfoImplBase::getGISelRematGlobalCost ( ) const inline

getInlineCallPenalty()

getInlinerVectorBonusPercent()

int llvm::TargetTransformInfoImplBase::getInlinerVectorBonusPercent ( ) const inline

getInliningCostBenefitAnalysisProfitableMultiplier()

unsigned llvm::TargetTransformInfoImplBase::getInliningCostBenefitAnalysisProfitableMultiplier ( ) const inline

getInliningCostBenefitAnalysisSavingsMultiplier()

unsigned llvm::TargetTransformInfoImplBase::getInliningCostBenefitAnalysisSavingsMultiplier ( ) const inline

getInliningLastCallToStaticBonus()

int llvm::TargetTransformInfoImplBase::getInliningLastCallToStaticBonus ( ) const inline

getInliningThresholdMultiplier()

unsigned llvm::TargetTransformInfoImplBase::getInliningThresholdMultiplier ( ) const inline

getInterleavedMemoryOpCost()

getIntImmCodeSizeCost()

getIntImmCost()

getIntImmCostInst()

getIntImmCostIntrin()

getIntrinsicInstrCost()

getLoadStoreVecRegBitWidth()

unsigned llvm::TargetTransformInfoImplBase::getLoadStoreVecRegBitWidth ( unsigned AddrSpace) const inline

getLoadVectorFactor()

getMaskedMemoryOpCost()

getMaximumVF()

getMaxInterleaveFactor()

getMaxMemIntrinsicInlineSizeThreshold()

uint64_t llvm::TargetTransformInfoImplBase::getMaxMemIntrinsicInlineSizeThreshold ( ) const inline

getMaxNumArgs()

unsigned llvm::TargetTransformInfoImplBase::getMaxNumArgs ( ) const inline

getMaxPrefetchIterationsAhead()

unsigned llvm::TargetTransformInfoImplBase::getMaxPrefetchIterationsAhead ( ) const inline

getMaxVScale()

std::optional< unsigned > llvm::TargetTransformInfoImplBase::getMaxVScale ( ) const inline

getMemcpyCost()

getMemcpyLoopLoweringType()

getMemcpyLoopResidualLoweringType()

getMemoryOpCost()

getMinimumVF()

getMinMaxReductionCost()

getMinPageSize()

std::optional< unsigned > llvm::TargetTransformInfoImplBase::getMinPageSize ( ) const inline

getMinPrefetchStride()

getMinTripCountTailFoldingThreshold()

unsigned llvm::TargetTransformInfoImplBase::getMinTripCountTailFoldingThreshold ( ) const inline

getMinVectorRegisterBitWidth()

unsigned llvm::TargetTransformInfoImplBase::getMinVectorRegisterBitWidth ( ) const inline

getMulAccReductionCost()

getNumberOfParts()

unsigned llvm::TargetTransformInfoImplBase::getNumberOfParts ( Type * Tp) const inline

getNumberOfRegisters()

unsigned llvm::TargetTransformInfoImplBase::getNumberOfRegisters ( unsigned ClassID) const inline

getNumBytesToPadGlobalArray()

unsigned llvm::TargetTransformInfoImplBase::getNumBytesToPadGlobalArray ( unsigned Size, Type * ArrayType ) const inline

getOperandsScalarizationOverhead()

getOrCreateResultFromMemIntrinsic()

Value * llvm::TargetTransformInfoImplBase::getOrCreateResultFromMemIntrinsic ( IntrinsicInst * Inst, Type * ExpectedType ) const inline

getPartialReductionCost()

getPeelingPreferences()

getPopcntSupport()

getPredicatedAddrSpace()

getPredictableBranchThreshold()

BranchProbability llvm::TargetTransformInfoImplBase::getPredictableBranchThreshold ( ) const inline

getPreferredAddressingMode()

getPreferredExpandedReductionShuffle()

getPreferredTailFoldingStyle()

TailFoldingStyle llvm::TargetTransformInfoImplBase::getPreferredTailFoldingStyle ( bool IVUpdateMayOverflow = true) const inline

getPrefetchDistance()

unsigned llvm::TargetTransformInfoImplBase::getPrefetchDistance ( ) const inline

getRegisterBitWidth()

getRegisterClassForType()

unsigned llvm::TargetTransformInfoImplBase::getRegisterClassForType ( bool Vector, Type * Ty = nullptr ) const inline

getRegisterClassName()

const char * llvm::TargetTransformInfoImplBase::getRegisterClassName ( unsigned ClassID) const inline

getRegUsageForType()

unsigned llvm::TargetTransformInfoImplBase::getRegUsageForType ( Type * Ty) const inline

getReplicationShuffleCost()

getScalarizationOverhead()

getScalingFactorCost()

getShuffleCost()

getStoreMinimumVF()

getStoreVectorFactor()

getStridedMemoryOpCost()

getTgtMemIntrinsic()

getUnrollingPreferences()

getVectorInstrCost() [1/3]

getVectorInstrCost() [2/3]

getVectorInstrCost() [3/3]

getVPLegalizationStrategy()

getVPMemoryOpCost()

getVScaleForTuning()

std::optional< unsigned > llvm::TargetTransformInfoImplBase::getVScaleForTuning ( ) const inline

hasActiveVectorLength()

bool llvm::TargetTransformInfoImplBase::hasActiveVectorLength ( unsigned Opcode, Type * DataType, Align Alignment ) const inline

hasArmWideBranch()

bool llvm::TargetTransformInfoImplBase::hasArmWideBranch ( bool ) const inline

hasBranchDivergence()

bool llvm::TargetTransformInfoImplBase::hasBranchDivergence ( const Function * F = nullptr) const inline

hasConditionalLoadStoreForType()

bool llvm::TargetTransformInfoImplBase::hasConditionalLoadStoreForType ( Type * Ty) const inline

hasDivRemOp()

bool llvm::TargetTransformInfoImplBase::hasDivRemOp ( Type * DataType, bool IsSigned ) const inline

hasVolatileVariant()

haveFastSqrt()

bool llvm::TargetTransformInfoImplBase::haveFastSqrt ( Type * Ty) const inline

instCombineIntrinsic()

isAlwaysUniform()

bool llvm::TargetTransformInfoImplBase::isAlwaysUniform ( const Value * V) const inline

isConstantStridedAccessLessThan()

bool llvm::TargetTransformInfoImplBase::isConstantStridedAccessLessThan ( ScalarEvolution * SE, const SCEV * Ptr, int64_t MergeDistance ) const inlineprotected

isElementTypeLegalForScalableVector()

bool llvm::TargetTransformInfoImplBase::isElementTypeLegalForScalableVector ( Type * Ty) const inline

isExpensiveToSpeculativelyExecute()

bool llvm::TargetTransformInfoImplBase::isExpensiveToSpeculativelyExecute ( const Instruction * I) inline

isFCmpOrdCheaperThanFCmpZero()

bool llvm::TargetTransformInfoImplBase::isFCmpOrdCheaperThanFCmpZero ( Type * Ty) const inline

isFPVectorizationPotentiallyUnsafe()

bool llvm::TargetTransformInfoImplBase::isFPVectorizationPotentiallyUnsafe ( ) const inline

isHardwareLoopProfitable()

isIndexedLoadLegal()

isIndexedStoreLegal()

isLegalAddImmediate()

bool llvm::TargetTransformInfoImplBase::isLegalAddImmediate ( int64_t Imm) const inline

isLegalAddressingMode()

bool llvm::TargetTransformInfoImplBase::isLegalAddressingMode ( Type * Ty, GlobalValue * BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace, Instruction * I = nullptr, int64_t ScalableOffset = 0 ) const inline

isLegalAddScalableImmediate()

bool llvm::TargetTransformInfoImplBase::isLegalAddScalableImmediate ( int64_t Imm) const inline

isLegalAltInstr()

isLegalBroadcastLoad()

bool llvm::TargetTransformInfoImplBase::isLegalBroadcastLoad ( Type * ElementTy, ElementCount NumElements ) const inline

isLegalICmpImmediate()

bool llvm::TargetTransformInfoImplBase::isLegalICmpImmediate ( int64_t Imm) const inline

isLegalInterleavedAccessType()

isLegalMaskedCompressStore()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedCompressStore ( Type * DataType, Align Alignment ) const inline

isLegalMaskedExpandLoad()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedExpandLoad ( Type * DataType, Align Alignment ) const inline

isLegalMaskedGather()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedGather ( Type * DataType, Align Alignment ) const inline

isLegalMaskedLoad()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedLoad ( Type * DataType, Align Alignment ) const inline

isLegalMaskedScatter()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedScatter ( Type * DataType, Align Alignment ) const inline

isLegalMaskedStore()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedStore ( Type * DataType, Align Alignment ) const inline

isLegalMaskedVectorHistogram()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedVectorHistogram ( Type * AddrType, Type * DataType ) const inline

isLegalNTLoad()

bool llvm::TargetTransformInfoImplBase::isLegalNTLoad ( Type * DataType, Align Alignment ) const inline

isLegalNTStore()

bool llvm::TargetTransformInfoImplBase::isLegalNTStore ( Type * DataType, Align Alignment ) const inline

isLegalStridedLoadStore()

bool llvm::TargetTransformInfoImplBase::isLegalStridedLoadStore ( Type * DataType, Align Alignment ) const inline

isLegalToVectorizeLoad()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeLoad ( LoadInst * LI) const inline

isLegalToVectorizeLoadChain()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeLoadChain ( unsigned ChainSizeInBytes, Align Alignment, unsigned AddrSpace ) const inline

isLegalToVectorizeReduction()

isLegalToVectorizeStore()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeStore ( StoreInst * SI) const inline

isLegalToVectorizeStoreChain()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeStoreChain ( unsigned ChainSizeInBytes, Align Alignment, unsigned AddrSpace ) const inline

isLoweredToCall()

bool llvm::TargetTransformInfoImplBase::isLoweredToCall ( const Function * F) const inline

isLSRCostLess()

isMultiversionedFunction()

bool llvm::TargetTransformInfoImplBase::isMultiversionedFunction ( const Function & F) const inline

isNoopAddrSpaceCast()

isNumRegsMajorCostOfLSR()

bool llvm::TargetTransformInfoImplBase::isNumRegsMajorCostOfLSR ( ) const inline

isProfitableLSRChainElement()

bool llvm::TargetTransformInfoImplBase::isProfitableLSRChainElement ( Instruction * I) const inline

isProfitableToHoist()

bool llvm::TargetTransformInfoImplBase::isProfitableToHoist ( Instruction * I) const inline

isProfitableToSinkOperands()

isSingleThreaded()

bool llvm::TargetTransformInfoImplBase::isSingleThreaded ( ) const inline

isSourceOfDivergence()

bool llvm::TargetTransformInfoImplBase::isSourceOfDivergence ( const Value * V) const inline

isStridedAccess()

bool llvm::TargetTransformInfoImplBase::isStridedAccess ( const SCEV * Ptr) const inlineprotected

isTargetIntrinsicTriviallyScalarizable()

bool llvm::TargetTransformInfoImplBase::isTargetIntrinsicTriviallyScalarizable ( Intrinsic::ID ID) const inline

isTargetIntrinsicWithOverloadTypeAtArg()

bool llvm::TargetTransformInfoImplBase::isTargetIntrinsicWithOverloadTypeAtArg ( Intrinsic::ID ID, int OpdIdx ) const inline

isTargetIntrinsicWithScalarOpAtArg()

bool llvm::TargetTransformInfoImplBase::isTargetIntrinsicWithScalarOpAtArg ( Intrinsic::ID ID, unsigned ScalarOpdIdx ) const inline

isTargetIntrinsicWithStructReturnOverloadAtField()

bool llvm::TargetTransformInfoImplBase::isTargetIntrinsicWithStructReturnOverloadAtField ( Intrinsic::ID ID, int RetIdx ) const inline

isTruncateFree()

bool llvm::TargetTransformInfoImplBase::isTruncateFree ( Type * Ty1, Type * Ty2 ) const inline

isTypeLegal()

bool llvm::TargetTransformInfoImplBase::isTypeLegal ( Type * Ty) const inline

isValidAddrSpaceCast()

bool llvm::TargetTransformInfoImplBase::isValidAddrSpaceCast ( unsigned FromAS, unsigned ToAS ) const inline

isVectorShiftByScalarCheap()

bool llvm::TargetTransformInfoImplBase::isVectorShiftByScalarCheap ( Type * Ty) const inline

isVScaleKnownToBeAPowerOfTwo()

bool llvm::TargetTransformInfoImplBase::isVScaleKnownToBeAPowerOfTwo ( ) const inline

LSRWithInstrQueries()

bool llvm::TargetTransformInfoImplBase::LSRWithInstrQueries ( ) const inline

minRequiredElementSize()

unsigned llvm::TargetTransformInfoImplBase::minRequiredElementSize ( const Value * Val, bool & isSigned ) const inlineprotected

preferEpilogueVectorization()

bool llvm::TargetTransformInfoImplBase::preferEpilogueVectorization ( ) const inline

preferFixedOverScalableIfEqualCost()

bool llvm::TargetTransformInfoImplBase::preferFixedOverScalableIfEqualCost ( ) const inline

preferInLoopReduction()

preferPredicatedReductionSelect()

preferPredicateOverEpilogue()

bool llvm::TargetTransformInfoImplBase::preferPredicateOverEpilogue ( TailFoldingInfo * TFI) const inline

prefersVectorizedAddressing()

bool llvm::TargetTransformInfoImplBase::prefersVectorizedAddressing ( ) const inline

preferToKeepConstantsAttached()

rewriteIntrinsicWithAddressSpace()

shouldBuildLookupTables()

bool llvm::TargetTransformInfoImplBase::shouldBuildLookupTables ( ) const inline

shouldBuildLookupTablesForConstant()

bool llvm::TargetTransformInfoImplBase::shouldBuildLookupTablesForConstant ( Constant * C) const inline

shouldBuildRelLookupTables()

bool llvm::TargetTransformInfoImplBase::shouldBuildRelLookupTables ( ) const inline

shouldConsiderAddressTypePromotion()

bool llvm::TargetTransformInfoImplBase::shouldConsiderAddressTypePromotion ( const Instruction & I, bool & AllowPromotionWithoutCommonHeader ) const inline

shouldDropLSRSolutionIfLessProfitable()

bool llvm::TargetTransformInfoImplBase::shouldDropLSRSolutionIfLessProfitable ( ) const inline

shouldExpandReduction()

shouldMaximizeVectorBandwidth()

shouldPrefetchAddressSpace()

bool llvm::TargetTransformInfoImplBase::shouldPrefetchAddressSpace ( unsigned AS) const inline

shouldTreatInstructionLikeSelect()

bool llvm::TargetTransformInfoImplBase::shouldTreatInstructionLikeSelect ( const Instruction * I) inline

simplifyDemandedUseBitsIntrinsic()

simplifyDemandedVectorEltsIntrinsic()

supportsEfficientVectorElementLoadStore()

bool llvm::TargetTransformInfoImplBase::supportsEfficientVectorElementLoadStore ( ) const inline

supportsScalableVectors()

bool llvm::TargetTransformInfoImplBase::supportsScalableVectors ( ) const inline

supportsTailCalls()

bool llvm::TargetTransformInfoImplBase::supportsTailCalls ( ) const inline

useAA()

bool llvm::TargetTransformInfoImplBase::useAA ( ) const inline

useColdCCForColdCall()

bool llvm::TargetTransformInfoImplBase::useColdCCForColdCall ( Function & F) const inline

DL


The documentation for this class was generated from the following file: