class TargetTransformInfo::Model
Declaration
template <typename T>
class TargetTransformInfo::Model : public Concept { /* full declaration omitted */ };
Description
The template model for the base class which wraps a concrete implementation in a type erased interface.
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1402
Inherits from: TargetTransformInfo::Concept
Templates
- T
Method Overview
- public bool LSRWithInstrQueries()
- public Model<T>(T Impl)
- public bool allowsMisalignedMemoryAccesses(llvm::LLVMContext & Context, unsigned int BitWidth, unsigned int AddressSpace, unsigned int Alignment, bool * Fast)
- public bool areFunctionArgsABICompatible(const llvm::Function * Caller, const llvm::Function * Callee, SmallPtrSetImpl<llvm::Argument *> & Args) const
- public bool areInlineCompatible(const llvm::Function * Caller, const llvm::Function * Callee) const
- public bool canMacroFuseCmp()
- public bool canSaveCmp(llvm::Loop * L, llvm::BranchInst ** BI, llvm::ScalarEvolution * SE, llvm::LoopInfo * LI, llvm::DominatorTree * DT, llvm::AssumptionCache * AC, llvm::TargetLibraryInfo * LibInfo)
- public bool collectFlatAddressOperands(SmallVectorImpl<int> & OpIndexes, Intrinsic::ID IID) const
- public bool enableAggressiveInterleaving(bool LoopHasReductions)
- public bool enableInterleavedAccessVectorization()
- public bool enableMaskedInterleavedAccessVectorization()
- public llvm::TargetTransformInfo::MemCmpExpansionOptions enableMemCmpExpansion(bool OptSize, bool IsZeroCmp) const
- public int getAddressComputationCost(llvm::Type * Ty, llvm::ScalarEvolution * SE, const llvm::SCEV * Ptr)
- public unsigned int getArithmeticInstrCost(unsigned int Opcode, llvm::Type * Ty, llvm::TargetTransformInfo::OperandValueKind Opd1Info, llvm::TargetTransformInfo::OperandValueKind Opd2Info, llvm::TargetTransformInfo::OperandValueProperties Opd1PropInfo, llvm::TargetTransformInfo::OperandValueProperties Opd2PropInfo, ArrayRef<const llvm::Value *> Args, const llvm::Instruction * CxtI = nullptr)
- public int getArithmeticReductionCost(unsigned int Opcode, llvm::Type * Ty, bool IsPairwiseForm)
- public unsigned int getAtomicMemIntrinsicMaxElementSize() const
- public int getCFInstrCost(unsigned int Opcode)
- public llvm::Optional<unsigned int> getCacheAssociativity(llvm::TargetTransformInfo::CacheLevel Level) const
- public unsigned int getCacheLineSize() const
- public llvm::Optional<unsigned int> getCacheSize(llvm::TargetTransformInfo::CacheLevel Level) const
- public int getCallCost(const llvm::Function * F, ArrayRef<const llvm::Value *> Arguments, const llvm::User * U)
- public int getCallCost(const llvm::Function * F, int NumArgs, const llvm::User * U)
- public int getCallCost(llvm::FunctionType * FTy, int NumArgs, const llvm::User * U)
- public int getCallInstrCost(llvm::Function * F, llvm::Type * RetTy, ArrayRef<llvm::Type *> Tys)
- public int getCastInstrCost(unsigned int Opcode, llvm::Type * Dst, llvm::Type * Src, const llvm::Instruction * I)
- public int getCmpSelInstrCost(unsigned int Opcode, llvm::Type * ValTy, llvm::Type * CondTy, const llvm::Instruction * I)
- public unsigned int getCostOfKeepingLiveOverCall(ArrayRef<llvm::Type *> Tys)
- public const llvm::DataLayout & getDataLayout() const
- public unsigned int getEstimatedNumberOfCaseClusters(const llvm::SwitchInst & SI, unsigned int & JTSize, llvm::ProfileSummaryInfo * PSI, llvm::BlockFrequencyInfo * BFI)
- public int getExtCost(const llvm::Instruction * I, const llvm::Value * Src)
- public int getExtractWithExtendCost(unsigned int Opcode, llvm::Type * Dst, llvm::VectorType * VecTy, unsigned int Index)
- public int getFPOpCost(llvm::Type * Ty)
- public unsigned int getFlatAddressSpace()
- public int getGEPCost(llvm::Type * PointeeType, const llvm::Value * Ptr, ArrayRef<const llvm::Value *> Operands)
- public unsigned int getGISelRematGlobalCost() const
- public int getGatherScatterOpCost(unsigned int Opcode, llvm::Type * DataTy, llvm::Value * Ptr, bool VariableMask, unsigned int Alignment)
- public int getInlinerVectorBonusPercent()
- public unsigned int getInliningThresholdMultiplier()
- public int getInstructionLatency(const llvm::Instruction * I)
- public int getIntImmCodeSizeCost(unsigned int Opc, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public int getIntImmCost(const llvm::APInt & Imm, llvm::Type * Ty)
- public int getIntImmCostInst(unsigned int Opc, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public int getIntImmCostIntrin(Intrinsic::ID IID, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public int getInterleavedMemoryOpCost(unsigned int Opcode, llvm::Type * VecTy, unsigned int Factor, ArrayRef<unsigned int> Indices, unsigned int Alignment, unsigned int AddressSpace, bool UseMaskForCond, bool UseMaskForGaps)
- public int getIntrinsicCost(Intrinsic::ID IID, llvm::Type * RetTy, ArrayRef<const llvm::Value *> Arguments, const llvm::User * U = nullptr)
- public int getIntrinsicCost(Intrinsic::ID IID, llvm::Type * RetTy, ArrayRef<llvm::Type *> ParamTys, const llvm::User * U = nullptr)
- public int getIntrinsicInstrCost(Intrinsic::ID ID, llvm::Type * RetTy, ArrayRef<llvm::Type *> Tys, llvm::FastMathFlags FMF, unsigned int ScalarizationCostPassed)
- public int getIntrinsicInstrCost(Intrinsic::ID ID, llvm::Type * RetTy, ArrayRef<llvm::Value *> Args, llvm::FastMathFlags FMF, unsigned int VF)
- 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 int getMaskedMemoryOpCost(unsigned int Opcode, llvm::Type * Src, unsigned int Alignment, unsigned int AddressSpace)
- public unsigned int getMaxInterleaveFactor(unsigned int VF)
- public unsigned int getMaxPrefetchIterationsAhead() const
- public int getMemcpyCost(const llvm::Instruction * I)
- public llvm::Type * getMemcpyLoopLoweringType(llvm::LLVMContext & Context, llvm::Value * Length, unsigned int SrcAlign, unsigned int DestAlign) const
- public void getMemcpyLoopResidualLoweringType(SmallVectorImpl<llvm::Type *> & OpsOut, llvm::LLVMContext & Context, unsigned int RemainingBytes, unsigned int SrcAlign, unsigned int DestAlign) const
- public int getMemoryOpCost(unsigned int Opcode, llvm::Type * Src, llvm::MaybeAlign Alignment, unsigned int AddressSpace, const llvm::Instruction * I)
- public int getMinMaxReductionCost(llvm::Type * Ty, llvm::Type * CondTy, bool IsPairwiseForm, bool IsUnsigned)
- public unsigned int getMinPrefetchStride() const
- public unsigned int getMinVectorRegisterBitWidth()
- public unsigned int getMinimumVF(unsigned int ElemWidth) const
- public unsigned int getNumberOfParts(llvm::Type * Tp)
- public unsigned int getNumberOfRegisters(unsigned int ClassID) const
- public unsigned int getOperandsScalarizationOverhead(ArrayRef<const llvm::Value *> Args, unsigned int VF)
- public int getOperationCost(unsigned int Opcode, llvm::Type * Ty, llvm::Type * OpTy)
- public llvm::Value * getOrCreateResultFromMemIntrinsic(llvm::IntrinsicInst * Inst, llvm::Type * ExpectedType)
- public llvm::TargetTransformInfo::PopcntSupportKind getPopcntSupport(unsigned int IntTyWidthInBit)
- public unsigned int getPrefetchDistance() const
- public unsigned int getRegisterBitWidth(bool Vector) const
- public unsigned int getRegisterClassForType(bool Vector, llvm::Type * Ty = nullptr) const
- public const char * getRegisterClassName(unsigned int ClassID) const
- public unsigned int getScalarizationOverhead(llvm::Type * Ty, bool Insert, bool Extract)
- public int getScalingFactorCost(llvm::Type * Ty, llvm::GlobalValue * BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned int AddrSpace)
- public int getShuffleCost(llvm::TargetTransformInfo::ShuffleKind Kind, llvm::Type * Tp, int Index, llvm::Type * SubTp)
- 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)
- public void getUnrollingPreferences(llvm::Loop * L, llvm::ScalarEvolution & SE, llvm::TargetTransformInfo::UnrollingPreferences & UP)
- public int getUserCost(const llvm::User * U, ArrayRef<const llvm::Value *> Operands)
- public int getVectorInstrCost(unsigned int Opcode, llvm::Type * Val, unsigned int Index)
- public bool hasBranchDivergence()
- public bool hasDivRemOp(llvm::Type * DataType, bool IsSigned)
- public bool hasVolatileVariant(llvm::Instruction * I, unsigned int AddrSpace)
- public bool haveFastSqrt(llvm::Type * Ty)
- public bool isAlwaysUniform(const llvm::Value * V)
- public bool isFCmpOrdCheaperThanFCmpZero(llvm::Type * Ty)
- public bool isFPVectorizationPotentiallyUnsafe()
- public bool isHardwareLoopProfitable(llvm::Loop * L, llvm::ScalarEvolution & SE, llvm::AssumptionCache & AC, llvm::TargetLibraryInfo * LibInfo, llvm::HardwareLoopInfo & HWLoopInfo)
- public bool isIndexedLoadLegal(llvm::TargetTransformInfo::MemIndexedMode Mode, llvm::Type * Ty) const
- public bool isIndexedStoreLegal(llvm::TargetTransformInfo::MemIndexedMode Mode, llvm::Type * Ty) const
- public bool isLSRCostLess(TargetTransformInfo::LSRCost & C1, TargetTransformInfo::LSRCost & C2)
- public bool isLegalAddImmediate(int64_t Imm)
- public bool isLegalAddressingMode(llvm::Type * Ty, llvm::GlobalValue * BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned int AddrSpace, llvm::Instruction * I)
- public bool isLegalICmpImmediate(int64_t Imm)
- public bool isLegalMaskedCompressStore(llvm::Type * DataType)
- public bool isLegalMaskedExpandLoad(llvm::Type * DataType)
- public bool isLegalMaskedGather(llvm::Type * DataType, llvm::MaybeAlign Alignment)
- public bool isLegalMaskedLoad(llvm::Type * DataType, llvm::MaybeAlign Alignment)
- public bool isLegalMaskedScatter(llvm::Type * DataType, llvm::MaybeAlign Alignment)
- public bool isLegalMaskedStore(llvm::Type * DataType, llvm::MaybeAlign Alignment)
- public bool isLegalNTLoad(llvm::Type * DataType, llvm::Align Alignment)
- public bool isLegalNTStore(llvm::Type * DataType, llvm::Align Alignment)
- public bool isLegalToVectorizeLoad(llvm::LoadInst * LI) const
- public bool isLegalToVectorizeLoadChain(unsigned int ChainSizeInBytes, unsigned int Alignment, unsigned int AddrSpace) const
- public bool isLegalToVectorizeStore(llvm::StoreInst * SI) const
- public bool isLegalToVectorizeStoreChain(unsigned int ChainSizeInBytes, unsigned int Alignment, unsigned int AddrSpace) const
- public bool isLoweredToCall(const llvm::Function * F)
- public bool isProfitableToHoist(llvm::Instruction * I)
- public bool isSourceOfDivergence(const llvm::Value * V)
- public bool isTruncateFree(llvm::Type * Ty1, llvm::Type * Ty2)
- public bool isTypeLegal(llvm::Type * Ty)
- public bool preferPredicateOverEpilogue(llvm::Loop * L, llvm::LoopInfo * LI, llvm::ScalarEvolution & SE, llvm::AssumptionCache & AC, llvm::TargetLibraryInfo * TLI, llvm::DominatorTree * DT, const llvm::LoopAccessInfo * LAI)
- public bool prefersVectorizedAddressing()
- public bool rewriteIntrinsicWithAddressSpace(llvm::IntrinsicInst * II, llvm::Value * OldV, llvm::Value * NewV) const
- public bool shouldBuildLookupTables()
- public bool shouldBuildLookupTablesForConstant(llvm::Constant * C)
- public bool shouldConsiderAddressTypePromotion(const llvm::Instruction & I, bool & AllowPromotionWithoutCommonHeader)
- public bool shouldExpandReduction(const llvm::IntrinsicInst * II) const
- public bool shouldFavorBackedgeIndex(const llvm::Loop * L) const
- public bool shouldFavorPostInc() const
- public bool shouldMaximizeVectorBandwidth(bool OptSize) const
- public bool supportsEfficientVectorElementLoadStore()
- public bool useAA()
- public bool useColdCCForColdCall(llvm::Function & F)
- public bool useReductionIntrinsic(unsigned int Opcode, llvm::Type * Ty, llvm::TargetTransformInfo::ReductionFlags Flags) const
- public ~Model<T>()
Inherited from TargetTransformInfo::Concept:
- public LSRWithInstrQueries
- public allowsMisalignedMemoryAccesses
- public areFunctionArgsABICompatible
- public areInlineCompatible
- public canMacroFuseCmp
- public canSaveCmp
- public collectFlatAddressOperands
- public enableAggressiveInterleaving
- public enableInterleavedAccessVectorization
- public enableMaskedInterleavedAccessVectorization
- public enableMemCmpExpansion
- public getAddressComputationCost
- public getArithmeticInstrCost
- public getArithmeticReductionCost
- public getAtomicMemIntrinsicMaxElementSize
- public getCFInstrCost
- public getCacheAssociativity
- public getCacheLineSize
- public getCacheSize
- public getCallCost
- public getCallCost
- public getCallCost
- public getCallInstrCost
- public getCastInstrCost
- public getCmpSelInstrCost
- public getCostOfKeepingLiveOverCall
- public getDataLayout
- public getEstimatedNumberOfCaseClusters
- public getExtCost
- public getExtractWithExtendCost
- public getFPOpCost
- public getFlatAddressSpace
- public getGEPCost
- public getGISelRematGlobalCost
- public getGatherScatterOpCost
- public getInlinerVectorBonusPercent
- public getInliningThresholdMultiplier
- public getInstructionLatency
- public getIntImmCodeSizeCost
- public getIntImmCost
- public getIntImmCostInst
- public getIntImmCostIntrin
- public getInterleavedMemoryOpCost
- public getIntrinsicCost
- public getIntrinsicCost
- public getIntrinsicInstrCost
- public getIntrinsicInstrCost
- public getLoadStoreVecRegBitWidth
- public getLoadVectorFactor
- public getMaskedMemoryOpCost
- public getMaxInterleaveFactor
- public getMaxPrefetchIterationsAhead
- public getMemcpyCost
- public getMemcpyLoopLoweringType
- public getMemcpyLoopResidualLoweringType
- public getMemoryOpCost
- public getMinMaxReductionCost
- public getMinPrefetchStride
- public getMinVectorRegisterBitWidth
- public getMinimumVF
- public getNumberOfParts
- public getNumberOfRegisters
- public getOperandsScalarizationOverhead
- public getOperationCost
- public getOrCreateResultFromMemIntrinsic
- public getPopcntSupport
- public getPrefetchDistance
- public getRegisterBitWidth
- public getRegisterClassForType
- public getRegisterClassName
- public getScalarizationOverhead
- public getScalingFactorCost
- public getShuffleCost
- public getStoreVectorFactor
- public getTgtMemIntrinsic
- public getUnrollingPreferences
- public getUserCost
- public getVectorInstrCost
- public hasBranchDivergence
- public hasDivRemOp
- public hasVolatileVariant
- public haveFastSqrt
- public isAlwaysUniform
- public isFCmpOrdCheaperThanFCmpZero
- public isFPVectorizationPotentiallyUnsafe
- public isHardwareLoopProfitable
- public isIndexedLoadLegal
- public isIndexedStoreLegal
- public isLSRCostLess
- public isLegalAddImmediate
- public isLegalAddressingMode
- public isLegalICmpImmediate
- public isLegalMaskedCompressStore
- public isLegalMaskedExpandLoad
- public isLegalMaskedGather
- public isLegalMaskedLoad
- public isLegalMaskedScatter
- public isLegalMaskedStore
- public isLegalNTLoad
- public isLegalNTStore
- public isLegalToVectorizeLoad
- public isLegalToVectorizeLoadChain
- public isLegalToVectorizeStore
- public isLegalToVectorizeStoreChain
- public isLoweredToCall
- public isProfitableToHoist
- public isSourceOfDivergence
- public isTruncateFree
- public isTypeLegal
- public preferPredicateOverEpilogue
- public prefersVectorizedAddressing
- public rewriteIntrinsicWithAddressSpace
- public shouldBuildLookupTables
- public shouldBuildLookupTablesForConstant
- public shouldConsiderAddressTypePromotion
- public shouldExpandReduction
- public shouldFavorBackedgeIndex
- public shouldFavorPostInc
- public shouldMaximizeVectorBandwidth
- public supportsEfficientVectorElementLoadStore
- public useAA
- public useColdCCForColdCall
- public useReductionIntrinsic
Methods
¶bool LSRWithInstrQueries()
bool LSRWithInstrQueries()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1567
¶Model<T>(T Impl)
Model<T>(T Impl)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1406
Parameters
- T Impl
¶bool allowsMisalignedMemoryAccesses(
llvm::LLVMContext& Context,
unsigned int BitWidth,
unsigned int AddressSpace,
unsigned int Alignment,
bool* Fast)
bool allowsMisalignedMemoryAccesses(
llvm::LLVMContext& Context,
unsigned int BitWidth,
unsigned int AddressSpace,
unsigned int Alignment,
bool* Fast)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1617
Parameters
- llvm::LLVMContext& Context
- unsigned int BitWidth
- unsigned int AddressSpace
- unsigned int Alignment
- bool* Fast
¶bool areFunctionArgsABICompatible(
const llvm::Function* Caller,
const llvm::Function* Callee,
SmallPtrSetImpl<llvm::Argument*>& Args) const
bool areFunctionArgsABICompatible(
const llvm::Function* Caller,
const llvm::Function* Callee,
SmallPtrSetImpl<llvm::Argument*>& Args) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1827
Parameters
- const llvm::Function* Caller
- const llvm::Function* Callee
- SmallPtrSetImpl<llvm::Argument*>& Args
¶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/TargetTransformInfo.h:1823
Parameters
- const llvm::Function* Caller
- const llvm::Function* Callee
¶bool canMacroFuseCmp()
bool canMacroFuseCmp()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1513
¶bool canSaveCmp(llvm::Loop* L,
llvm::BranchInst** BI,
llvm::ScalarEvolution* SE,
llvm::LoopInfo* LI,
llvm::DominatorTree* DT,
llvm::AssumptionCache* AC,
llvm::TargetLibraryInfo* LibInfo)
bool canSaveCmp(llvm::Loop* L,
llvm::BranchInst** BI,
llvm::ScalarEvolution* SE,
llvm::LoopInfo* LI,
llvm::DominatorTree* DT,
llvm::AssumptionCache* AC,
llvm::TargetLibraryInfo* LibInfo)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1516
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/TargetTransformInfo.h:1467
Parameters
- SmallVectorImpl<int>& OpIndexes
- Intrinsic::ID IID
¶bool enableAggressiveInterleaving(
bool LoopHasReductions)
bool enableAggressiveInterleaving(
bool LoopHasReductions)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1601
Parameters
- bool LoopHasReductions
¶bool enableInterleavedAccessVectorization()
bool enableInterleavedAccessVectorization()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1608
¶bool enableMaskedInterleavedAccessVectorization()
bool enableMaskedInterleavedAccessVectorization()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1611
¶llvm::TargetTransformInfo::MemCmpExpansionOptions
enableMemCmpExpansion(bool OptSize,
bool IsZeroCmp) const
llvm::TargetTransformInfo::MemCmpExpansionOptions
enableMemCmpExpansion(bool OptSize,
bool IsZeroCmp) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1604
Parameters
- bool OptSize
- bool IsZeroCmp
¶int getAddressComputationCost(
llvm::Type* Ty,
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr)
int getAddressComputationCost(
llvm::Type* Ty,
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1792
Parameters
- llvm::Type* Ty
- llvm::ScalarEvolution* SE
- const llvm::SCEV* Ptr
¶unsigned int getArithmeticInstrCost(
unsigned int Opcode,
llvm::Type* Ty,
llvm::TargetTransformInfo::OperandValueKind
Opd1Info,
llvm::TargetTransformInfo::OperandValueKind
Opd2Info,
llvm::TargetTransformInfo::
OperandValueProperties Opd1PropInfo,
llvm::TargetTransformInfo::
OperandValueProperties Opd2PropInfo,
ArrayRef<const llvm::Value*> Args,
const llvm::Instruction* CxtI = nullptr)
unsigned int getArithmeticInstrCost(
unsigned int Opcode,
llvm::Type* Ty,
llvm::TargetTransformInfo::OperandValueKind
Opd1Info,
llvm::TargetTransformInfo::OperandValueKind
Opd2Info,
llvm::TargetTransformInfo::
OperandValueProperties Opd1PropInfo,
llvm::TargetTransformInfo::
OperandValueProperties Opd2PropInfo,
ArrayRef<const llvm::Value*> Args,
const llvm::Instruction* CxtI = nullptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1714
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- llvm::TargetTransformInfo::OperandValueKind Opd1Info
- llvm::TargetTransformInfo::OperandValueKind Opd2Info
- llvm::TargetTransformInfo::OperandValueProperties Opd1PropInfo
- llvm::TargetTransformInfo::OperandValueProperties Opd2PropInfo
- ArrayRef<const llvm::Value*> Args
- const llvm::Instruction* CxtI = nullptr
¶int getArithmeticReductionCost(
unsigned int Opcode,
llvm::Type* Ty,
bool IsPairwiseForm)
int getArithmeticReductionCost(
unsigned int Opcode,
llvm::Type* Ty,
bool IsPairwiseForm)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1768
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- bool IsPairwiseForm
¶unsigned int getAtomicMemIntrinsicMaxElementSize()
const
unsigned int getAtomicMemIntrinsicMaxElementSize()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1803
¶int getCFInstrCost(unsigned int Opcode)
int getCFInstrCost(unsigned int Opcode)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1736
Parameters
- unsigned int Opcode
¶llvm::Optional<unsigned int>
getCacheAssociativity(
llvm::TargetTransformInfo::CacheLevel Level)
const
llvm::Optional<unsigned int>
getCacheAssociativity(
llvm::TargetTransformInfo::CacheLevel Level)
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1681
Parameters
- llvm::TargetTransformInfo::CacheLevel Level
¶unsigned int getCacheLineSize() const
unsigned int getCacheLineSize() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1675
¶llvm::Optional<unsigned int> getCacheSize(
llvm::TargetTransformInfo::CacheLevel Level)
const
llvm::Optional<unsigned int> getCacheSize(
llvm::TargetTransformInfo::CacheLevel Level)
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1678
Parameters
- llvm::TargetTransformInfo::CacheLevel Level
¶int getCallCost(
const llvm::Function* F,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
int getCallCost(
const llvm::Function* F,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1429
Parameters
- const llvm::Function* F
- ArrayRef<const llvm::Value*> Arguments
- const llvm::User* U
¶int getCallCost(const llvm::Function* F,
int NumArgs,
const llvm::User* U)
int getCallCost(const llvm::Function* F,
int NumArgs,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1426
Parameters
- const llvm::Function* F
- int NumArgs
- const llvm::User* U
¶int getCallCost(llvm::FunctionType* FTy,
int NumArgs,
const llvm::User* U)
int getCallCost(llvm::FunctionType* FTy,
int NumArgs,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1423
Parameters
- llvm::FunctionType* FTy
- int NumArgs
- const llvm::User* U
¶int getCallInstrCost(llvm::Function* F,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys)
int getCallInstrCost(llvm::Function* F,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1785
Parameters
- llvm::Function* F
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> Tys
¶int getCastInstrCost(unsigned int Opcode,
llvm::Type* Dst,
llvm::Type* Src,
const llvm::Instruction* I)
int getCastInstrCost(unsigned int Opcode,
llvm::Type* Dst,
llvm::Type* Src,
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1728
Parameters
- unsigned int Opcode
- llvm::Type* Dst
- llvm::Type* Src
- const llvm::Instruction* I
¶int getCmpSelInstrCost(unsigned int Opcode,
llvm::Type* ValTy,
llvm::Type* CondTy,
const llvm::Instruction* I)
int getCmpSelInstrCost(unsigned int Opcode,
llvm::Type* ValTy,
llvm::Type* CondTy,
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1739
Parameters
- unsigned int Opcode
- llvm::Type* ValTy
- llvm::Type* CondTy
- const llvm::Instruction* I
¶unsigned int getCostOfKeepingLiveOverCall(
ArrayRef<llvm::Type*> Tys)
unsigned int getCostOfKeepingLiveOverCall(
ArrayRef<llvm::Type*> Tys)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1796
Parameters
- ArrayRef<llvm::Type*> Tys
¶const llvm::DataLayout& getDataLayout() const
const llvm::DataLayout& getDataLayout() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1409
¶unsigned int getEstimatedNumberOfCaseClusters(
const llvm::SwitchInst& SI,
unsigned int& JTSize,
llvm::ProfileSummaryInfo* PSI,
llvm::BlockFrequencyInfo* BFI)
unsigned int getEstimatedNumberOfCaseClusters(
const llvm::SwitchInst& SI,
unsigned int& JTSize,
llvm::ProfileSummaryInfo* PSI,
llvm::BlockFrequencyInfo* BFI)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1708
Parameters
- const llvm::SwitchInst& SI
- unsigned int& JTSize
- llvm::ProfileSummaryInfo* PSI
- llvm::BlockFrequencyInfo* BFI
¶int getExtCost(const llvm::Instruction* I,
const llvm::Value* Src)
int getExtCost(const llvm::Instruction* I,
const llvm::Value* Src)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1420
Parameters
- const llvm::Instruction* I
- const llvm::Value* Src
¶int getExtractWithExtendCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::VectorType* VecTy,
unsigned int Index)
int getExtractWithExtendCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::VectorType* VecTy,
unsigned int Index)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1732
Parameters
- unsigned int Opcode
- llvm::Type* Dst
- llvm::VectorType* VecTy
- unsigned int Index
¶int getFPOpCost(llvm::Type* Ty)
int getFPOpCost(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1632
Parameters
- llvm::Type* Ty
¶unsigned int getFlatAddressSpace()
unsigned int getFlatAddressSpace()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1463
¶int getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands)
int getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1416
Parameters
- llvm::Type* PointeeType
- const llvm::Value* Ptr
- ArrayRef<const llvm::Value*> Operands
¶unsigned int getGISelRematGlobalCost() const
unsigned int getGISelRematGlobalCost() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1877
¶int getGatherScatterOpCost(unsigned int Opcode,
llvm::Type* DataTy,
llvm::Value* Ptr,
bool VariableMask,
unsigned int Alignment)
int getGatherScatterOpCost(unsigned int Opcode,
llvm::Type* DataTy,
llvm::Value* Ptr,
bool VariableMask,
unsigned int Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1754
Parameters
- unsigned int Opcode
- llvm::Type* DataTy
- llvm::Value* Ptr
- bool VariableMask
- unsigned int Alignment
¶int getInlinerVectorBonusPercent()
int getInlinerVectorBonusPercent()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1436
¶unsigned int getInliningThresholdMultiplier()
unsigned int getInliningThresholdMultiplier()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1433
¶int getInstructionLatency(
const llvm::Instruction* I)
int getInstructionLatency(
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1881
Parameters
- const llvm::Instruction* I
¶int getIntImmCodeSizeCost(unsigned int Opc,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
int getIntImmCodeSizeCost(unsigned int Opc,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1634
Parameters
- unsigned int Opc
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶int getIntImmCost(const llvm::APInt& Imm,
llvm::Type* Ty)
int getIntImmCost(const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1638
Parameters
- const llvm::APInt& Imm
- llvm::Type* Ty
¶int getIntImmCostInst(unsigned int Opc,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
int getIntImmCostInst(unsigned int Opc,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1641
Parameters
- unsigned int Opc
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶int getIntImmCostIntrin(Intrinsic::ID IID,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
int getIntImmCostIntrin(Intrinsic::ID IID,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1645
Parameters
- Intrinsic::ID IID
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶int getInterleavedMemoryOpCost(
unsigned int Opcode,
llvm::Type* VecTy,
unsigned int Factor,
ArrayRef<unsigned int> Indices,
unsigned int Alignment,
unsigned int AddressSpace,
bool UseMaskForCond,
bool UseMaskForGaps)
int getInterleavedMemoryOpCost(
unsigned int Opcode,
llvm::Type* VecTy,
unsigned int Factor,
ArrayRef<unsigned int> Indices,
unsigned int Alignment,
unsigned int AddressSpace,
bool UseMaskForCond,
bool UseMaskForGaps)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1760
Parameters
- unsigned int Opcode
- llvm::Type* VecTy
- unsigned int Factor
- ArrayRef<unsigned int> Indices
- unsigned int Alignment
- unsigned int AddressSpace
- bool UseMaskForCond
- bool UseMaskForGaps
¶int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U = nullptr)
int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U = nullptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1443
Parameters
- Intrinsic::ID IID
- llvm::Type* RetTy
- ArrayRef<const llvm::Value*> Arguments
- const llvm::User* U = nullptr
¶int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> ParamTys,
const llvm::User* U = nullptr)
int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> ParamTys,
const llvm::User* U = nullptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1439
Parameters
- Intrinsic::ID IID
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> ParamTys
- const llvm::User* U = nullptr
¶int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys,
llvm::FastMathFlags FMF,
unsigned int ScalarizationCostPassed)
int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys,
llvm::FastMathFlags FMF,
unsigned int ScalarizationCostPassed)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1776
Parameters
- Intrinsic::ID ID
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> Tys
- llvm::FastMathFlags FMF
- unsigned int ScalarizationCostPassed
¶int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Value*> Args,
llvm::FastMathFlags FMF,
unsigned int VF)
int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Value*> Args,
llvm::FastMathFlags FMF,
unsigned int VF)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1781
Parameters
- Intrinsic::ID ID
- llvm::Type* RetTy
- ArrayRef<llvm::Value*> Args
- llvm::FastMathFlags FMF
- unsigned int VF
¶unsigned int getLoadStoreVecRegBitWidth(
unsigned int AddrSpace) const
unsigned int getLoadStoreVecRegBitWidth(
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1838
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/TargetTransformInfo.h:1859
Parameters
- unsigned int VF
- unsigned int LoadSize
- unsigned int ChainSizeInBytes
- llvm::VectorType* VecTy
¶int getMaskedMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
unsigned int Alignment,
unsigned int AddressSpace)
int getMaskedMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
unsigned int Alignment,
unsigned int AddressSpace)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1750
Parameters
- unsigned int Opcode
- llvm::Type* Src
- unsigned int Alignment
- unsigned int AddressSpace
¶unsigned int getMaxInterleaveFactor(
unsigned int VF)
unsigned int getMaxInterleaveFactor(
unsigned int VF)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1705
Parameters
- unsigned int VF
¶unsigned int getMaxPrefetchIterationsAhead() const
unsigned int getMaxPrefetchIterationsAhead() const
Description
Return the maximum prefetch distance in terms of loop iterations.
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1701
¶int getMemcpyCost(const llvm::Instruction* I)
int getMemcpyCost(const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1448
Parameters
- const llvm::Instruction* I
¶llvm::Type* getMemcpyLoopLoweringType(
llvm::LLVMContext& Context,
llvm::Value* Length,
unsigned int SrcAlign,
unsigned int DestAlign) const
llvm::Type* getMemcpyLoopLoweringType(
llvm::LLVMContext& Context,
llvm::Value* Length,
unsigned int SrcAlign,
unsigned int DestAlign) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1810
Parameters
- llvm::LLVMContext& Context
- llvm::Value* Length
- unsigned int SrcAlign
- unsigned int DestAlign
¶void getMemcpyLoopResidualLoweringType(
SmallVectorImpl<llvm::Type*>& OpsOut,
llvm::LLVMContext& Context,
unsigned int RemainingBytes,
unsigned int SrcAlign,
unsigned int DestAlign) const
void getMemcpyLoopResidualLoweringType(
SmallVectorImpl<llvm::Type*>& OpsOut,
llvm::LLVMContext& Context,
unsigned int RemainingBytes,
unsigned int SrcAlign,
unsigned int DestAlign) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1815
Parameters
- SmallVectorImpl<llvm::Type*>& OpsOut
- llvm::LLVMContext& Context
- unsigned int RemainingBytes
- unsigned int SrcAlign
- unsigned int DestAlign
¶int getMemoryOpCost(unsigned int Opcode,
llvm::Type* Src,
llvm::MaybeAlign Alignment,
unsigned int AddressSpace,
const llvm::Instruction* I)
int getMemoryOpCost(unsigned int Opcode,
llvm::Type* Src,
llvm::MaybeAlign Alignment,
unsigned int AddressSpace,
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1746
Parameters
- unsigned int Opcode
- llvm::Type* Src
- llvm::MaybeAlign Alignment
- unsigned int AddressSpace
- const llvm::Instruction* I
¶int getMinMaxReductionCost(llvm::Type* Ty,
llvm::Type* CondTy,
bool IsPairwiseForm,
bool IsUnsigned)
int getMinMaxReductionCost(llvm::Type* Ty,
llvm::Type* CondTy,
bool IsPairwiseForm,
bool IsUnsigned)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1772
Parameters
- llvm::Type* Ty
- llvm::Type* CondTy
- bool IsPairwiseForm
- bool IsUnsigned
¶unsigned int getMinPrefetchStride() const
unsigned int getMinPrefetchStride() const
Description
Return the minimum stride necessary to trigger software prefetching.
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1694
¶unsigned int getMinVectorRegisterBitWidth()
unsigned int getMinVectorRegisterBitWidth()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1661
¶unsigned int getMinimumVF(
unsigned int ElemWidth) const
unsigned int getMinimumVF(
unsigned int ElemWidth) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1667
Parameters
- unsigned int ElemWidth
¶unsigned int getNumberOfParts(llvm::Type* Tp)
unsigned int getNumberOfParts(llvm::Type* Tp)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1789
Parameters
- llvm::Type* Tp
¶unsigned int getNumberOfRegisters(
unsigned int ClassID) const
unsigned int getNumberOfRegisters(
unsigned int ClassID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1649
Parameters
- unsigned int ClassID
¶unsigned int getOperandsScalarizationOverhead(
ArrayRef<const llvm::Value*> Args,
unsigned int VF)
unsigned int getOperandsScalarizationOverhead(
ArrayRef<const llvm::Value*> Args,
unsigned int VF)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1592
Parameters
- ArrayRef<const llvm::Value*> Args
- unsigned int VF
¶int getOperationCost(unsigned int Opcode,
llvm::Type* Ty,
llvm::Type* OpTy)
int getOperationCost(unsigned int Opcode,
llvm::Type* Ty,
llvm::Type* OpTy)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1413
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- llvm::Type* OpTy
¶llvm::Value* getOrCreateResultFromMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::Type* ExpectedType)
llvm::Value* getOrCreateResultFromMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::Type* ExpectedType)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1806
Parameters
- llvm::IntrinsicInst* Inst
- llvm::Type* ExpectedType
¶llvm::TargetTransformInfo::PopcntSupportKind
getPopcntSupport(unsigned int IntTyWidthInBit)
llvm::TargetTransformInfo::PopcntSupportKind
getPopcntSupport(unsigned int IntTyWidthInBit)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1623
Parameters
- unsigned int IntTyWidthInBit
¶unsigned int getPrefetchDistance() const
unsigned int getPrefetchDistance() const
Description
Return the preferred prefetch distance in terms of instructions.
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1687
¶unsigned int getRegisterBitWidth(
bool Vector) const
unsigned int getRegisterBitWidth(
bool Vector) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1658
Parameters
- bool Vector
¶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/TargetTransformInfo.h:1652
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/TargetTransformInfo.h:1655
Parameters
- unsigned int ClassID
¶unsigned int getScalarizationOverhead(
llvm::Type* Ty,
bool Insert,
bool Extract)
unsigned int getScalarizationOverhead(
llvm::Type* Ty,
bool Insert,
bool Extract)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1588
Parameters
- llvm::Type* Ty
- bool Insert
- bool Extract
¶int getScalingFactorCost(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace)
int getScalingFactorCost(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1561
Parameters
- llvm::Type* Ty
- llvm::GlobalValue* BaseGV
- int64_t BaseOffset
- bool HasBaseReg
- int64_t Scale
- unsigned int AddrSpace
¶int getShuffleCost(
llvm::TargetTransformInfo::ShuffleKind Kind,
llvm::Type* Tp,
int Index,
llvm::Type* SubTp)
int getShuffleCost(
llvm::TargetTransformInfo::ShuffleKind Kind,
llvm::Type* Tp,
int Index,
llvm::Type* SubTp)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1724
Parameters
- llvm::TargetTransformInfo::ShuffleKind Kind
- llvm::Type* Tp
- int Index
- llvm::Type* SubTp
¶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/TargetTransformInfo.h:1864
Parameters
- unsigned int VF
- unsigned int StoreSize
- unsigned int ChainSizeInBytes
- llvm::VectorType* VecTy
¶bool getTgtMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::MemIntrinsicInfo& Info)
bool getTgtMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::MemIntrinsicInfo& Info)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1799
Parameters
- llvm::IntrinsicInst* Inst
- llvm::MemIntrinsicInfo& Info
¶void getUnrollingPreferences(
llvm::Loop* L,
llvm::ScalarEvolution& SE,
llvm::TargetTransformInfo::
UnrollingPreferences& UP)
void getUnrollingPreferences(
llvm::Loop* L,
llvm::ScalarEvolution& SE,
llvm::TargetTransformInfo::
UnrollingPreferences& UP)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1480
Parameters
¶int getUserCost(
const llvm::User* U,
ArrayRef<const llvm::Value*> Operands)
int getUserCost(
const llvm::User* U,
ArrayRef<const llvm::Value*> Operands)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1451
Parameters
- const llvm::User* U
- ArrayRef<const llvm::Value*> Operands
¶int getVectorInstrCost(unsigned int Opcode,
llvm::Type* Val,
unsigned int Index)
int getVectorInstrCost(unsigned int Opcode,
llvm::Type* Val,
unsigned int Index)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1743
Parameters
- unsigned int Opcode
- llvm::Type* Val
- unsigned int Index
¶bool hasBranchDivergence()
bool hasBranchDivergence()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1454
¶bool hasDivRemOp(llvm::Type* DataType,
bool IsSigned)
bool hasDivRemOp(llvm::Type* DataType,
bool IsSigned)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1552
Parameters
- llvm::Type* DataType
- bool IsSigned
¶bool hasVolatileVariant(llvm::Instruction* I,
unsigned int AddrSpace)
bool hasVolatileVariant(llvm::Instruction* I,
unsigned int AddrSpace)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1555
Parameters
- llvm::Instruction* I
- unsigned int AddrSpace
¶bool haveFastSqrt(llvm::Type* Ty)
bool haveFastSqrt(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1626
Parameters
- llvm::Type* Ty
¶bool isAlwaysUniform(const llvm::Value* V)
bool isAlwaysUniform(const llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1459
Parameters
- const llvm::Value* V
¶bool isFCmpOrdCheaperThanFCmpZero(llvm::Type* Ty)
bool isFCmpOrdCheaperThanFCmpZero(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1628
Parameters
- llvm::Type* Ty
¶bool isFPVectorizationPotentiallyUnsafe()
bool isFPVectorizationPotentiallyUnsafe()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1614
¶bool isHardwareLoopProfitable(
llvm::Loop* L,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* LibInfo,
llvm::HardwareLoopInfo& HWLoopInfo)
bool isHardwareLoopProfitable(
llvm::Loop* L,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* LibInfo,
llvm::HardwareLoopInfo& HWLoopInfo)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1484
Parameters
- llvm::Loop* L
- llvm::ScalarEvolution& SE
- llvm::AssumptionCache& AC
- llvm::TargetLibraryInfo* LibInfo
- llvm::HardwareLoopInfo& HWLoopInfo
¶bool isIndexedLoadLegal(
llvm::TargetTransformInfo::MemIndexedMode
Mode,
llvm::Type* Ty) const
bool isIndexedLoadLegal(
llvm::TargetTransformInfo::MemIndexedMode
Mode,
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1832
Parameters
- llvm::TargetTransformInfo::MemIndexedMode Mode
- llvm::Type* Ty
¶bool isIndexedStoreLegal(
llvm::TargetTransformInfo::MemIndexedMode
Mode,
llvm::Type* Ty) const
bool isIndexedStoreLegal(
llvm::TargetTransformInfo::MemIndexedMode
Mode,
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1835
Parameters
- llvm::TargetTransformInfo::MemIndexedMode Mode
- llvm::Type* Ty
¶bool isLSRCostLess(
TargetTransformInfo::LSRCost& C1,
TargetTransformInfo::LSRCost& C2)
bool isLSRCostLess(
TargetTransformInfo::LSRCost& C1,
TargetTransformInfo::LSRCost& C2)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1509
Parameters
¶bool isLegalAddImmediate(int64_t Imm)
bool isLegalAddImmediate(int64_t Imm)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1496
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)
bool isLegalAddressingMode(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace,
llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1502
Parameters
- llvm::Type* Ty
- llvm::GlobalValue* BaseGV
- int64_t BaseOffset
- bool HasBaseReg
- int64_t Scale
- unsigned int AddrSpace
- llvm::Instruction* I
¶bool isLegalICmpImmediate(int64_t Imm)
bool isLegalICmpImmediate(int64_t Imm)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1499
Parameters
- int64_t Imm
¶bool isLegalMaskedCompressStore(
llvm::Type* DataType)
bool isLegalMaskedCompressStore(
llvm::Type* DataType)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1546
Parameters
- llvm::Type* DataType
¶bool isLegalMaskedExpandLoad(llvm::Type* DataType)
bool isLegalMaskedExpandLoad(llvm::Type* DataType)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1549
Parameters
- llvm::Type* DataType
¶bool isLegalMaskedGather(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
bool isLegalMaskedGather(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1543
Parameters
- llvm::Type* DataType
- llvm::MaybeAlign Alignment
¶bool isLegalMaskedLoad(llvm::Type* DataType,
llvm::MaybeAlign Alignment)
bool isLegalMaskedLoad(llvm::Type* DataType,
llvm::MaybeAlign Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1531
Parameters
- llvm::Type* DataType
- llvm::MaybeAlign Alignment
¶bool isLegalMaskedScatter(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
bool isLegalMaskedScatter(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1540
Parameters
- llvm::Type* DataType
- llvm::MaybeAlign Alignment
¶bool isLegalMaskedStore(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
bool isLegalMaskedStore(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1528
Parameters
- llvm::Type* DataType
- llvm::MaybeAlign Alignment
¶bool isLegalNTLoad(llvm::Type* DataType,
llvm::Align Alignment)
bool isLegalNTLoad(llvm::Type* DataType,
llvm::Align Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1537
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶bool isLegalNTStore(llvm::Type* DataType,
llvm::Align Alignment)
bool isLegalNTStore(llvm::Type* DataType,
llvm::Align Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1534
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/TargetTransformInfo.h:1841
Parameters
- llvm::LoadInst* LI
¶bool isLegalToVectorizeLoadChain(
unsigned int ChainSizeInBytes,
unsigned int Alignment,
unsigned int AddrSpace) const
bool isLegalToVectorizeLoadChain(
unsigned int ChainSizeInBytes,
unsigned int Alignment,
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1847
Parameters
- unsigned int ChainSizeInBytes
- unsigned int Alignment
- unsigned int AddrSpace
¶bool isLegalToVectorizeStore(
llvm::StoreInst* SI) const
bool isLegalToVectorizeStore(
llvm::StoreInst* SI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1844
Parameters
- llvm::StoreInst* SI
¶bool isLegalToVectorizeStoreChain(
unsigned int ChainSizeInBytes,
unsigned int Alignment,
unsigned int AddrSpace) const
bool isLegalToVectorizeStoreChain(
unsigned int ChainSizeInBytes,
unsigned int Alignment,
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1853
Parameters
- unsigned int ChainSizeInBytes
- unsigned int Alignment
- unsigned int AddrSpace
¶bool isLoweredToCall(const llvm::Function* F)
bool isLoweredToCall(const llvm::Function* F)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1477
Parameters
- const llvm::Function* F
¶bool isProfitableToHoist(llvm::Instruction* I)
bool isProfitableToHoist(llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1573
Parameters
¶bool isSourceOfDivergence(const llvm::Value* V)
bool isSourceOfDivergence(const llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1455
Parameters
- const llvm::Value* V
¶bool isTruncateFree(llvm::Type* Ty1,
llvm::Type* Ty2)
bool isTruncateFree(llvm::Type* Ty1,
llvm::Type* Ty2)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1570
Parameters
- llvm::Type* Ty1
- llvm::Type* Ty2
¶bool isTypeLegal(llvm::Type* Ty)
bool isTypeLegal(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1577
Parameters
- llvm::Type* Ty
¶bool preferPredicateOverEpilogue(
llvm::Loop* L,
llvm::LoopInfo* LI,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* TLI,
llvm::DominatorTree* DT,
const llvm::LoopAccessInfo* LAI)
bool preferPredicateOverEpilogue(
llvm::Loop* L,
llvm::LoopInfo* LI,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* TLI,
llvm::DominatorTree* DT,
const llvm::LoopAccessInfo* LAI)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1490
Parameters
- llvm::Loop* L
- llvm::LoopInfo* LI
- llvm::ScalarEvolution& SE
- llvm::AssumptionCache& AC
- llvm::TargetLibraryInfo* TLI
- llvm::DominatorTree* DT
- const llvm::LoopAccessInfo* LAI
¶bool prefersVectorizedAddressing()
bool prefersVectorizedAddressing()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1558
¶bool rewriteIntrinsicWithAddressSpace(
llvm::IntrinsicInst* II,
llvm::Value* OldV,
llvm::Value* NewV) const
bool rewriteIntrinsicWithAddressSpace(
llvm::IntrinsicInst* II,
llvm::Value* OldV,
llvm::Value* NewV) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1472
Parameters
- llvm::IntrinsicInst* II
- llvm::Value* OldV
- llvm::Value* NewV
¶bool shouldBuildLookupTables()
bool shouldBuildLookupTables()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1578
¶bool shouldBuildLookupTablesForConstant(
llvm::Constant* C)
bool shouldBuildLookupTablesForConstant(
llvm::Constant* C)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1581
Parameters
¶bool shouldConsiderAddressTypePromotion(
const llvm::Instruction& I,
bool& AllowPromotionWithoutCommonHeader)
bool shouldConsiderAddressTypePromotion(
const llvm::Instruction& I,
bool& AllowPromotionWithoutCommonHeader)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1670
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/TargetTransformInfo.h:1873
Parameters
- const llvm::IntrinsicInst* II
¶bool shouldFavorBackedgeIndex(
const llvm::Loop* L) const
bool shouldFavorBackedgeIndex(
const llvm::Loop* L) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1525
Parameters
- const llvm::Loop* L
¶bool shouldFavorPostInc() const
bool shouldFavorPostInc() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1522
¶bool shouldMaximizeVectorBandwidth(
bool OptSize) const
bool shouldMaximizeVectorBandwidth(
bool OptSize) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1664
Parameters
- bool OptSize
¶bool supportsEfficientVectorElementLoadStore()
bool supportsEfficientVectorElementLoadStore()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1597
¶bool useAA()
bool useAA()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1576
¶bool useColdCCForColdCall(llvm::Function& F)
bool useColdCCForColdCall(llvm::Function& F)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1584
Parameters
¶bool useReductionIntrinsic(
unsigned int Opcode,
llvm::Type* Ty,
llvm::TargetTransformInfo::ReductionFlags
Flags) const
bool useReductionIntrinsic(
unsigned int Opcode,
llvm::Type* Ty,
llvm::TargetTransformInfo::ReductionFlags
Flags) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1869
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- llvm::TargetTransformInfo::ReductionFlags Flags
¶~Model<T>()
~Model<T>()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1407