class TargetTransformInfoImplBase
Declaration
class TargetTransformInfoImplBase { /* full declaration omitted */ };
Description
Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:33
Member Variables
- protected const llvm::DataLayout& DL
Method Overview
- public bool LSRWithInstrQueries() const
- public TargetTransformInfoImplBase(const llvm::TargetTransformInfoImplBase & Arg)
- public TargetTransformInfoImplBase(llvm::TargetTransformInfoImplBase && Arg)
- protected TargetTransformInfoImplBase(const llvm::DataLayout & DL)
- public unsigned int adjustInliningThreshold(const llvm::CallBase * CB) const
- public bool allowsMisalignedMemoryAccesses(llvm::LLVMContext & Context, unsigned int BitWidth, unsigned int AddressSpace, llvm::Align Alignment, bool * Fast) const
- public bool areInlineCompatible(const llvm::Function * Caller, const llvm::Function * Callee) const
- public bool areTypesABICompatible(const llvm::Function * Caller, const llvm::Function * Callee, const ArrayRef<llvm::Type *> & Types) const
- public bool canHaveNonUndefGlobalInitializerInAddressSpace(unsigned int AS) const
- public bool canMacroFuseCmp() const
- public bool canSaveCmp(llvm::Loop * L, llvm::BranchInst ** BI, llvm::ScalarEvolution * SE, llvm::LoopInfo * LI, llvm::DominatorTree * DT, llvm::AssumptionCache * AC, llvm::TargetLibraryInfo * LibInfo) const
- public bool collectFlatAddressOperands(SmallVectorImpl<int> & OpIndexes, Intrinsic::ID IID) const
- public llvm::PredicationStyle emitGetActiveLaneMask() const
- public bool enableAggressiveInterleaving(bool LoopHasReductions) const
- public bool enableInterleavedAccessVectorization() const
- public bool enableMaskedInterleavedAccessVectorization() const
- public TTI::MemCmpExpansionOptions enableMemCmpExpansion(bool OptSize, bool IsZeroCmp) const
- public bool enableOrderedReductions() const
- public bool enableScalableVectorization() const
- public bool enableWritePrefetching() const
- public bool forceScalarizeMaskedGather(llvm::VectorType * DataType, llvm::Align Alignment) const
- public bool forceScalarizeMaskedScatter(llvm::VectorType * DataType, llvm::Align Alignment) const
- public llvm::InstructionCost getAddressComputationCost(llvm::Type * Tp, llvm::ScalarEvolution *, const llvm::SCEV *) const
- public llvm::InstructionCost getArithmeticInstrCost(unsigned int Opcode, llvm::Type * Ty, TTI::TargetCostKind CostKind, TTI::OperandValueKind Opd1Info, TTI::OperandValueKind Opd2Info, TTI::OperandValueProperties Opd1PropInfo, TTI::OperandValueProperties Opd2PropInfo, ArrayRef<const llvm::Value *> Args, const llvm::Instruction * CxtI = nullptr) const
- public llvm::InstructionCost getArithmeticReductionCost(unsigned int, llvm::VectorType *, Optional<llvm::FastMathFlags> FMF, TTI::TargetCostKind) const
- public unsigned int getAssumedAddrSpace(const llvm::Value * V) const
- public unsigned int getAtomicMemIntrinsicMaxElementSize() const
- public llvm::InstructionCost getCFInstrCost(unsigned int Opcode, TTI::TargetCostKind CostKind, const llvm::Instruction * I = nullptr) const
- public llvm::Optional<unsigned int> getCacheAssociativity(TargetTransformInfo::CacheLevel Level) const
- public unsigned int getCacheLineSize() const
- public llvm::Optional<unsigned int> getCacheSize(TargetTransformInfo::CacheLevel Level) const
- public llvm::InstructionCost getCallInstrCost(llvm::Function * F, llvm::Type * RetTy, ArrayRef<llvm::Type *> Tys, TTI::TargetCostKind CostKind) const
- public llvm::InstructionCost getCastInstrCost(unsigned int Opcode, llvm::Type * Dst, llvm::Type * Src, TTI::CastContextHint CCH, TTI::TargetCostKind CostKind, const llvm::Instruction * I) const
- public llvm::InstructionCost getCmpSelInstrCost(unsigned int Opcode, llvm::Type * ValTy, llvm::Type * CondTy, CmpInst::Predicate VecPred, TTI::TargetCostKind CostKind, const llvm::Instruction * I) const
- protected const llvm::SCEVConstant * getConstantStrideStep(llvm::ScalarEvolution * SE, const llvm::SCEV * Ptr) const
- public llvm::InstructionCost getCostOfKeepingLiveOverCall(ArrayRef<llvm::Type *> Tys) const
- public const llvm::DataLayout & getDataLayout() const
- public unsigned int getEstimatedNumberOfCaseClusters(const llvm::SwitchInst & SI, unsigned int & JTSize, llvm::ProfileSummaryInfo * PSI, llvm::BlockFrequencyInfo * BFI) const
- public llvm::InstructionCost getExtendedAddReductionCost(bool IsMLA, bool IsUnsigned, llvm::Type * ResTy, llvm::VectorType * Ty, TTI::TargetCostKind CostKind) const
- public llvm::InstructionCost getExtractWithExtendCost(unsigned int Opcode, llvm::Type * Dst, llvm::VectorType * VecTy, unsigned int Index) const
- public llvm::InstructionCost getFPOpCost(llvm::Type * Ty) const
- public unsigned int getFlatAddressSpace() const
- public llvm::InstructionCost getGEPCost(llvm::Type * PointeeType, const llvm::Value * Ptr, ArrayRef<const llvm::Value *> Operands, TTI::TargetCostKind CostKind) const
- public unsigned int getGISelRematGlobalCost() const
- public llvm::InstructionCost getGatherScatterOpCost(unsigned int Opcode, llvm::Type * DataTy, const llvm::Value * Ptr, bool VariableMask, llvm::Align Alignment, TTI::TargetCostKind CostKind, const llvm::Instruction * I = nullptr) const
- public int getInlinerVectorBonusPercent() const
- public unsigned int getInliningThresholdMultiplier() const
- public llvm::InstructionCost getIntImmCodeSizeCost(unsigned int Opcode, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty) const
- public llvm::InstructionCost getIntImmCost(const llvm::APInt & Imm, llvm::Type * Ty, TTI::TargetCostKind CostKind) const
- public llvm::InstructionCost getIntImmCostInst(unsigned int Opcode, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty, TTI::TargetCostKind CostKind, llvm::Instruction * Inst = nullptr) const
- public llvm::InstructionCost getIntImmCostIntrin(Intrinsic::ID IID, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty, TTI::TargetCostKind CostKind) const
- public unsigned int getInterleavedMemoryOpCost(unsigned int Opcode, llvm::Type * VecTy, unsigned int Factor, ArrayRef<unsigned int> Indices, llvm::Align Alignment, unsigned int AddressSpace, TTI::TargetCostKind CostKind, bool UseMaskForCond, bool UseMaskForGaps) const
- public llvm::InstructionCost getIntrinsicInstrCost(const llvm::IntrinsicCostAttributes & ICA, TTI::TargetCostKind CostKind) const
- public unsigned int getLoadStoreVecRegBitWidth(unsigned int AddrSpace) const
- public unsigned int getLoadVectorFactor(unsigned int VF, unsigned int LoadSize, unsigned int ChainSizeInBytes, llvm::VectorType * VecTy) const
- public llvm::InstructionCost getMaskedMemoryOpCost(unsigned int Opcode, llvm::Type * Src, llvm::Align Alignment, unsigned int AddressSpace, TTI::TargetCostKind CostKind) const
- public unsigned int getMaxInterleaveFactor(unsigned int VF) const
- public unsigned int getMaxPrefetchIterationsAhead() const
- public Optional<unsigned int> getMaxVScale() const
- public unsigned int getMaximumVF(unsigned int ElemWidth, unsigned int Opcode) const
- public llvm::InstructionCost getMemcpyCost(const llvm::Instruction * I) const
- public llvm::Type * getMemcpyLoopLoweringType(llvm::LLVMContext & Context, llvm::Value * Length, unsigned int SrcAddrSpace, unsigned int DestAddrSpace, unsigned int SrcAlign, unsigned int DestAlign, Optional<uint32_t> AtomicElementSize) const
- public void getMemcpyLoopResidualLoweringType(SmallVectorImpl<llvm::Type *> & OpsOut, llvm::LLVMContext & Context, unsigned int RemainingBytes, unsigned int SrcAddrSpace, unsigned int DestAddrSpace, unsigned int SrcAlign, unsigned int DestAlign, Optional<uint32_t> AtomicCpySize) const
- public llvm::InstructionCost getMemoryOpCost(unsigned int Opcode, llvm::Type * Src, llvm::Align Alignment, unsigned int AddressSpace, TTI::TargetCostKind CostKind, const llvm::Instruction * I) const
- public llvm::InstructionCost getMinMaxReductionCost(llvm::VectorType *, llvm::VectorType *, bool, TTI::TargetCostKind) const
- public unsigned int getMinPrefetchStride(unsigned int NumMemAccesses, unsigned int NumStridedMemAccesses, unsigned int NumPrefetches, bool HasCall) const
- public unsigned int getMinTripCountTailFoldingThreshold() const
- public unsigned int getMinVectorRegisterBitWidth() const
- public llvm::ElementCount getMinimumVF(unsigned int ElemWidth, bool IsScalable) const
- public unsigned int getNumberOfParts(llvm::Type * Tp) const
- public unsigned int getNumberOfRegisters(unsigned int ClassID) const
- public llvm::InstructionCost getOperandsScalarizationOverhead(ArrayRef<const llvm::Value *> Args, ArrayRef<llvm::Type *> Tys) const
- public llvm::Value * getOrCreateResultFromMemIntrinsic(llvm::IntrinsicInst * Inst, llvm::Type * ExpectedType) const
- public void getPeelingPreferences(llvm::Loop *, llvm::ScalarEvolution &, TTI::PeelingPreferences &) const
- public TTI::PopcntSupportKind getPopcntSupport(unsigned int IntTyWidthInBit) const
- public std::pair<const Value *, unsigned int> getPredicatedAddrSpace(const llvm::Value * V) const
- public llvm::BranchProbability getPredictableBranchThreshold() const
- public TTI::AddressingModeKind getPreferredAddressingMode(const llvm::Loop * L, llvm::ScalarEvolution * SE) const
- public unsigned int getPrefetchDistance() const
- public unsigned int getRegUsageForType(llvm::Type * Ty) const
- public llvm::TypeSize getRegisterBitWidth(TargetTransformInfo::RegisterKind K) const
- public unsigned int getRegisterClassForType(bool Vector, llvm::Type * Ty = nullptr) const
- public const char * getRegisterClassName(unsigned int ClassID) const
- public unsigned int getReplicationShuffleCost(llvm::Type * EltTy, int ReplicationFactor, int VF, const llvm::APInt & DemandedDstElts, TTI::TargetCostKind CostKind)
- public llvm::InstructionCost getScalarizationOverhead(llvm::VectorType * Ty, const llvm::APInt & DemandedElts, bool Insert, bool Extract) const
- public llvm::InstructionCost getScalingFactorCost(llvm::Type * Ty, llvm::GlobalValue * BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned int AddrSpace) const
- public llvm::InstructionCost getShuffleCost(TTI::ShuffleKind Kind, llvm::VectorType * Ty, ArrayRef<int> Mask, int Index, llvm::VectorType * SubTp, ArrayRef<const llvm::Value *> Args = None) const
- public unsigned int getStoreMinimumVF(unsigned int VF, llvm::Type *, llvm::Type *) const
- public unsigned int getStoreVectorFactor(unsigned int VF, unsigned int StoreSize, unsigned int ChainSizeInBytes, llvm::VectorType * VecTy) const
- public bool getTgtMemIntrinsic(llvm::IntrinsicInst * Inst, llvm::MemIntrinsicInfo & Info) const
- public void getUnrollingPreferences(llvm::Loop *, llvm::ScalarEvolution &, TTI::UnrollingPreferences &, llvm::OptimizationRemarkEmitter *) const
- public TargetTransformInfo::VPLegalization getVPLegalizationStrategy(const llvm::VPIntrinsic & PI) const
- public llvm::InstructionCost getVPMemoryOpCost(unsigned int Opcode, llvm::Type * Src, llvm::Align Alignment, unsigned int AddressSpace, TTI::TargetCostKind CostKind, const llvm::Instruction * I) const
- public Optional<unsigned int> getVScaleForTuning() const
- public llvm::InstructionCost getVectorInstrCost(unsigned int Opcode, llvm::Type * Val, unsigned int Index) const
- public bool hasActiveVectorLength(unsigned int Opcode, llvm::Type * DataType, llvm::Align Alignment) const
- public bool hasBranchDivergence() const
- public bool hasDivRemOp(llvm::Type * DataType, bool IsSigned) const
- public bool hasVolatileVariant(llvm::Instruction * I, unsigned int AddrSpace) const
- public bool haveFastSqrt(llvm::Type * Ty) const
- public Optional<llvm::Instruction *> instCombineIntrinsic(llvm::InstCombiner & IC, llvm::IntrinsicInst & II) const
- public bool isAlwaysUniform(const llvm::Value * V) const
- protected bool isConstantStridedAccessLessThan(llvm::ScalarEvolution * SE, const llvm::SCEV * Ptr, int64_t MergeDistance) const
- public bool isElementTypeLegalForScalableVector(llvm::Type * Ty) const
- public bool isFCmpOrdCheaperThanFCmpZero(llvm::Type * Ty) const
- public bool isFPVectorizationPotentiallyUnsafe() const
- public bool isHardwareLoopProfitable(llvm::Loop * L, llvm::ScalarEvolution & SE, llvm::AssumptionCache & AC, llvm::TargetLibraryInfo * LibInfo, llvm::HardwareLoopInfo & HWLoopInfo) const
- public bool isIndexedLoadLegal(TTI::MemIndexedMode Mode, llvm::Type * Ty, const llvm::DataLayout & DL) const
- public bool isIndexedStoreLegal(TTI::MemIndexedMode Mode, llvm::Type * Ty, const llvm::DataLayout & DL) const
- public bool isLSRCostLess(const TTI::LSRCost & C1, const TTI::LSRCost & C2) const
- public bool isLegalAddImmediate(int64_t Imm) const
- public bool isLegalAddressingMode(llvm::Type * Ty, llvm::GlobalValue * BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned int AddrSpace, llvm::Instruction * I = nullptr) const
- public bool isLegalAltInstr(llvm::VectorType * VecTy, unsigned int Opcode0, unsigned int Opcode1, const llvm::SmallBitVector & OpcodeMask) const
- public bool isLegalBroadcastLoad(llvm::Type * ElementTy, llvm::ElementCount NumElements) const
- public bool isLegalICmpImmediate(int64_t Imm) const
- public bool isLegalMaskedCompressStore(llvm::Type * DataType) const
- public bool isLegalMaskedExpandLoad(llvm::Type * DataType) const
- public bool isLegalMaskedGather(llvm::Type * DataType, llvm::Align Alignment) const
- public bool isLegalMaskedLoad(llvm::Type * DataType, llvm::Align Alignment) const
- public bool isLegalMaskedScatter(llvm::Type * DataType, llvm::Align Alignment) const
- public bool isLegalMaskedStore(llvm::Type * DataType, llvm::Align Alignment) const
- public bool isLegalNTLoad(llvm::Type * DataType, llvm::Align Alignment) const
- public bool isLegalNTStore(llvm::Type * DataType, llvm::Align Alignment) const
- public bool isLegalToVectorizeLoad(llvm::LoadInst * LI) const
- public bool isLegalToVectorizeLoadChain(unsigned int ChainSizeInBytes, llvm::Align Alignment, unsigned int AddrSpace) const
- public bool isLegalToVectorizeReduction(const llvm::RecurrenceDescriptor & RdxDesc, llvm::ElementCount VF) const
- public bool isLegalToVectorizeStore(llvm::StoreInst * SI) const
- public bool isLegalToVectorizeStoreChain(unsigned int ChainSizeInBytes, llvm::Align Alignment, unsigned int AddrSpace) const
- public bool isLoweredToCall(const llvm::Function * F) const
- public bool isNoopAddrSpaceCast(unsigned int, unsigned int) const
- public bool isNumRegsMajorCostOfLSR() const
- public bool isProfitableLSRChainElement(llvm::Instruction * I) const
- public bool isProfitableToHoist(llvm::Instruction * I) const
- public bool isSourceOfDivergence(const llvm::Value * V) const
- protected bool isStridedAccess(const llvm::SCEV * Ptr) const
- public bool isTruncateFree(llvm::Type * Ty1, llvm::Type * Ty2) const
- public bool isTypeLegal(llvm::Type * Ty) const
- protected unsigned int minRequiredElementSize(const llvm::Value * Val, bool & isSigned) const
- public bool preferInLoopReduction(unsigned int Opcode, llvm::Type * Ty, TTI::ReductionFlags Flags) const
- public bool preferPredicateOverEpilogue(llvm::Loop * L, llvm::LoopInfo * LI, llvm::ScalarEvolution & SE, llvm::AssumptionCache & AC, llvm::TargetLibraryInfo * TLI, llvm::DominatorTree * DT, llvm::LoopVectorizationLegality * LVL) const
- public bool preferPredicatedReductionSelect(unsigned int Opcode, llvm::Type * Ty, TTI::ReductionFlags Flags) const
- public bool prefersVectorizedAddressing() const
- public llvm::Value * rewriteIntrinsicWithAddressSpace(llvm::IntrinsicInst * II, llvm::Value * OldV, llvm::Value * NewV) const
- public bool shouldBuildLookupTables() const
- public bool shouldBuildLookupTablesForConstant(llvm::Constant * C) const
- public bool shouldBuildRelLookupTables() const
- public bool shouldConsiderAddressTypePromotion(const llvm::Instruction & I, bool & AllowPromotionWithoutCommonHeader) const
- public bool shouldExpandReduction(const llvm::IntrinsicInst * II) const
- public bool shouldMaximizeVectorBandwidth(TargetTransformInfo::RegisterKind K) const
- public Optional<llvm::Value *> simplifyDemandedUseBitsIntrinsic(llvm::InstCombiner & IC, llvm::IntrinsicInst & II, llvm::APInt DemandedMask, llvm::KnownBits & Known, bool & KnownBitsComputed) const
- public Optional<llvm::Value *> simplifyDemandedVectorEltsIntrinsic(llvm::InstCombiner & IC, llvm::IntrinsicInst & II, llvm::APInt DemandedElts, llvm::APInt & UndefElts, llvm::APInt & UndefElts2, llvm::APInt & UndefElts3, std::function<void (Instruction *, unsigned int, APInt, APInt &)> SimplifyAndSetOp) const
- public bool supportsEfficientVectorElementLoadStore() const
- public bool supportsScalableVectors() const
- public bool supportsTailCalls() const
- public bool useAA() const
- public bool useColdCCForColdCall(llvm::Function & F) const
- public bool useGPUDivergenceAnalysis() const
Methods
¶bool LSRWithInstrQueries() const
bool LSRWithInstrQueries() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:310
¶TargetTransformInfoImplBase(
const llvm::TargetTransformInfoImplBase& Arg)
TargetTransformInfoImplBase(
const llvm::TargetTransformInfoImplBase& Arg)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:43
Parameters
- const llvm::TargetTransformInfoImplBase& Arg
¶TargetTransformInfoImplBase(
llvm::TargetTransformInfoImplBase&& Arg)
TargetTransformInfoImplBase(
llvm::TargetTransformInfoImplBase&& Arg)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:44
Parameters
¶TargetTransformInfoImplBase(
const llvm::DataLayout& DL)
TargetTransformInfoImplBase(
const llvm::DataLayout& DL)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:39
Parameters
- const llvm::DataLayout& DL
¶unsigned int adjustInliningThreshold(
const llvm::CallBase* CB) const
unsigned int adjustInliningThreshold(
const llvm::CallBase* CB) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:71
Parameters
- const llvm::CallBase* CB
¶bool allowsMisalignedMemoryAccesses(
llvm::LLVMContext& Context,
unsigned int BitWidth,
unsigned int AddressSpace,
llvm::Align Alignment,
bool* Fast) const
bool allowsMisalignedMemoryAccesses(
llvm::LLVMContext& Context,
unsigned int BitWidth,
unsigned int AddressSpace,
llvm::Align Alignment,
bool* Fast) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:360
Parameters
- llvm::LLVMContext& Context
- unsigned int BitWidth
- unsigned int AddressSpace
- llvm::Align Alignment
- bool* Fast
¶bool areInlineCompatible(
const llvm::Function* Caller,
const llvm::Function* Callee) const
bool areInlineCompatible(
const llvm::Function* Caller,
const llvm::Function* Callee) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:731
Parameters
- const llvm::Function* Caller
- const llvm::Function* Callee
¶bool areTypesABICompatible(
const llvm::Function* Caller,
const llvm::Function* Callee,
const ArrayRef<llvm::Type*>& Types) const
bool areTypesABICompatible(
const llvm::Function* Caller,
const llvm::Function* Callee,
const ArrayRef<llvm::Type*>& Types) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:739
Parameters
- const llvm::Function* Caller
- const llvm::Function* Callee
- const ArrayRef<llvm::Type*>& Types
¶bool canHaveNonUndefGlobalInitializerInAddressSpace(
unsigned int AS) const
bool canHaveNonUndefGlobalInitializerInAddressSpace(
unsigned int AS) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:105
Parameters
- unsigned int AS
¶bool canMacroFuseCmp() const
bool canMacroFuseCmp() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:224
¶bool canSaveCmp(
llvm::Loop* L,
llvm::BranchInst** BI,
llvm::ScalarEvolution* SE,
llvm::LoopInfo* LI,
llvm::DominatorTree* DT,
llvm::AssumptionCache* AC,
llvm::TargetLibraryInfo* LibInfo) const
bool canSaveCmp(
llvm::Loop* L,
llvm::BranchInst** BI,
llvm::ScalarEvolution* SE,
llvm::LoopInfo* LI,
llvm::DominatorTree* DT,
llvm::AssumptionCache* AC,
llvm::TargetLibraryInfo* LibInfo) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:226
Parameters
- llvm::Loop* L
- llvm::BranchInst** BI
- llvm::ScalarEvolution* SE
- llvm::LoopInfo* LI
- llvm::DominatorTree* DT
- llvm::AssumptionCache* AC
- llvm::TargetLibraryInfo* LibInfo
¶bool collectFlatAddressOperands(
SmallVectorImpl<int>& OpIndexes,
Intrinsic::ID IID) const
bool collectFlatAddressOperands(
SmallVectorImpl<int>& OpIndexes,
Intrinsic::ID IID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:99
Parameters
- SmallVectorImpl<int>& OpIndexes
- Intrinsic::ID IID
¶llvm::PredicationStyle emitGetActiveLaneMask()
const
llvm::PredicationStyle emitGetActiveLaneMask()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:170
¶bool enableAggressiveInterleaving(
bool LoopHasReductions) const
bool enableAggressiveInterleaving(
bool LoopHasReductions) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:345
Parameters
- bool LoopHasReductions
¶bool enableInterleavedAccessVectorization() const
bool enableInterleavedAccessVectorization() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:354
¶bool enableMaskedInterleavedAccessVectorization()
const
bool enableMaskedInterleavedAccessVectorization()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:356
¶TTI::MemCmpExpansionOptions enableMemCmpExpansion(
bool OptSize,
bool IsZeroCmp) const
TTI::MemCmpExpansionOptions enableMemCmpExpansion(
bool OptSize,
bool IsZeroCmp) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:349
Parameters
- bool OptSize
- bool IsZeroCmp
¶bool enableOrderedReductions() const
bool enableOrderedReductions() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:289
¶bool enableScalableVectorization() const
bool enableScalableVectorization() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:810
¶bool enableWritePrefetching() const
bool enableWritePrefetching() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:477
¶bool forceScalarizeMaskedGather(
llvm::VectorType* DataType,
llvm::Align Alignment) const
bool forceScalarizeMaskedGather(
llvm::VectorType* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:271
Parameters
- llvm::VectorType* DataType
- llvm::Align Alignment
¶bool forceScalarizeMaskedScatter(
llvm::VectorType* DataType,
llvm::Align Alignment) const
bool forceScalarizeMaskedScatter(
llvm::VectorType* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:275
Parameters
- llvm::VectorType* DataType
- llvm::Align Alignment
¶llvm::InstructionCost getAddressComputationCost(
llvm::Type* Tp,
llvm::ScalarEvolution*,
const llvm::SCEV*) const
llvm::InstructionCost getAddressComputationCost(
llvm::Type* Tp,
llvm::ScalarEvolution*,
const llvm::SCEV*) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:667
Parameters
- llvm::Type* Tp
- llvm::ScalarEvolution*
- const llvm::SCEV*
¶llvm::InstructionCost getArithmeticInstrCost(
unsigned int Opcode,
llvm::Type* Ty,
TTI::TargetCostKind CostKind,
TTI::OperandValueKind Opd1Info,
TTI::OperandValueKind Opd2Info,
TTI::OperandValueProperties Opd1PropInfo,
TTI::OperandValueProperties Opd2PropInfo,
ArrayRef<const llvm::Value*> Args,
const llvm::Instruction* CxtI = nullptr) const
llvm::InstructionCost getArithmeticInstrCost(
unsigned int Opcode,
llvm::Type* Ty,
TTI::TargetCostKind CostKind,
TTI::OperandValueKind Opd1Info,
TTI::OperandValueKind Opd2Info,
TTI::OperandValueProperties Opd1PropInfo,
TTI::OperandValueProperties Opd2PropInfo,
ArrayRef<const llvm::Value*> Args,
const llvm::Instruction* CxtI = nullptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:481
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- TTI::TargetCostKind CostKind
- TTI::OperandValueKind Opd1Info
- TTI::OperandValueKind Opd2Info
- TTI::OperandValueProperties Opd1PropInfo
- TTI::OperandValueProperties Opd2PropInfo
- ArrayRef<const llvm::Value*> Args
- const llvm::Instruction* CxtI = nullptr
¶llvm::InstructionCost getArithmeticReductionCost(
unsigned int,
llvm::VectorType*,
Optional<llvm::FastMathFlags> FMF,
TTI::TargetCostKind) const
llvm::InstructionCost getArithmeticReductionCost(
unsigned int,
llvm::VectorType*,
Optional<llvm::FastMathFlags> FMF,
TTI::TargetCostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:672
Parameters
- unsigned int
- llvm::VectorType*
- Optional<llvm::FastMathFlags> FMF
- TTI::TargetCostKind
¶unsigned int getAssumedAddrSpace(
const llvm::Value* V) const
unsigned int getAssumedAddrSpace(
const llvm::Value* V) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:109
Parameters
- const llvm::Value* V
¶unsigned int getAtomicMemIntrinsicMaxElementSize()
const
unsigned int getAtomicMemIntrinsicMaxElementSize()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:698
¶llvm::InstructionCost getCFInstrCost(
unsigned int Opcode,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I = nullptr) const
llvm::InstructionCost getCFInstrCost(
unsigned int Opcode,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I = nullptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:555
Parameters
- unsigned int Opcode
- TTI::TargetCostKind CostKind
- const llvm::Instruction* I = nullptr
¶llvm::Optional<unsigned int>
getCacheAssociativity(
TargetTransformInfo::CacheLevel Level) const
llvm::Optional<unsigned int>
getCacheAssociativity(
TargetTransformInfo::CacheLevel Level) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:459
Parameters
- TargetTransformInfo::CacheLevel Level
¶unsigned int getCacheLineSize() const
unsigned int getCacheLineSize() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:445
¶llvm::Optional<unsigned int> getCacheSize(
TargetTransformInfo::CacheLevel Level) const
llvm::Optional<unsigned int> getCacheSize(
TargetTransformInfo::CacheLevel Level) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:448
Parameters
- TargetTransformInfo::CacheLevel Level
¶llvm::InstructionCost getCallInstrCost(
llvm::Function* F,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys,
TTI::TargetCostKind CostKind) const
llvm::InstructionCost getCallInstrCost(
llvm::Function* F,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys,
TTI::TargetCostKind CostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:658
Parameters
- llvm::Function* F
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> Tys
- TTI::TargetCostKind CostKind
¶llvm::InstructionCost getCastInstrCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::Type* Src,
TTI::CastContextHint CCH,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I) const
llvm::InstructionCost getCastInstrCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::Type* Src,
TTI::CastContextHint CCH,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:511
Parameters
- unsigned int Opcode
- llvm::Type* Dst
- llvm::Type* Src
- TTI::CastContextHint CCH
- TTI::TargetCostKind CostKind
- const llvm::Instruction* I
¶llvm::InstructionCost getCmpSelInstrCost(
unsigned int Opcode,
llvm::Type* ValTy,
llvm::Type* CondTy,
CmpInst::Predicate VecPred,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I) const
llvm::InstructionCost getCmpSelInstrCost(
unsigned int Opcode,
llvm::Type* ValTy,
llvm::Type* CondTy,
CmpInst::Predicate VecPred,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:564
Parameters
- unsigned int Opcode
- llvm::Type* ValTy
- llvm::Type* CondTy
- CmpInst::Predicate VecPred
- TTI::TargetCostKind CostKind
- const llvm::Instruction* I
¶const llvm::SCEVConstant* getConstantStrideStep(
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr) const
const llvm::SCEVConstant* getConstantStrideStep(
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:885
Parameters
- llvm::ScalarEvolution* SE
- const llvm::SCEV* Ptr
¶llvm::InstructionCost
getCostOfKeepingLiveOverCall(
ArrayRef<llvm::Type*> Tys) const
llvm::InstructionCost
getCostOfKeepingLiveOverCall(
ArrayRef<llvm::Type*> Tys) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:690
Parameters
- ArrayRef<llvm::Type*> Tys
¶const llvm::DataLayout& getDataLayout() const
const llvm::DataLayout& getDataLayout() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:46
¶unsigned int getEstimatedNumberOfCaseClusters(
const llvm::SwitchInst& SI,
unsigned int& JTSize,
llvm::ProfileSummaryInfo* PSI,
llvm::BlockFrequencyInfo* BFI) const
unsigned int getEstimatedNumberOfCaseClusters(
const llvm::SwitchInst& SI,
unsigned int& JTSize,
llvm::ProfileSummaryInfo* PSI,
llvm::BlockFrequencyInfo* BFI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:60
Parameters
- const llvm::SwitchInst& SI
- unsigned int& JTSize
- llvm::ProfileSummaryInfo* PSI
- llvm::BlockFrequencyInfo* BFI
¶llvm::InstructionCost getExtendedAddReductionCost(
bool IsMLA,
bool IsUnsigned,
llvm::Type* ResTy,
llvm::VectorType* Ty,
TTI::TargetCostKind CostKind) const
llvm::InstructionCost getExtendedAddReductionCost(
bool IsMLA,
bool IsUnsigned,
llvm::Type* ResTy,
llvm::VectorType* Ty,
TTI::TargetCostKind CostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:684
Parameters
- bool IsMLA
- bool IsUnsigned
- llvm::Type* ResTy
- llvm::VectorType* Ty
- TTI::TargetCostKind CostKind
¶llvm::InstructionCost getExtractWithExtendCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::VectorType* VecTy,
unsigned int Index) const
llvm::InstructionCost getExtractWithExtendCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::VectorType* VecTy,
unsigned int Index) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:549
Parameters
- unsigned int Opcode
- llvm::Type* Dst
- llvm::VectorType* VecTy
- unsigned int Index
¶llvm::InstructionCost getFPOpCost(
llvm::Type* Ty) const
llvm::InstructionCost getFPOpCost(
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:374
Parameters
- llvm::Type* Ty
¶unsigned int getFlatAddressSpace() const
unsigned int getFlatAddressSpace() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:97
¶llvm::InstructionCost getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands,
TTI::TargetCostKind CostKind) const
llvm::InstructionCost getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands,
TTI::TargetCostKind CostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:48
Parameters
- llvm::Type* PointeeType
- const llvm::Value* Ptr
- ArrayRef<const llvm::Value*> Operands
- TTI::TargetCostKind CostKind
¶unsigned int getGISelRematGlobalCost() const
unsigned int getGISelRematGlobalCost() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:804
¶llvm::InstructionCost getGatherScatterOpCost(
unsigned int Opcode,
llvm::Type* DataTy,
const llvm::Value* Ptr,
bool VariableMask,
llvm::Align Alignment,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I = nullptr) const
llvm::InstructionCost getGatherScatterOpCost(
unsigned int Opcode,
llvm::Type* DataTy,
const llvm::Value* Ptr,
bool VariableMask,
llvm::Align Alignment,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I = nullptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:602
Parameters
- unsigned int Opcode
- llvm::Type* DataTy
- const llvm::Value* Ptr
- bool VariableMask
- llvm::Align Alignment
- TTI::TargetCostKind CostKind
- const llvm::Instruction* I = nullptr
¶int getInlinerVectorBonusPercent() const
int getInlinerVectorBonusPercent() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:73
¶unsigned int getInliningThresholdMultiplier()
const
unsigned int getInliningThresholdMultiplier()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:70
¶llvm::InstructionCost getIntImmCodeSizeCost(
unsigned int Opcode,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty) const
llvm::InstructionCost getIntImmCodeSizeCost(
unsigned int Opcode,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:378
Parameters
- unsigned int Opcode
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶llvm::InstructionCost getIntImmCost(
const llvm::APInt& Imm,
llvm::Type* Ty,
TTI::TargetCostKind CostKind) const
llvm::InstructionCost getIntImmCost(
const llvm::APInt& Imm,
llvm::Type* Ty,
TTI::TargetCostKind CostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:383
Parameters
- const llvm::APInt& Imm
- llvm::Type* Ty
- TTI::TargetCostKind CostKind
¶llvm::InstructionCost getIntImmCostInst(
unsigned int Opcode,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty,
TTI::TargetCostKind CostKind,
llvm::Instruction* Inst = nullptr) const
llvm::InstructionCost getIntImmCostInst(
unsigned int Opcode,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty,
TTI::TargetCostKind CostKind,
llvm::Instruction* Inst = nullptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:388
Parameters
- unsigned int Opcode
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
- TTI::TargetCostKind CostKind
- llvm::Instruction* Inst = nullptr
¶llvm::InstructionCost getIntImmCostIntrin(
Intrinsic::ID IID,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty,
TTI::TargetCostKind CostKind) const
llvm::InstructionCost getIntImmCostIntrin(
Intrinsic::ID IID,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty,
TTI::TargetCostKind CostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:395
Parameters
- Intrinsic::ID IID
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
- TTI::TargetCostKind CostKind
¶unsigned int getInterleavedMemoryOpCost(
unsigned int Opcode,
llvm::Type* VecTy,
unsigned int Factor,
ArrayRef<unsigned int> Indices,
llvm::Align Alignment,
unsigned int AddressSpace,
TTI::TargetCostKind CostKind,
bool UseMaskForCond,
bool UseMaskForGaps) const
unsigned int getInterleavedMemoryOpCost(
unsigned int Opcode,
llvm::Type* VecTy,
unsigned int Factor,
ArrayRef<unsigned int> Indices,
llvm::Align Alignment,
unsigned int AddressSpace,
TTI::TargetCostKind CostKind,
bool UseMaskForCond,
bool UseMaskForGaps) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:610
Parameters
- unsigned int Opcode
- llvm::Type* VecTy
- unsigned int Factor
- ArrayRef<unsigned int> Indices
- llvm::Align Alignment
- unsigned int AddressSpace
- TTI::TargetCostKind CostKind
- bool UseMaskForCond
- bool UseMaskForGaps
¶llvm::InstructionCost getIntrinsicInstrCost(
const llvm::IntrinsicCostAttributes& ICA,
TTI::TargetCostKind CostKind) const
llvm::InstructionCost getIntrinsicInstrCost(
const llvm::IntrinsicCostAttributes& ICA,
TTI::TargetCostKind CostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:617
Parameters
- const llvm::IntrinsicCostAttributes& ICA
- TTI::TargetCostKind CostKind
¶unsigned int getLoadStoreVecRegBitWidth(
unsigned int AddrSpace) const
unsigned int getLoadStoreVecRegBitWidth(
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:757
Parameters
- unsigned int AddrSpace
¶unsigned int getLoadVectorFactor(
unsigned int VF,
unsigned int LoadSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
unsigned int getLoadVectorFactor(
unsigned int VF,
unsigned int LoadSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:780
Parameters
- unsigned int VF
- unsigned int LoadSize
- unsigned int ChainSizeInBytes
- llvm::VectorType* VecTy
¶llvm::InstructionCost getMaskedMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::Align Alignment,
unsigned int AddressSpace,
TTI::TargetCostKind CostKind) const
llvm::InstructionCost getMaskedMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::Align Alignment,
unsigned int AddressSpace,
TTI::TargetCostKind CostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:596
Parameters
- unsigned int Opcode
- llvm::Type* Src
- llvm::Align Alignment
- unsigned int AddressSpace
- TTI::TargetCostKind CostKind
¶unsigned int getMaxInterleaveFactor(
unsigned int VF) const
unsigned int getMaxInterleaveFactor(
unsigned int VF) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:479
Parameters
- unsigned int VF
¶unsigned int getMaxPrefetchIterationsAhead() const
unsigned int getMaxPrefetchIterationsAhead() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:476
¶Optional<unsigned int> getMaxVScale() const
Optional<unsigned int> getMaxVScale() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:424
¶unsigned int getMaximumVF(
unsigned int ElemWidth,
unsigned int Opcode) const
unsigned int getMaximumVF(
unsigned int ElemWidth,
unsigned int Opcode) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:436
Parameters
- unsigned int ElemWidth
- unsigned int Opcode
¶llvm::InstructionCost getMemcpyCost(
const llvm::Instruction* I) const
llvm::InstructionCost getMemcpyCost(
const llvm::Instruction* I) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:75
Parameters
- const llvm::Instruction* I
¶llvm::Type* getMemcpyLoopLoweringType(
llvm::LLVMContext& Context,
llvm::Value* Length,
unsigned int SrcAddrSpace,
unsigned int DestAddrSpace,
unsigned int SrcAlign,
unsigned int DestAlign,
Optional<uint32_t> AtomicElementSize) const
llvm::Type* getMemcpyLoopLoweringType(
llvm::LLVMContext& Context,
llvm::Value* Length,
unsigned int SrcAddrSpace,
unsigned int DestAddrSpace,
unsigned int SrcAlign,
unsigned int DestAlign,
Optional<uint32_t> AtomicElementSize) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:712
Parameters
- llvm::LLVMContext& Context
- llvm::Value* Length
- unsigned int SrcAddrSpace
- unsigned int DestAddrSpace
- unsigned int SrcAlign
- unsigned int DestAlign
- Optional<uint32_t> AtomicElementSize
¶void getMemcpyLoopResidualLoweringType(
SmallVectorImpl<llvm::Type*>& OpsOut,
llvm::LLVMContext& Context,
unsigned int RemainingBytes,
unsigned int SrcAddrSpace,
unsigned int DestAddrSpace,
unsigned int SrcAlign,
unsigned int DestAlign,
Optional<uint32_t> AtomicCpySize) const
void getMemcpyLoopResidualLoweringType(
SmallVectorImpl<llvm::Type*>& OpsOut,
llvm::LLVMContext& Context,
unsigned int RemainingBytes,
unsigned int SrcAddrSpace,
unsigned int DestAddrSpace,
unsigned int SrcAlign,
unsigned int DestAlign,
Optional<uint32_t> AtomicCpySize) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:720
Parameters
- SmallVectorImpl<llvm::Type*>& OpsOut
- llvm::LLVMContext& Context
- unsigned int RemainingBytes
- unsigned int SrcAddrSpace
- unsigned int DestAddrSpace
- unsigned int SrcAlign
- unsigned int DestAlign
- Optional<uint32_t> AtomicCpySize
¶llvm::InstructionCost getMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::Align Alignment,
unsigned int AddressSpace,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I) const
llvm::InstructionCost getMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::Align Alignment,
unsigned int AddressSpace,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:582
Parameters
- unsigned int Opcode
- llvm::Type* Src
- llvm::Align Alignment
- unsigned int AddressSpace
- TTI::TargetCostKind CostKind
- const llvm::Instruction* I
¶llvm::InstructionCost getMinMaxReductionCost(
llvm::VectorType*,
llvm::VectorType*,
bool,
TTI::TargetCostKind) const
llvm::InstructionCost getMinMaxReductionCost(
llvm::VectorType*,
llvm::VectorType*,
bool,
TTI::TargetCostKind) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:678
Parameters
- llvm::VectorType*
- llvm::VectorType*
- bool
- TTI::TargetCostKind
¶unsigned int getMinPrefetchStride(
unsigned int NumMemAccesses,
unsigned int NumStridedMemAccesses,
unsigned int NumPrefetches,
bool HasCall) const
unsigned int getMinPrefetchStride(
unsigned int NumMemAccesses,
unsigned int NumStridedMemAccesses,
unsigned int NumPrefetches,
bool HasCall) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:471
Parameters
- unsigned int NumMemAccesses
- unsigned int NumStridedMemAccesses
- unsigned int NumPrefetches
- bool HasCall
¶unsigned int getMinTripCountTailFoldingThreshold()
const
unsigned int getMinTripCountTailFoldingThreshold()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:806
¶unsigned int getMinVectorRegisterBitWidth() const
unsigned int getMinVectorRegisterBitWidth() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:422
¶llvm::ElementCount getMinimumVF(
unsigned int ElemWidth,
bool IsScalable) const
llvm::ElementCount getMinimumVF(
unsigned int ElemWidth,
bool IsScalable) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:432
Parameters
- unsigned int ElemWidth
- bool IsScalable
¶unsigned int getNumberOfParts(
llvm::Type* Tp) const
unsigned int getNumberOfParts(
llvm::Type* Tp) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:665
Parameters
- llvm::Type* Tp
¶unsigned int getNumberOfRegisters(
unsigned int ClassID) const
unsigned int getNumberOfRegisters(
unsigned int ClassID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:401
Parameters
- unsigned int ClassID
¶llvm::InstructionCost
getOperandsScalarizationOverhead(
ArrayRef<const llvm::Value*> Args,
ArrayRef<llvm::Type*> Tys) const
llvm::InstructionCost
getOperandsScalarizationOverhead(
ArrayRef<const llvm::Value*> Args,
ArrayRef<llvm::Type*> Tys) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:336
Parameters
¶llvm::Value* getOrCreateResultFromMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::Type* ExpectedType) const
llvm::Value* getOrCreateResultFromMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::Type* ExpectedType) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:707
Parameters
- llvm::IntrinsicInst* Inst
- llvm::Type* ExpectedType
¶void getPeelingPreferences(
llvm::Loop*,
llvm::ScalarEvolution&,
TTI::PeelingPreferences&) const
void getPeelingPreferences(
llvm::Loop*,
llvm::ScalarEvolution&,
TTI::PeelingPreferences&) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:198
Parameters
¶TTI::PopcntSupportKind getPopcntSupport(
unsigned int IntTyWidthInBit) const
TTI::PopcntSupportKind getPopcntSupport(
unsigned int IntTyWidthInBit) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:366
Parameters
- unsigned int IntTyWidthInBit
¶std::pair<const Value*, unsigned int>
getPredicatedAddrSpace(const llvm::Value* V) const
std::pair<const Value*, unsigned int>
getPredicatedAddrSpace(const llvm::Value* V) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:112
Parameters
- const llvm::Value* V
¶llvm::BranchProbability
getPredictableBranchThreshold() const
llvm::BranchProbability
getPredictableBranchThreshold() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:85
¶TTI::AddressingModeKind
getPreferredAddressingMode(
const llvm::Loop* L,
llvm::ScalarEvolution* SE) const
TTI::AddressingModeKind
getPreferredAddressingMode(
const llvm::Loop* L,
llvm::ScalarEvolution* SE) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:233
Parameters
- const llvm::Loop* L
- llvm::ScalarEvolution* SE
¶unsigned int getPrefetchDistance() const
unsigned int getPrefetchDistance() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:470
¶unsigned int getRegUsageForType(
llvm::Type* Ty) const
unsigned int getRegUsageForType(
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:320
Parameters
- llvm::Type* Ty
¶llvm::TypeSize getRegisterBitWidth(
TargetTransformInfo::RegisterKind K) const
llvm::TypeSize getRegisterBitWidth(
TargetTransformInfo::RegisterKind K) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:418
Parameters
- TargetTransformInfo::RegisterKind K
¶unsigned int getRegisterClassForType(
bool Vector,
llvm::Type* Ty = nullptr) const
unsigned int getRegisterClassForType(
bool Vector,
llvm::Type* Ty = nullptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:403
Parameters
- bool Vector
- llvm::Type* Ty = nullptr
¶const char* getRegisterClassName(
unsigned int ClassID) const
const char* getRegisterClassName(
unsigned int ClassID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:407
Parameters
- unsigned int ClassID
¶unsigned int getReplicationShuffleCost(
llvm::Type* EltTy,
int ReplicationFactor,
int VF,
const llvm::APInt& DemandedDstElts,
TTI::TargetCostKind CostKind)
unsigned int getReplicationShuffleCost(
llvm::Type* EltTy,
int ReplicationFactor,
int VF,
const llvm::APInt& DemandedDstElts,
TTI::TargetCostKind CostKind)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:576
Parameters
- llvm::Type* EltTy
- int ReplicationFactor
- int VF
- const llvm::APInt& DemandedDstElts
- TTI::TargetCostKind CostKind
¶llvm::InstructionCost getScalarizationOverhead(
llvm::VectorType* Ty,
const llvm::APInt& DemandedElts,
bool Insert,
bool Extract) const
llvm::InstructionCost getScalarizationOverhead(
llvm::VectorType* Ty,
const llvm::APInt& DemandedElts,
bool Insert,
bool Extract) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:330
Parameters
- llvm::VectorType* Ty
- const llvm::APInt& DemandedElts
- bool Insert
- bool Extract
¶llvm::InstructionCost getScalingFactorCost(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace) const
llvm::InstructionCost getScalingFactorCost(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:299
Parameters
- llvm::Type* Ty
- llvm::GlobalValue* BaseGV
- int64_t BaseOffset
- bool HasBaseReg
- int64_t Scale
- unsigned int AddrSpace
¶llvm::InstructionCost getShuffleCost(
TTI::ShuffleKind Kind,
llvm::VectorType* Ty,
ArrayRef<int> Mask,
int Index,
llvm::VectorType* SubTp,
ArrayRef<const llvm::Value*> Args =
None) const
llvm::InstructionCost getShuffleCost(
TTI::ShuffleKind Kind,
llvm::VectorType* Ty,
ArrayRef<int> Mask,
int Index,
llvm::VectorType* SubTp,
ArrayRef<const llvm::Value*> Args =
None) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:504
Parameters
- TTI::ShuffleKind Kind
- llvm::VectorType* Ty
- ArrayRef<int> Mask
- int Index
- llvm::VectorType* SubTp
- ArrayRef<const llvm::Value*> Args = None
¶unsigned int getStoreMinimumVF(unsigned int VF,
llvm::Type*,
llvm::Type*) const
unsigned int getStoreMinimumVF(unsigned int VF,
llvm::Type*,
llvm::Type*) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:437
Parameters
- unsigned int VF
- llvm::Type*
- llvm::Type*
¶unsigned int getStoreVectorFactor(
unsigned int VF,
unsigned int StoreSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
unsigned int getStoreVectorFactor(
unsigned int VF,
unsigned int StoreSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:786
Parameters
- unsigned int VF
- unsigned int StoreSize
- unsigned int ChainSizeInBytes
- llvm::VectorType* VecTy
¶bool getTgtMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::MemIntrinsicInfo& Info) const
bool getTgtMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::MemIntrinsicInfo& Info) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:694
Parameters
- llvm::IntrinsicInst* Inst
- llvm::MemIntrinsicInfo& Info
¶void getUnrollingPreferences(
llvm::Loop*,
llvm::ScalarEvolution&,
TTI::UnrollingPreferences&,
llvm::OptimizationRemarkEmitter*) const
void getUnrollingPreferences(
llvm::Loop*,
llvm::ScalarEvolution&,
TTI::UnrollingPreferences&,
llvm::OptimizationRemarkEmitter*) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:194
Parameters
¶TargetTransformInfo::VPLegalization
getVPLegalizationStrategy(
const llvm::VPIntrinsic& PI) const
TargetTransformInfo::VPLegalization
getVPLegalizationStrategy(
const llvm::VPIntrinsic& PI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:818
Parameters
- const llvm::VPIntrinsic& PI
¶llvm::InstructionCost getVPMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::Align Alignment,
unsigned int AddressSpace,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I) const
llvm::InstructionCost getVPMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::Align Alignment,
unsigned int AddressSpace,
TTI::TargetCostKind CostKind,
const llvm::Instruction* I) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:589
Parameters
- unsigned int Opcode
- llvm::Type* Src
- llvm::Align Alignment
- unsigned int AddressSpace
- TTI::TargetCostKind CostKind
- const llvm::Instruction* I
¶Optional<unsigned int> getVScaleForTuning() const
Optional<unsigned int> getVScaleForTuning() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:425
¶llvm::InstructionCost getVectorInstrCost(
unsigned int Opcode,
llvm::Type* Val,
unsigned int Index) const
llvm::InstructionCost getVectorInstrCost(
unsigned int Opcode,
llvm::Type* Val,
unsigned int Index) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:571
Parameters
- unsigned int Opcode
- llvm::Type* Val
- unsigned int Index
¶bool hasActiveVectorLength(
unsigned int Opcode,
llvm::Type* DataType,
llvm::Align Alignment) const
bool hasActiveVectorLength(
unsigned int Opcode,
llvm::Type* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:812
Parameters
- unsigned int Opcode
- llvm::Type* DataType
- llvm::Align Alignment
¶bool hasBranchDivergence() const
bool hasBranchDivergence() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:89
¶bool hasDivRemOp(llvm::Type* DataType,
bool IsSigned) const
bool hasDivRemOp(llvm::Type* DataType,
bool IsSigned) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:291
Parameters
- llvm::Type* DataType
- bool IsSigned
¶bool hasVolatileVariant(
llvm::Instruction* I,
unsigned int AddrSpace) const
bool hasVolatileVariant(
llvm::Instruction* I,
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:293
Parameters
- llvm::Instruction* I
- unsigned int AddrSpace
¶bool haveFastSqrt(llvm::Type* Ty) const
bool haveFastSqrt(llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:370
Parameters
- llvm::Type* Ty
¶Optional<llvm::Instruction*> instCombineIntrinsic(
llvm::InstCombiner& IC,
llvm::IntrinsicInst& II) const
Optional<llvm::Instruction*> instCombineIntrinsic(
llvm::InstCombiner& IC,
llvm::IntrinsicInst& II) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:174
Parameters
¶bool isAlwaysUniform(const llvm::Value* V) const
bool isAlwaysUniform(const llvm::Value* V) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:95
Parameters
- const llvm::Value* V
¶bool isConstantStridedAccessLessThan(
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr,
int64_t MergeDistance) const
bool isConstantStridedAccessLessThan(
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr,
int64_t MergeDistance) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:893
Parameters
- llvm::ScalarEvolution* SE
- const llvm::SCEV* Ptr
- int64_t MergeDistance
¶bool isElementTypeLegalForScalableVector(
llvm::Type* Ty) const
bool isElementTypeLegalForScalableVector(
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:778
Parameters
- llvm::Type* Ty
¶bool isFCmpOrdCheaperThanFCmpZero(
llvm::Type* Ty) const
bool isFCmpOrdCheaperThanFCmpZero(
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:372
Parameters
- llvm::Type* Ty
¶bool isFPVectorizationPotentiallyUnsafe() const
bool isFPVectorizationPotentiallyUnsafe() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:358
¶bool isHardwareLoopProfitable(
llvm::Loop* L,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* LibInfo,
llvm::HardwareLoopInfo& HWLoopInfo) const
bool isHardwareLoopProfitable(
llvm::Loop* L,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* LibInfo,
llvm::HardwareLoopInfo& HWLoopInfo) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:157
Parameters
- llvm::Loop* L
- llvm::ScalarEvolution& SE
- llvm::AssumptionCache& AC
- llvm::TargetLibraryInfo* LibInfo
- llvm::HardwareLoopInfo& HWLoopInfo
¶bool isIndexedLoadLegal(
TTI::MemIndexedMode Mode,
llvm::Type* Ty,
const llvm::DataLayout& DL) const
bool isIndexedLoadLegal(
TTI::MemIndexedMode Mode,
llvm::Type* Ty,
const llvm::DataLayout& DL) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:747
Parameters
- TTI::MemIndexedMode Mode
- llvm::Type* Ty
- const llvm::DataLayout& DL
¶bool isIndexedStoreLegal(
TTI::MemIndexedMode Mode,
llvm::Type* Ty,
const llvm::DataLayout& DL) const
bool isIndexedStoreLegal(
TTI::MemIndexedMode Mode,
llvm::Type* Ty,
const llvm::DataLayout& DL) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:752
Parameters
- TTI::MemIndexedMode Mode
- llvm::Type* Ty
- const llvm::DataLayout& DL
¶bool isLSRCostLess(const TTI::LSRCost& C1,
const TTI::LSRCost& C2) const
bool isLSRCostLess(const TTI::LSRCost& C1,
const TTI::LSRCost& C2) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:213
Parameters
- const TTI::LSRCost& C1
- const TTI::LSRCost& C2
¶bool isLegalAddImmediate(int64_t Imm) const
bool isLegalAddImmediate(int64_t Imm) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:201
Parameters
- int64_t Imm
¶bool isLegalAddressingMode(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace,
llvm::Instruction* I = nullptr) const
bool isLegalAddressingMode(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace,
llvm::Instruction* I = nullptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:205
Parameters
- llvm::Type* Ty
- llvm::GlobalValue* BaseGV
- int64_t BaseOffset
- bool HasBaseReg
- int64_t Scale
- unsigned int AddrSpace
- llvm::Instruction* I = nullptr
¶bool isLegalAltInstr(
llvm::VectorType* VecTy,
unsigned int Opcode0,
unsigned int Opcode1,
const llvm::SmallBitVector& OpcodeMask) const
bool isLegalAltInstr(
llvm::VectorType* VecTy,
unsigned int Opcode0,
unsigned int Opcode1,
const llvm::SmallBitVector& OpcodeMask) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:282
Parameters
- llvm::VectorType* VecTy
- unsigned int Opcode0
- unsigned int Opcode1
- const llvm::SmallBitVector& OpcodeMask
¶bool isLegalBroadcastLoad(
llvm::Type* ElementTy,
llvm::ElementCount NumElements) const
bool isLegalBroadcastLoad(
llvm::Type* ElementTy,
llvm::ElementCount NumElements) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:259
Parameters
- llvm::Type* ElementTy
- llvm::ElementCount NumElements
¶bool isLegalICmpImmediate(int64_t Imm) const
bool isLegalICmpImmediate(int64_t Imm) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:203
Parameters
- int64_t Imm
¶bool isLegalMaskedCompressStore(
llvm::Type* DataType) const
bool isLegalMaskedCompressStore(
llvm::Type* DataType) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:280
Parameters
- llvm::Type* DataType
¶bool isLegalMaskedExpandLoad(
llvm::Type* DataType) const
bool isLegalMaskedExpandLoad(
llvm::Type* DataType) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:287
Parameters
- llvm::Type* DataType
¶bool isLegalMaskedGather(
llvm::Type* DataType,
llvm::Align Alignment) const
bool isLegalMaskedGather(
llvm::Type* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:267
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶bool isLegalMaskedLoad(
llvm::Type* DataType,
llvm::Align Alignment) const
bool isLegalMaskedLoad(
llvm::Type* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:241
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶bool isLegalMaskedScatter(
llvm::Type* DataType,
llvm::Align Alignment) const
bool isLegalMaskedScatter(
llvm::Type* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:263
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶bool isLegalMaskedStore(
llvm::Type* DataType,
llvm::Align Alignment) const
bool isLegalMaskedStore(
llvm::Type* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:237
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶bool isLegalNTLoad(llvm::Type* DataType,
llvm::Align Alignment) const
bool isLegalNTLoad(llvm::Type* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:252
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶bool isLegalNTStore(llvm::Type* DataType,
llvm::Align Alignment) const
bool isLegalNTStore(llvm::Type* DataType,
llvm::Align Alignment) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:245
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶bool isLegalToVectorizeLoad(
llvm::LoadInst* LI) const
bool isLegalToVectorizeLoad(
llvm::LoadInst* LI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:759
Parameters
- llvm::LoadInst* LI
¶bool isLegalToVectorizeLoadChain(
unsigned int ChainSizeInBytes,
llvm::Align Alignment,
unsigned int AddrSpace) const
bool isLegalToVectorizeLoadChain(
unsigned int ChainSizeInBytes,
llvm::Align Alignment,
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:763
Parameters
- unsigned int ChainSizeInBytes
- llvm::Align Alignment
- unsigned int AddrSpace
¶bool isLegalToVectorizeReduction(
const llvm::RecurrenceDescriptor& RdxDesc,
llvm::ElementCount VF) const
bool isLegalToVectorizeReduction(
const llvm::RecurrenceDescriptor& RdxDesc,
llvm::ElementCount VF) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:773
Parameters
- const llvm::RecurrenceDescriptor& RdxDesc
- llvm::ElementCount VF
¶bool isLegalToVectorizeStore(
llvm::StoreInst* SI) const
bool isLegalToVectorizeStore(
llvm::StoreInst* SI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:761
Parameters
- llvm::StoreInst* SI
¶bool isLegalToVectorizeStoreChain(
unsigned int ChainSizeInBytes,
llvm::Align Alignment,
unsigned int AddrSpace) const
bool isLegalToVectorizeStoreChain(
unsigned int ChainSizeInBytes,
llvm::Align Alignment,
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:768
Parameters
- unsigned int ChainSizeInBytes
- llvm::Align Alignment
- unsigned int AddrSpace
¶bool isLoweredToCall(
const llvm::Function* F) const
bool isLoweredToCall(
const llvm::Function* F) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:121
Parameters
- const llvm::Function* F
¶bool isNoopAddrSpaceCast(unsigned int,
unsigned int) const
bool isNoopAddrSpaceCast(unsigned int,
unsigned int) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:104
Parameters
- unsigned int
- unsigned int
¶bool isNumRegsMajorCostOfLSR() const
bool isNumRegsMajorCostOfLSR() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:220
¶bool isProfitableLSRChainElement(
llvm::Instruction* I) const
bool isProfitableLSRChainElement(
llvm::Instruction* I) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:222
Parameters
¶bool isProfitableToHoist(
llvm::Instruction* I) const
bool isProfitableToHoist(
llvm::Instruction* I) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:314
Parameters
¶bool isSourceOfDivergence(
const llvm::Value* V) const
bool isSourceOfDivergence(
const llvm::Value* V) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:93
Parameters
- const llvm::Value* V
¶bool isStridedAccess(const llvm::SCEV* Ptr) const
bool isStridedAccess(const llvm::SCEV* Ptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:881
Parameters
- const llvm::SCEV* Ptr
¶bool isTruncateFree(llvm::Type* Ty1,
llvm::Type* Ty2) const
bool isTruncateFree(llvm::Type* Ty1,
llvm::Type* Ty2) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:312
Parameters
- llvm::Type* Ty1
- llvm::Type* Ty2
¶bool isTypeLegal(llvm::Type* Ty) const
bool isTypeLegal(llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:318
Parameters
- llvm::Type* Ty
¶unsigned int minRequiredElementSize(
const llvm::Value* Val,
bool& isSigned) const
unsigned int minRequiredElementSize(
const llvm::Value* Val,
bool& isSigned) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:827
Parameters
- const llvm::Value* Val
- bool& isSigned
¶bool preferInLoopReduction(
unsigned int Opcode,
llvm::Type* Ty,
TTI::ReductionFlags Flags) const
bool preferInLoopReduction(
unsigned int Opcode,
llvm::Type* Ty,
TTI::ReductionFlags Flags) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:792
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- TTI::ReductionFlags Flags
¶bool preferPredicateOverEpilogue(
llvm::Loop* L,
llvm::LoopInfo* LI,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* TLI,
llvm::DominatorTree* DT,
llvm::LoopVectorizationLegality* LVL) const
bool preferPredicateOverEpilogue(
llvm::Loop* L,
llvm::LoopInfo* LI,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* TLI,
llvm::DominatorTree* DT,
llvm::LoopVectorizationLegality* LVL) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:163
Parameters
- llvm::Loop* L
- llvm::LoopInfo* LI
- llvm::ScalarEvolution& SE
- llvm::AssumptionCache& AC
- llvm::TargetLibraryInfo* TLI
- llvm::DominatorTree* DT
- llvm::LoopVectorizationLegality* LVL
¶bool preferPredicatedReductionSelect(
unsigned int Opcode,
llvm::Type* Ty,
TTI::ReductionFlags Flags) const
bool preferPredicatedReductionSelect(
unsigned int Opcode,
llvm::Type* Ty,
TTI::ReductionFlags Flags) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:797
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- TTI::ReductionFlags Flags
¶bool prefersVectorizedAddressing() const
bool prefersVectorizedAddressing() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:297
¶llvm::Value* rewriteIntrinsicWithAddressSpace(
llvm::IntrinsicInst* II,
llvm::Value* OldV,
llvm::Value* NewV) const
llvm::Value* rewriteIntrinsicWithAddressSpace(
llvm::IntrinsicInst* II,
llvm::Value* OldV,
llvm::Value* NewV) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:116
Parameters
- llvm::IntrinsicInst* II
- llvm::Value* OldV
- llvm::Value* NewV
¶bool shouldBuildLookupTables() const
bool shouldBuildLookupTables() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:322
¶bool shouldBuildLookupTablesForConstant(
llvm::Constant* C) const
bool shouldBuildLookupTablesForConstant(
llvm::Constant* C) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:324
Parameters
¶bool shouldBuildRelLookupTables() const
bool shouldBuildRelLookupTables() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:326
¶bool shouldConsiderAddressTypePromotion(
const llvm::Instruction& I,
bool& AllowPromotionWithoutCommonHeader) const
bool shouldConsiderAddressTypePromotion(
const llvm::Instruction& I,
bool& AllowPromotionWithoutCommonHeader) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:439
Parameters
- const llvm::Instruction& I
- bool& AllowPromotionWithoutCommonHeader
¶bool shouldExpandReduction(
const llvm::IntrinsicInst* II) const
bool shouldExpandReduction(
const llvm::IntrinsicInst* II) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:802
Parameters
- const llvm::IntrinsicInst* II
¶bool shouldMaximizeVectorBandwidth(
TargetTransformInfo::RegisterKind K) const
bool shouldMaximizeVectorBandwidth(
TargetTransformInfo::RegisterKind K) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:428
Parameters
- TargetTransformInfo::RegisterKind K
¶Optional<llvm::Value*>
simplifyDemandedUseBitsIntrinsic(
llvm::InstCombiner& IC,
llvm::IntrinsicInst& II,
llvm::APInt DemandedMask,
llvm::KnownBits& Known,
bool& KnownBitsComputed) const
Optional<llvm::Value*>
simplifyDemandedUseBitsIntrinsic(
llvm::InstCombiner& IC,
llvm::IntrinsicInst& II,
llvm::APInt DemandedMask,
llvm::KnownBits& Known,
bool& KnownBitsComputed) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:180
Parameters
- llvm::InstCombiner& IC
- llvm::IntrinsicInst& II
- llvm::APInt DemandedMask
- llvm::KnownBits& Known
- bool& KnownBitsComputed
¶Optional<llvm::Value*>
simplifyDemandedVectorEltsIntrinsic(
llvm::InstCombiner& IC,
llvm::IntrinsicInst& II,
llvm::APInt DemandedElts,
llvm::APInt& UndefElts,
llvm::APInt& UndefElts2,
llvm::APInt& UndefElts3,
std::function<void(Instruction*,
unsigned int,
APInt,
APInt&)> SimplifyAndSetOp)
const
Optional<llvm::Value*>
simplifyDemandedVectorEltsIntrinsic(
llvm::InstCombiner& IC,
llvm::IntrinsicInst& II,
llvm::APInt DemandedElts,
llvm::APInt& UndefElts,
llvm::APInt& UndefElts2,
llvm::APInt& UndefElts3,
std::function<void(Instruction*,
unsigned int,
APInt,
APInt&)> SimplifyAndSetOp)
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:186
Parameters
- llvm::InstCombiner& IC
- llvm::IntrinsicInst& II
- llvm::APInt DemandedElts
- llvm::APInt& UndefElts
- llvm::APInt& UndefElts2
- llvm::APInt& UndefElts3
- std::function<void(Instruction*, unsigned int, APInt, APInt&)> SimplifyAndSetOp
¶bool supportsEfficientVectorElementLoadStore()
const
bool supportsEfficientVectorElementLoadStore()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:341
¶bool supportsScalableVectors() const
bool supportsScalableVectors() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:808
¶bool supportsTailCalls() const
bool supportsTailCalls() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:343
¶bool useAA() const
bool useAA() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:316
¶bool useColdCCForColdCall(llvm::Function& F) const
bool useColdCCForColdCall(llvm::Function& F) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:328
Parameters
¶bool useGPUDivergenceAnalysis() const
bool useGPUDivergenceAnalysis() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:91