LLVM 20.0.0git
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
llvm::TargetTransformInfoImplBase Class Reference

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

#include "llvm/Analysis/TargetTransformInfoImpl.h"

Inheritance diagram for llvm::TargetTransformInfoImplBase:
Inheritance graph
[legend]

Public Member Functions

 TargetTransformInfoImplBase (const TargetTransformInfoImplBase &Arg)=default
 
 TargetTransformInfoImplBase (TargetTransformInfoImplBase &&Arg)
 
const DataLayoutgetDataLayout () 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 *, unsignedgetPredicatedAddrSpace (const Value *V) const
 
ValuerewriteIntrinsicWithAddressSpace (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 chargetRegisterClassName (unsigned ClassID) const
 
TypeSize getRegisterBitWidth (TargetTransformInfo::RegisterKind K) const
 
unsigned getMinVectorRegisterBitWidth () const
 
std::optional< unsignedgetMaxVScale () const
 
std::optional< unsignedgetVScaleForTuning () 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< unsignedgetCacheSize (TargetTransformInfo::CacheLevel Level) const
 
std::optional< unsignedgetCacheAssociativity (TargetTransformInfo::CacheLevel Level) const
 
std::optional< unsignedgetMinPageSize () 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
 
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
 
ValuegetOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType) const
 
TypegetMemcpyLoopLoweringType (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
 
unsigned getMaxNumArgs () const
 
unsigned getNumBytesToPadGlobalArray (unsigned Size, Type *ArrayType) const
 

Protected Types

typedef TargetTransformInfo TTI
 

Protected Member Functions

 TargetTransformInfoImplBase (const DataLayout &DL)
 
unsigned minRequiredElementSize (const Value *Val, bool &isSigned) const
 
bool isStridedAccess (const SCEV *Ptr) const
 
const SCEVConstantgetConstantStrideStep (ScalarEvolution *SE, const SCEV *Ptr) const
 
bool isConstantStridedAccessLessThan (ScalarEvolution *SE, const SCEV *Ptr, int64_t MergeDistance) const
 

Protected Attributes

const DataLayoutDL
 

Detailed Description

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

Definition at line 34 of file TargetTransformInfoImpl.h.

Member Typedef Documentation

◆ TTI

Definition at line 37 of file TargetTransformInfoImpl.h.

Constructor & Destructor Documentation

◆ TargetTransformInfoImplBase() [1/3]

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

Definition at line 41 of file TargetTransformInfoImpl.h.

◆ TargetTransformInfoImplBase() [2/3]

llvm::TargetTransformInfoImplBase::TargetTransformInfoImplBase ( const TargetTransformInfoImplBase Arg)
default

◆ TargetTransformInfoImplBase() [3/3]

llvm::TargetTransformInfoImplBase::TargetTransformInfoImplBase ( TargetTransformInfoImplBase &&  Arg)
inline

Definition at line 46 of file TargetTransformInfoImpl.h.

Member Function Documentation

◆ addrspacesMayAlias()

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

Definition at line 119 of file TargetTransformInfoImpl.h.

◆ adjustInliningThreshold()

unsigned llvm::TargetTransformInfoImplBase::adjustInliningThreshold ( const CallBase CB) const
inline

Definition at line 82 of file TargetTransformInfoImpl.h.

◆ allowsMisalignedMemoryAccesses()

bool llvm::TargetTransformInfoImplBase::allowsMisalignedMemoryAccesses ( LLVMContext Context,
unsigned  BitWidth,
unsigned  AddressSpace,
Align  Alignment,
unsigned Fast 
) const
inline

Definition at line 458 of file TargetTransformInfoImpl.h.

◆ areInlineCompatible()

bool llvm::TargetTransformInfoImplBase::areInlineCompatible ( const Function Caller,
const Function Callee 
) const
inline

Definition at line 915 of file TargetTransformInfoImpl.h.

◆ areTypesABICompatible()

bool llvm::TargetTransformInfoImplBase::areTypesABICompatible ( const Function Caller,
const Function Callee,
const ArrayRef< Type * > &  Types 
) const
inline

◆ canHaveNonUndefGlobalInitializerInAddressSpace()

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

Definition at line 131 of file TargetTransformInfoImpl.h.

◆ canMacroFuseCmp()

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

Definition at line 266 of file TargetTransformInfoImpl.h.

◆ canSaveCmp()

bool llvm::TargetTransformInfoImplBase::canSaveCmp ( Loop L,
BranchInst **  BI,
ScalarEvolution SE,
LoopInfo LI,
DominatorTree DT,
AssumptionCache AC,
TargetLibraryInfo LibInfo 
) const
inline

Definition at line 268 of file TargetTransformInfoImpl.h.

◆ collectFlatAddressOperands()

bool llvm::TargetTransformInfoImplBase::collectFlatAddressOperands ( SmallVectorImpl< int > &  OpIndexes,
Intrinsic::ID  IID 
) const
inline

Definition at line 125 of file TargetTransformInfoImpl.h.

◆ enableAggressiveInterleaving()

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

Definition at line 428 of file TargetTransformInfoImpl.h.

◆ enableInterleavedAccessVectorization()

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

Definition at line 452 of file TargetTransformInfoImpl.h.

◆ enableMaskedInterleavedAccessVectorization()

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

Definition at line 454 of file TargetTransformInfoImpl.h.

◆ enableMemCmpExpansion()

TTI::MemCmpExpansionOptions llvm::TargetTransformInfoImplBase::enableMemCmpExpansion ( bool  OptSize,
bool  IsZeroCmp 
) const
inline

Definition at line 432 of file TargetTransformInfoImpl.h.

◆ enableOrderedReductions()

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

Definition at line 348 of file TargetTransformInfoImpl.h.

◆ enableScalableVectorization()

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

Definition at line 1010 of file TargetTransformInfoImpl.h.

◆ enableSelectOptimize()

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

Definition at line 437 of file TargetTransformInfoImpl.h.

◆ enableWritePrefetching()

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

Definition at line 585 of file TargetTransformInfoImpl.h.

◆ forceScalarizeMaskedGather()

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

Definition at line 313 of file TargetTransformInfoImpl.h.

◆ forceScalarizeMaskedScatter()

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

Definition at line 317 of file TargetTransformInfoImpl.h.

◆ getAddressComputationCost()

InstructionCost llvm::TargetTransformInfoImplBase::getAddressComputationCost ( Type Tp,
ScalarEvolution ,
const SCEV  
) const
inline

Definition at line 843 of file TargetTransformInfoImpl.h.

◆ getAltInstrCost()

InstructionCost llvm::TargetTransformInfoImplBase::getAltInstrCost ( VectorType VecTy,
unsigned  Opcode0,
unsigned  Opcode1,
const SmallBitVector OpcodeMask,
TTI::TargetCostKind  CostKind 
) const
inline

Definition at line 631 of file TargetTransformInfoImpl.h.

References llvm::InstructionCost::getInvalid().

◆ getArithmeticInstrCost()

InstructionCost llvm::TargetTransformInfoImplBase::getArithmeticInstrCost ( unsigned  Opcode,
Type Ty,
TTI::TargetCostKind  CostKind,
TTI::OperandValueInfo  Opd1Info,
TTI::OperandValueInfo  Opd2Info,
ArrayRef< const Value * >  Args,
const Instruction CxtI = nullptr 
) const
inline

◆ getArithmeticReductionCost()

InstructionCost llvm::TargetTransformInfoImplBase::getArithmeticReductionCost ( unsigned  ,
VectorType ,
std::optional< FastMathFlags FMF,
TTI::TargetCostKind   
) const
inline

Definition at line 848 of file TargetTransformInfoImpl.h.

◆ getAssumedAddrSpace()

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

Definition at line 135 of file TargetTransformInfoImpl.h.

◆ getAtomicMemIntrinsicMaxElementSize()

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

Definition at line 881 of file TargetTransformInfoImpl.h.

◆ getBranchMispredictPenalty()

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

Definition at line 107 of file TargetTransformInfoImpl.h.

◆ getCacheAssociativity()

std::optional< unsigned > llvm::TargetTransformInfoImplBase::getCacheAssociativity ( TargetTransformInfo::CacheLevel  Level) const
inline

◆ getCacheLineSize()

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

Definition at line 552 of file TargetTransformInfoImpl.h.

◆ getCacheSize()

std::optional< unsigned > llvm::TargetTransformInfoImplBase::getCacheSize ( TargetTransformInfo::CacheLevel  Level) const
inline

◆ getCallerAllocaCost()

unsigned llvm::TargetTransformInfoImplBase::getCallerAllocaCost ( const CallBase CB,
const AllocaInst AI 
) const
inline

Definition at line 83 of file TargetTransformInfoImpl.h.

◆ getCallInstrCost()

InstructionCost llvm::TargetTransformInfoImplBase::getCallInstrCost ( Function F,
Type RetTy,
ArrayRef< Type * >  Tys,
TTI::TargetCostKind  CostKind 
) const
inline

Definition at line 834 of file TargetTransformInfoImpl.h.

◆ getCastInstrCost()

InstructionCost llvm::TargetTransformInfoImplBase::getCastInstrCost ( unsigned  Opcode,
Type Dst,
Type Src,
TTI::CastContextHint  CCH,
TTI::TargetCostKind  CostKind,
const Instruction I 
) const
inline

◆ getCFInstrCost()

InstructionCost llvm::TargetTransformInfoImplBase::getCFInstrCost ( unsigned  Opcode,
TTI::TargetCostKind  CostKind,
const Instruction I = nullptr 
) const
inline

◆ getCmpSelInstrCost()

InstructionCost llvm::TargetTransformInfoImplBase::getCmpSelInstrCost ( unsigned  Opcode,
Type ValTy,
Type CondTy,
CmpInst::Predicate  VecPred,
TTI::TargetCostKind  CostKind,
TTI::OperandValueInfo  Op1Info,
TTI::OperandValueInfo  Op2Info,
const Instruction I 
) const
inline

Definition at line 700 of file TargetTransformInfoImpl.h.

◆ getConstantStrideStep()

const SCEVConstant * llvm::TargetTransformInfoImplBase::getConstantStrideStep ( ScalarEvolution SE,
const SCEV Ptr 
) const
inlineprotected

◆ getCostOfKeepingLiveOverCall()

InstructionCost llvm::TargetTransformInfoImplBase::getCostOfKeepingLiveOverCall ( ArrayRef< Type * >  Tys) const
inline

Definition at line 873 of file TargetTransformInfoImpl.h.

◆ getDataLayout()

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

◆ getEpilogueVectorizationMinVF()

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

◆ getEstimatedNumberOfCaseClusters()

unsigned llvm::TargetTransformInfoImplBase::getEstimatedNumberOfCaseClusters ( const SwitchInst SI,
unsigned JTSize,
ProfileSummaryInfo PSI,
BlockFrequencyInfo BFI 
) const
inline

Definition at line 62 of file TargetTransformInfoImpl.h.

◆ getExtendedReductionCost()

InstructionCost llvm::TargetTransformInfoImplBase::getExtendedReductionCost ( unsigned  Opcode,
bool  IsUnsigned,
Type ResTy,
VectorType Ty,
FastMathFlags  FMF,
TTI::TargetCostKind  CostKind 
) const
inline

Definition at line 860 of file TargetTransformInfoImpl.h.

◆ getExtractWithExtendCost()

InstructionCost llvm::TargetTransformInfoImplBase::getExtractWithExtendCost ( unsigned  Opcode,
Type Dst,
VectorType VecTy,
unsigned  Index 
) const
inline

Definition at line 685 of file TargetTransformInfoImpl.h.

◆ getFlatAddressSpace()

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

Definition at line 123 of file TargetTransformInfoImpl.h.

◆ getFPOpCost()

InstructionCost llvm::TargetTransformInfoImplBase::getFPOpCost ( Type Ty) const
inline

Definition at line 474 of file TargetTransformInfoImpl.h.

References llvm::TargetTransformInfo::TCC_Basic.

◆ getGatherScatterOpCost()

InstructionCost llvm::TargetTransformInfoImplBase::getGatherScatterOpCost ( unsigned  Opcode,
Type DataTy,
const Value Ptr,
bool  VariableMask,
Align  Alignment,
TTI::TargetCostKind  CostKind,
const Instruction I = nullptr 
) const
inline

Definition at line 760 of file TargetTransformInfoImpl.h.

◆ getGEPCost()

InstructionCost llvm::TargetTransformInfoImplBase::getGEPCost ( Type PointeeType,
const Value Ptr,
ArrayRef< const Value * >  Operands,
Type AccessType,
TTI::TargetCostKind  CostKind 
) const
inline

◆ getGISelRematGlobalCost()

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

Definition at line 1004 of file TargetTransformInfoImpl.h.

◆ getInlineCallPenalty()

unsigned llvm::TargetTransformInfoImplBase::getInlineCallPenalty ( const Function F,
const CallBase Call,
unsigned  DefaultCallPenalty 
) const
inline

Definition at line 923 of file TargetTransformInfoImpl.h.

◆ getInlinerVectorBonusPercent()

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

Definition at line 87 of file TargetTransformInfoImpl.h.

◆ getInliningCostBenefitAnalysisProfitableMultiplier()

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

Definition at line 74 of file TargetTransformInfoImpl.h.

◆ getInliningCostBenefitAnalysisSavingsMultiplier()

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

Definition at line 73 of file TargetTransformInfoImpl.h.

◆ getInliningLastCallToStaticBonus()

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

◆ getInliningThresholdMultiplier()

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

Definition at line 72 of file TargetTransformInfoImpl.h.

◆ getInterleavedMemoryOpCost()

unsigned llvm::TargetTransformInfoImplBase::getInterleavedMemoryOpCost ( unsigned  Opcode,
Type VecTy,
unsigned  Factor,
ArrayRef< unsigned Indices,
Align  Alignment,
unsigned  AddressSpace,
TTI::TargetCostKind  CostKind,
bool  UseMaskForCond,
bool  UseMaskForGaps 
) const
inline

Definition at line 776 of file TargetTransformInfoImpl.h.

◆ getIntImmCodeSizeCost()

InstructionCost llvm::TargetTransformInfoImplBase::getIntImmCodeSizeCost ( unsigned  Opcode,
unsigned  Idx,
const APInt Imm,
Type Ty 
) const
inline

Definition at line 478 of file TargetTransformInfoImpl.h.

◆ getIntImmCost()

InstructionCost llvm::TargetTransformInfoImplBase::getIntImmCost ( const APInt Imm,
Type Ty,
TTI::TargetCostKind  CostKind 
) const
inline

◆ getIntImmCostInst()

InstructionCost llvm::TargetTransformInfoImplBase::getIntImmCostInst ( unsigned  Opcode,
unsigned  Idx,
const APInt Imm,
Type Ty,
TTI::TargetCostKind  CostKind,
Instruction Inst = nullptr 
) const
inline

◆ getIntImmCostIntrin()

InstructionCost llvm::TargetTransformInfoImplBase::getIntImmCostIntrin ( Intrinsic::ID  IID,
unsigned  Idx,
const APInt Imm,
Type Ty,
TTI::TargetCostKind  CostKind 
) const
inline

◆ getIntrinsicInstrCost()

InstructionCost llvm::TargetTransformInfoImplBase::getIntrinsicInstrCost ( const IntrinsicCostAttributes ICA,
TTI::TargetCostKind  CostKind 
) const
inline

◆ getLoadStoreVecRegBitWidth()

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

Definition at line 946 of file TargetTransformInfoImpl.h.

◆ getLoadVectorFactor()

unsigned llvm::TargetTransformInfoImplBase::getLoadVectorFactor ( unsigned  VF,
unsigned  LoadSize,
unsigned  ChainSizeInBytes,
VectorType VecTy 
) const
inline

Definition at line 969 of file TargetTransformInfoImpl.h.

◆ getMaskedMemoryOpCost()

InstructionCost llvm::TargetTransformInfoImplBase::getMaskedMemoryOpCost ( unsigned  Opcode,
Type Src,
Align  Alignment,
unsigned  AddressSpace,
TTI::TargetCostKind  CostKind 
) const
inline

Definition at line 754 of file TargetTransformInfoImpl.h.

◆ getMaximumVF()

unsigned llvm::TargetTransformInfoImplBase::getMaximumVF ( unsigned  ElemWidth,
unsigned  Opcode 
) const
inline

Definition at line 543 of file TargetTransformInfoImpl.h.

◆ getMaxInterleaveFactor()

unsigned llvm::TargetTransformInfoImplBase::getMaxInterleaveFactor ( ElementCount  VF) const
inline

Definition at line 588 of file TargetTransformInfoImpl.h.

◆ getMaxMemIntrinsicInlineSizeThreshold()

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

Definition at line 93 of file TargetTransformInfoImpl.h.

◆ getMaxNumArgs()

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

Definition at line 1033 of file TargetTransformInfoImpl.h.

◆ getMaxPrefetchIterationsAhead()

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

Definition at line 584 of file TargetTransformInfoImpl.h.

◆ getMaxVScale()

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

Definition at line 530 of file TargetTransformInfoImpl.h.

◆ getMemcpyCost()

InstructionCost llvm::TargetTransformInfoImplBase::getMemcpyCost ( const Instruction I) const
inline

◆ getMemcpyLoopLoweringType()

Type * llvm::TargetTransformInfoImplBase::getMemcpyLoopLoweringType ( LLVMContext Context,
Value Length,
unsigned  SrcAddrSpace,
unsigned  DestAddrSpace,
Align  SrcAlign,
Align  DestAlign,
std::optional< uint32_t AtomicElementSize 
) const
inline

Definition at line 896 of file TargetTransformInfoImpl.h.

References llvm::Type::getInt8Ty(), and llvm::Type::getIntNTy().

◆ getMemcpyLoopResidualLoweringType()

void llvm::TargetTransformInfoImplBase::getMemcpyLoopResidualLoweringType ( SmallVectorImpl< Type * > &  OpsOut,
LLVMContext Context,
unsigned  RemainingBytes,
unsigned  SrcAddrSpace,
unsigned  DestAddrSpace,
Align  SrcAlign,
Align  DestAlign,
std::optional< uint32_t AtomicCpySize 
) const
inline

◆ getMemoryOpCost()

InstructionCost llvm::TargetTransformInfoImplBase::getMemoryOpCost ( unsigned  Opcode,
Type Src,
Align  Alignment,
unsigned  AddressSpace,
TTI::TargetCostKind  CostKind,
TTI::OperandValueInfo  OpInfo,
const Instruction I 
) const
inline

Definition at line 739 of file TargetTransformInfoImpl.h.

◆ getMinimumVF()

ElementCount llvm::TargetTransformInfoImplBase::getMinimumVF ( unsigned  ElemWidth,
bool  IsScalable 
) const
inline

Definition at line 539 of file TargetTransformInfoImpl.h.

References llvm::ElementCount::get().

◆ getMinMaxReductionCost()

InstructionCost llvm::TargetTransformInfoImplBase::getMinMaxReductionCost ( Intrinsic::ID  IID,
VectorType ,
FastMathFlags  ,
TTI::TargetCostKind   
) const
inline

Definition at line 854 of file TargetTransformInfoImpl.h.

◆ getMinPageSize()

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

Definition at line 576 of file TargetTransformInfoImpl.h.

◆ getMinPrefetchStride()

unsigned llvm::TargetTransformInfoImplBase::getMinPrefetchStride ( unsigned  NumMemAccesses,
unsigned  NumStridedMemAccesses,
unsigned  NumPrefetches,
bool  HasCall 
) const
inline

Definition at line 579 of file TargetTransformInfoImpl.h.

◆ getMinTripCountTailFoldingThreshold()

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

Definition at line 1006 of file TargetTransformInfoImpl.h.

◆ getMinVectorRegisterBitWidth()

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

Definition at line 528 of file TargetTransformInfoImpl.h.

◆ getMulAccReductionCost()

InstructionCost llvm::TargetTransformInfoImplBase::getMulAccReductionCost ( bool  IsUnsigned,
Type ResTy,
VectorType Ty,
TTI::TargetCostKind  CostKind 
) const
inline

Definition at line 867 of file TargetTransformInfoImpl.h.

◆ getNumberOfParts()

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

Definition at line 841 of file TargetTransformInfoImpl.h.

◆ getNumberOfRegisters()

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

◆ getNumBytesToPadGlobalArray()

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

Definition at line 1035 of file TargetTransformInfoImpl.h.

◆ getOperandsScalarizationOverhead()

InstructionCost llvm::TargetTransformInfoImplBase::getOperandsScalarizationOverhead ( ArrayRef< const Value * >  Args,
ArrayRef< Type * >  Tys,
TTI::TargetCostKind  CostKind 
) const
inline

Definition at line 418 of file TargetTransformInfoImpl.h.

◆ getOrCreateResultFromMemIntrinsic()

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

Definition at line 890 of file TargetTransformInfoImpl.h.

◆ getPeelingPreferences()

void llvm::TargetTransformInfoImplBase::getPeelingPreferences ( Loop ,
ScalarEvolution ,
TTI::PeelingPreferences  
) const
inline

Definition at line 235 of file TargetTransformInfoImpl.h.

◆ getPopcntSupport()

TTI::PopcntSupportKind llvm::TargetTransformInfoImplBase::getPopcntSupport ( unsigned  IntTyWidthInBit) const
inline

◆ getPredicatedAddrSpace()

std::pair< const Value *, unsigned > llvm::TargetTransformInfoImplBase::getPredicatedAddrSpace ( const Value V) const
inline

Definition at line 140 of file TargetTransformInfoImpl.h.

◆ getPredictableBranchThreshold()

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

Definition at line 103 of file TargetTransformInfoImpl.h.

◆ getPreferredAddressingMode()

TTI::AddressingModeKind llvm::TargetTransformInfoImplBase::getPreferredAddressingMode ( const Loop L,
ScalarEvolution SE 
) const
inline

Definition at line 275 of file TargetTransformInfoImpl.h.

References llvm::TargetTransformInfo::AMK_None.

◆ getPreferredExpandedReductionShuffle()

TTI::ReductionShuffle llvm::TargetTransformInfoImplBase::getPreferredExpandedReductionShuffle ( const IntrinsicInst II) const
inline

Definition at line 1000 of file TargetTransformInfoImpl.h.

References llvm::TargetTransformInfo::SplitHalf.

◆ getPreferredTailFoldingStyle()

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

◆ getPrefetchDistance()

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

Definition at line 578 of file TargetTransformInfoImpl.h.

◆ getRegisterBitWidth()

TypeSize llvm::TargetTransformInfoImplBase::getRegisterBitWidth ( TargetTransformInfo::RegisterKind  K) const
inline

◆ getRegisterClassForType()

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

Definition at line 509 of file TargetTransformInfoImpl.h.

References llvm::Vector.

◆ getRegisterClassName()

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

Definition at line 513 of file TargetTransformInfoImpl.h.

◆ getRegUsageForType()

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

Definition at line 380 of file TargetTransformInfoImpl.h.

◆ getReplicationShuffleCost()

unsigned llvm::TargetTransformInfoImplBase::getReplicationShuffleCost ( Type EltTy,
int  ReplicationFactor,
int  VF,
const APInt DemandedDstElts,
TTI::TargetCostKind  CostKind 
)
inline

Definition at line 733 of file TargetTransformInfoImpl.h.

◆ getScalarizationOverhead()

InstructionCost llvm::TargetTransformInfoImplBase::getScalarizationOverhead ( VectorType Ty,
const APInt DemandedElts,
bool  Insert,
bool  Extract,
TTI::TargetCostKind  CostKind,
ArrayRef< Value * >  VL = {} 
) const
inline

Definition at line 409 of file TargetTransformInfoImpl.h.

◆ getScalingFactorCost()

InstructionCost llvm::TargetTransformInfoImplBase::getScalingFactorCost ( Type Ty,
GlobalValue BaseGV,
StackOffset  BaseOffset,
bool  HasBaseReg,
int64_t  Scale,
unsigned  AddrSpace 
) const
inline

◆ getShuffleCost()

InstructionCost llvm::TargetTransformInfoImplBase::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
inline

Definition at line 638 of file TargetTransformInfoImpl.h.

◆ getStoreMinimumVF()

unsigned llvm::TargetTransformInfoImplBase::getStoreMinimumVF ( unsigned  VF,
Type ,
Type  
) const
inline

Definition at line 544 of file TargetTransformInfoImpl.h.

◆ getStoreVectorFactor()

unsigned llvm::TargetTransformInfoImplBase::getStoreVectorFactor ( unsigned  VF,
unsigned  StoreSize,
unsigned  ChainSizeInBytes,
VectorType VecTy 
) const
inline

Definition at line 975 of file TargetTransformInfoImpl.h.

◆ getStridedMemoryOpCost()

InstructionCost llvm::TargetTransformInfoImplBase::getStridedMemoryOpCost ( unsigned  Opcode,
Type DataTy,
const Value Ptr,
bool  VariableMask,
Align  Alignment,
TTI::TargetCostKind  CostKind,
const Instruction I = nullptr 
) const
inline

Definition at line 768 of file TargetTransformInfoImpl.h.

References llvm::InstructionCost::getInvalid().

◆ getTgtMemIntrinsic()

bool llvm::TargetTransformInfoImplBase::getTgtMemIntrinsic ( IntrinsicInst Inst,
MemIntrinsicInfo Info 
) const
inline

Definition at line 877 of file TargetTransformInfoImpl.h.

◆ getUnrollingPreferences()

void llvm::TargetTransformInfoImplBase::getUnrollingPreferences ( Loop ,
ScalarEvolution ,
TTI::UnrollingPreferences ,
OptimizationRemarkEmitter  
) const
inline

Definition at line 231 of file TargetTransformInfoImpl.h.

◆ getVectorInstrCost() [1/3]

InstructionCost llvm::TargetTransformInfoImplBase::getVectorInstrCost ( const Instruction I,
Type Val,
TTI::TargetCostKind  CostKind,
unsigned  Index 
) const
inline

Definition at line 727 of file TargetTransformInfoImpl.h.

◆ getVectorInstrCost() [2/3]

InstructionCost llvm::TargetTransformInfoImplBase::getVectorInstrCost ( unsigned  Opcode,
Type Val,
TTI::TargetCostKind  CostKind,
unsigned  Index,
Value Op0,
Value Op1 
) const
inline

Definition at line 709 of file TargetTransformInfoImpl.h.

◆ getVectorInstrCost() [3/3]

InstructionCost llvm::TargetTransformInfoImplBase::getVectorInstrCost ( unsigned  Opcode,
Type Val,
TTI::TargetCostKind  CostKind,
unsigned  Index,
Value Scalar,
ArrayRef< std::tuple< Value *, User *, int > >  ScalarUserAndIdx 
) const
inline
Parameters
ScalarUserAndIdxencodes the information about extracts from a vector with 'Scalar' being the value being extracted,'User' being the user of the extract(nullptr if user is not known before vectorization) and 'Idx' being the extract lane.

Definition at line 720 of file TargetTransformInfoImpl.h.

◆ getVPLegalizationStrategy()

TargetTransformInfo::VPLegalization llvm::TargetTransformInfoImplBase::getVPLegalizationStrategy ( const VPIntrinsic PI) const
inline

◆ getVPMemoryOpCost()

InstructionCost llvm::TargetTransformInfoImplBase::getVPMemoryOpCost ( unsigned  Opcode,
Type Src,
Align  Alignment,
unsigned  AddressSpace,
TTI::TargetCostKind  CostKind,
const Instruction I 
) const
inline

Definition at line 747 of file TargetTransformInfoImpl.h.

Referenced by llvm::PPCTTIImpl::getVPMemoryOpCost().

◆ getVScaleForTuning()

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

Definition at line 531 of file TargetTransformInfoImpl.h.

◆ hasActiveVectorLength()

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

Definition at line 1012 of file TargetTransformInfoImpl.h.

◆ hasArmWideBranch()

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

Definition at line 1031 of file TargetTransformInfoImpl.h.

◆ hasBranchDivergence()

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

Definition at line 109 of file TargetTransformInfoImpl.h.

◆ hasConditionalLoadStoreForType()

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

Definition at line 507 of file TargetTransformInfoImpl.h.

◆ hasDivRemOp()

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

Definition at line 350 of file TargetTransformInfoImpl.h.

◆ hasVolatileVariant()

bool llvm::TargetTransformInfoImplBase::hasVolatileVariant ( Instruction I,
unsigned  AddrSpace 
) const
inline

Definition at line 352 of file TargetTransformInfoImpl.h.

◆ haveFastSqrt()

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

Definition at line 468 of file TargetTransformInfoImpl.h.

◆ instCombineIntrinsic()

std::optional< Instruction * > llvm::TargetTransformInfoImplBase::instCombineIntrinsic ( InstCombiner IC,
IntrinsicInst II 
) const
inline

◆ isAlwaysUniform()

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

Definition at line 113 of file TargetTransformInfoImpl.h.

◆ isConstantStridedAccessLessThan()

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

◆ isElementTypeLegalForScalableVector()

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

Definition at line 967 of file TargetTransformInfoImpl.h.

◆ isExpensiveToSpeculativelyExecute()

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

◆ isFCmpOrdCheaperThanFCmpZero()

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

Definition at line 472 of file TargetTransformInfoImpl.h.

◆ isFPVectorizationPotentiallyUnsafe()

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

Definition at line 456 of file TargetTransformInfoImpl.h.

◆ isHardwareLoopProfitable()

bool llvm::TargetTransformInfoImplBase::isHardwareLoopProfitable ( Loop L,
ScalarEvolution SE,
AssumptionCache AC,
TargetLibraryInfo LibInfo,
HardwareLoopInfo HWLoopInfo 
) const
inline

◆ isIndexedLoadLegal()

bool llvm::TargetTransformInfoImplBase::isIndexedLoadLegal ( TTI::MemIndexedMode  Mode,
Type Ty,
const DataLayout DL 
) const
inline

Definition at line 936 of file TargetTransformInfoImpl.h.

◆ isIndexedStoreLegal()

bool llvm::TargetTransformInfoImplBase::isIndexedStoreLegal ( TTI::MemIndexedMode  Mode,
Type Ty,
const DataLayout DL 
) const
inline

Definition at line 941 of file TargetTransformInfoImpl.h.

◆ isLegalAddImmediate()

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

Definition at line 238 of file TargetTransformInfoImpl.h.

◆ 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

Definition at line 240 of file TargetTransformInfoImpl.h.

◆ isLegalAltInstr()

bool llvm::TargetTransformInfoImplBase::isLegalAltInstr ( VectorType VecTy,
unsigned  Opcode0,
unsigned  Opcode1,
const SmallBitVector OpcodeMask 
) const
inline

Definition at line 326 of file TargetTransformInfoImpl.h.

◆ isLegalBroadcastLoad()

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

Definition at line 301 of file TargetTransformInfoImpl.h.

◆ isLegalICmpImmediate()

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

Definition at line 242 of file TargetTransformInfoImpl.h.

◆ isLegalInterleavedAccessType()

bool llvm::TargetTransformInfoImplBase::isLegalInterleavedAccessType ( VectorType VTy,
unsigned  Factor,
Align  Alignment,
unsigned  AddrSpace 
)
inline

Definition at line 339 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedCompressStore()

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

Definition at line 322 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedExpandLoad()

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

Definition at line 331 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedGather()

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

Definition at line 309 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedLoad()

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

Definition at line 283 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedScatter()

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

Definition at line 305 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedStore()

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

Definition at line 279 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedVectorHistogram()

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

Definition at line 344 of file TargetTransformInfoImpl.h.

◆ 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

Definition at line 335 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeLoad()

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

Definition at line 948 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeLoadChain()

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

Definition at line 952 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeReduction()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeReduction ( const RecurrenceDescriptor RdxDesc,
ElementCount  VF 
) const
inline

Definition at line 962 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeStore()

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

Definition at line 950 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeStoreChain()

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

Definition at line 957 of file TargetTransformInfoImpl.h.

◆ isLoweredToCall()

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

◆ isLSRCostLess()

bool llvm::TargetTransformInfoImplBase::isLSRCostLess ( const TTI::LSRCost C1,
const TTI::LSRCost C2 
) const
inline

◆ isNoopAddrSpaceCast()

bool llvm::TargetTransformInfoImplBase::isNoopAddrSpaceCast ( unsigned  ,
unsigned   
) const
inline

Definition at line 130 of file TargetTransformInfoImpl.h.

◆ 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

Definition at line 374 of file TargetTransformInfoImpl.h.

◆ isProfitableToSinkOperands()

bool llvm::TargetTransformInfoImplBase::isProfitableToSinkOperands ( Instruction I,
SmallVectorImpl< Use * > &  Ops 
) const
inline

Definition at line 1017 of file TargetTransformInfoImpl.h.

◆ isSingleThreaded()

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

Definition at line 137 of file TargetTransformInfoImpl.h.

◆ isSourceOfDivergence()

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

Definition at line 111 of file TargetTransformInfoImpl.h.

◆ isStridedAccess()

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

◆ isTargetIntrinsicTriviallyScalarizable()

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

Definition at line 390 of file TargetTransformInfoImpl.h.

◆ isTargetIntrinsicWithOverloadTypeAtArg()

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

Definition at line 399 of file TargetTransformInfoImpl.h.

◆ isTargetIntrinsicWithScalarOpAtArg()

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

Definition at line 394 of file TargetTransformInfoImpl.h.

◆ isTargetIntrinsicWithStructReturnOverloadAtField()

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

Definition at line 404 of file TargetTransformInfoImpl.h.

◆ isTruncateFree()

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

Definition at line 372 of file TargetTransformInfoImpl.h.

◆ isTypeLegal()

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

Definition at line 378 of file TargetTransformInfoImpl.h.

◆ isValidAddrSpaceCast()

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

Definition at line 115 of file TargetTransformInfoImpl.h.

◆ isVectorShiftByScalarCheap()

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

Definition at line 1022 of file TargetTransformInfoImpl.h.

◆ isVScaleKnownToBeAPowerOfTwo()

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

Definition at line 532 of file TargetTransformInfoImpl.h.

◆ LSRWithInstrQueries()

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

Definition at line 370 of file TargetTransformInfoImpl.h.

◆ minRequiredElementSize()

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

◆ preferEpilogueVectorization()

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

Definition at line 993 of file TargetTransformInfoImpl.h.

◆ preferFixedOverScalableIfEqualCost()

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

Definition at line 981 of file TargetTransformInfoImpl.h.

◆ preferInLoopReduction()

bool llvm::TargetTransformInfoImplBase::preferInLoopReduction ( unsigned  Opcode,
Type Ty,
TTI::ReductionFlags  Flags 
) const
inline

Definition at line 983 of file TargetTransformInfoImpl.h.

◆ preferPredicatedReductionSelect()

bool llvm::TargetTransformInfoImplBase::preferPredicatedReductionSelect ( unsigned  Opcode,
Type Ty,
TTI::ReductionFlags  Flags 
) const
inline

Definition at line 988 of file TargetTransformInfoImpl.h.

◆ preferPredicateOverEpilogue()

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

◆ prefersVectorizedAddressing()

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

Definition at line 356 of file TargetTransformInfoImpl.h.

◆ preferToKeepConstantsAttached()

bool llvm::TargetTransformInfoImplBase::preferToKeepConstantsAttached ( const Instruction Inst,
const Function Fn 
) const
inline

Definition at line 501 of file TargetTransformInfoImpl.h.

◆ rewriteIntrinsicWithAddressSpace()

Value * llvm::TargetTransformInfoImplBase::rewriteIntrinsicWithAddressSpace ( IntrinsicInst II,
Value OldV,
Value NewV 
) const
inline

Definition at line 144 of file TargetTransformInfoImpl.h.

◆ shouldBuildLookupTables()

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

Definition at line 382 of file TargetTransformInfoImpl.h.

◆ shouldBuildLookupTablesForConstant()

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

Definition at line 384 of file TargetTransformInfoImpl.h.

◆ shouldBuildRelLookupTables()

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

Definition at line 386 of file TargetTransformInfoImpl.h.

◆ shouldConsiderAddressTypePromotion()

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

Definition at line 546 of file TargetTransformInfoImpl.h.

◆ shouldDropLSRSolutionIfLessProfitable()

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

◆ shouldExpandReduction()

bool llvm::TargetTransformInfoImplBase::shouldExpandReduction ( const IntrinsicInst II) const
inline

Definition at line 997 of file TargetTransformInfoImpl.h.

◆ shouldMaximizeVectorBandwidth()

bool llvm::TargetTransformInfoImplBase::shouldMaximizeVectorBandwidth ( TargetTransformInfo::RegisterKind  K) const
inline

Definition at line 535 of file TargetTransformInfoImpl.h.

◆ shouldPrefetchAddressSpace()

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

Definition at line 586 of file TargetTransformInfoImpl.h.

◆ shouldTreatInstructionLikeSelect()

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

◆ simplifyDemandedUseBitsIntrinsic()

std::optional< Value * > llvm::TargetTransformInfoImplBase::simplifyDemandedUseBitsIntrinsic ( InstCombiner IC,
IntrinsicInst II,
APInt  DemandedMask,
KnownBits Known,
bool KnownBitsComputed 
) const
inline

◆ simplifyDemandedVectorEltsIntrinsic()

std::optional< Value * > llvm::TargetTransformInfoImplBase::simplifyDemandedVectorEltsIntrinsic ( InstCombiner IC,
IntrinsicInst II,
APInt  DemandedElts,
APInt UndefElts,
APInt UndefElts2,
APInt UndefElts3,
std::function< void(Instruction *, unsigned, APInt, APInt &)>  SimplifyAndSetOp 
) const
inline

◆ supportsEfficientVectorElementLoadStore()

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

Definition at line 424 of file TargetTransformInfoImpl.h.

◆ supportsScalableVectors()

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

Definition at line 1008 of file TargetTransformInfoImpl.h.

◆ supportsTailCalls()

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

◆ useAA()

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

Definition at line 376 of file TargetTransformInfoImpl.h.

◆ useColdCCForColdCall()

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

Definition at line 388 of file TargetTransformInfoImpl.h.

Member Data Documentation

◆ DL

const DataLayout& llvm::TargetTransformInfoImplBase::DL
protected

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