class TargetTransformInfo::Concept
Declaration
class TargetTransformInfo::Concept { /* full declaration omitted */ };
Description
The abstract base class used to type erase specific TTI implementations.
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1174
Method Overview
- public virtual bool LSRWithInstrQueries()
- public virtual bool allowsMisalignedMemoryAccesses(llvm::LLVMContext & Context, unsigned int BitWidth, unsigned int AddressSpace, unsigned int Alignment, bool * Fast)
- public virtual bool areFunctionArgsABICompatible(const llvm::Function * Caller, const llvm::Function * Callee, SmallPtrSetImpl<llvm::Argument *> & Args) const
- public virtual bool areInlineCompatible(const llvm::Function * Caller, const llvm::Function * Callee) const
- public virtual bool canMacroFuseCmp()
- public virtual bool canSaveCmp(llvm::Loop * L, llvm::BranchInst ** BI, llvm::ScalarEvolution * SE, llvm::LoopInfo * LI, llvm::DominatorTree * DT, llvm::AssumptionCache * AC, llvm::TargetLibraryInfo * LibInfo)
- public virtual bool collectFlatAddressOperands(SmallVectorImpl<int> & OpIndexes, Intrinsic::ID IID) const
- public virtual bool enableAggressiveInterleaving(bool LoopHasReductions)
- public virtual bool enableInterleavedAccessVectorization()
- public virtual bool enableMaskedInterleavedAccessVectorization()
- public virtual llvm::TargetTransformInfo::MemCmpExpansionOptions enableMemCmpExpansion(bool OptSize, bool IsZeroCmp) const
- public virtual int getAddressComputationCost(llvm::Type * Ty, llvm::ScalarEvolution * SE, const llvm::SCEV * Ptr)
- public virtual 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 virtual int getArithmeticReductionCost(unsigned int Opcode, llvm::Type * Ty, bool IsPairwiseForm)
- public virtual unsigned int getAtomicMemIntrinsicMaxElementSize() const
- public virtual int getCFInstrCost(unsigned int Opcode)
- public virtual llvm::Optional<unsigned int> getCacheAssociativity(llvm::TargetTransformInfo::CacheLevel Level) const
- public virtual unsigned int getCacheLineSize() const
- public virtual llvm::Optional<unsigned int> getCacheSize(llvm::TargetTransformInfo::CacheLevel Level) const
- public virtual int getCallCost(llvm::FunctionType * FTy, int NumArgs, const llvm::User * U)
- public virtual int getCallCost(const llvm::Function * F, int NumArgs, const llvm::User * U)
- public virtual int getCallCost(const llvm::Function * F, ArrayRef<const llvm::Value *> Arguments, const llvm::User * U)
- public virtual int getCallInstrCost(llvm::Function * F, llvm::Type * RetTy, ArrayRef<llvm::Type *> Tys)
- public virtual int getCastInstrCost(unsigned int Opcode, llvm::Type * Dst, llvm::Type * Src, const llvm::Instruction * I)
- public virtual int getCmpSelInstrCost(unsigned int Opcode, llvm::Type * ValTy, llvm::Type * CondTy, const llvm::Instruction * I)
- public virtual unsigned int getCostOfKeepingLiveOverCall(ArrayRef<llvm::Type *> Tys)
- public virtual const llvm::DataLayout & getDataLayout() const
- public virtual unsigned int getEstimatedNumberOfCaseClusters(const llvm::SwitchInst & SI, unsigned int & JTSize, llvm::ProfileSummaryInfo * PSI, llvm::BlockFrequencyInfo * BFI)
- public virtual int getExtCost(const llvm::Instruction * I, const llvm::Value * Src)
- public virtual int getExtractWithExtendCost(unsigned int Opcode, llvm::Type * Dst, llvm::VectorType * VecTy, unsigned int Index)
- public virtual int getFPOpCost(llvm::Type * Ty)
- public virtual unsigned int getFlatAddressSpace()
- public virtual int getGEPCost(llvm::Type * PointeeType, const llvm::Value * Ptr, ArrayRef<const llvm::Value *> Operands)
- public virtual unsigned int getGISelRematGlobalCost() const
- public virtual int getGatherScatterOpCost(unsigned int Opcode, llvm::Type * DataTy, llvm::Value * Ptr, bool VariableMask, unsigned int Alignment)
- public virtual int getInlinerVectorBonusPercent()
- public virtual unsigned int getInliningThresholdMultiplier()
- public virtual int getInstructionLatency(const llvm::Instruction * I)
- public virtual int getIntImmCodeSizeCost(unsigned int Opc, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public virtual int getIntImmCost(const llvm::APInt & Imm, llvm::Type * Ty)
- public virtual int getIntImmCostInst(unsigned int Opc, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public virtual int getIntImmCostIntrin(Intrinsic::ID IID, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public virtual int getInterleavedMemoryOpCost(unsigned int Opcode, llvm::Type * VecTy, unsigned int Factor, ArrayRef<unsigned int> Indices, unsigned int Alignment, unsigned int AddressSpace, bool UseMaskForCond = false, bool UseMaskForGaps = false)
- public virtual int getIntrinsicCost(Intrinsic::ID IID, llvm::Type * RetTy, ArrayRef<llvm::Type *> ParamTys, const llvm::User * U)
- public virtual int getIntrinsicCost(Intrinsic::ID IID, llvm::Type * RetTy, ArrayRef<const llvm::Value *> Arguments, const llvm::User * U)
- public virtual int getIntrinsicInstrCost(Intrinsic::ID ID, llvm::Type * RetTy, ArrayRef<llvm::Value *> Args, llvm::FastMathFlags FMF, unsigned int VF)
- public virtual int getIntrinsicInstrCost(Intrinsic::ID ID, llvm::Type * RetTy, ArrayRef<llvm::Type *> Tys, llvm::FastMathFlags FMF, unsigned int ScalarizationCostPassed)
- public virtual unsigned int getLoadStoreVecRegBitWidth(unsigned int AddrSpace) const
- public virtual unsigned int getLoadVectorFactor(unsigned int VF, unsigned int LoadSize, unsigned int ChainSizeInBytes, llvm::VectorType * VecTy) const
- public virtual int getMaskedMemoryOpCost(unsigned int Opcode, llvm::Type * Src, unsigned int Alignment, unsigned int AddressSpace)
- public virtual unsigned int getMaxInterleaveFactor(unsigned int VF)
- public virtual unsigned int getMaxPrefetchIterationsAhead() const
- public virtual int getMemcpyCost(const llvm::Instruction * I)
- public virtual llvm::Type * getMemcpyLoopLoweringType(llvm::LLVMContext & Context, llvm::Value * Length, unsigned int SrcAlign, unsigned int DestAlign) const
- public virtual void getMemcpyLoopResidualLoweringType(SmallVectorImpl<llvm::Type *> & OpsOut, llvm::LLVMContext & Context, unsigned int RemainingBytes, unsigned int SrcAlign, unsigned int DestAlign) const
- public virtual int getMemoryOpCost(unsigned int Opcode, llvm::Type * Src, llvm::MaybeAlign Alignment, unsigned int AddressSpace, const llvm::Instruction * I)
- public virtual int getMinMaxReductionCost(llvm::Type * Ty, llvm::Type * CondTy, bool IsPairwiseForm, bool IsUnsigned)
- public virtual unsigned int getMinPrefetchStride() const
- public virtual unsigned int getMinVectorRegisterBitWidth()
- public virtual unsigned int getMinimumVF(unsigned int ElemWidth) const
- public virtual unsigned int getNumberOfParts(llvm::Type * Tp)
- public virtual unsigned int getNumberOfRegisters(unsigned int ClassID) const
- public virtual unsigned int getOperandsScalarizationOverhead(ArrayRef<const llvm::Value *> Args, unsigned int VF)
- public virtual int getOperationCost(unsigned int Opcode, llvm::Type * Ty, llvm::Type * OpTy)
- public virtual llvm::Value * getOrCreateResultFromMemIntrinsic(llvm::IntrinsicInst * Inst, llvm::Type * ExpectedType)
- public virtual llvm::TargetTransformInfo::PopcntSupportKind getPopcntSupport(unsigned int IntTyWidthInBit)
- public virtual unsigned int getPrefetchDistance() const
- public virtual unsigned int getRegisterBitWidth(bool Vector) const
- public virtual unsigned int getRegisterClassForType(bool Vector, llvm::Type * Ty = nullptr) const
- public virtual const char * getRegisterClassName(unsigned int ClassID) const
- public virtual unsigned int getScalarizationOverhead(llvm::Type * Ty, bool Insert, bool Extract)
- public virtual int getScalingFactorCost(llvm::Type * Ty, llvm::GlobalValue * BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned int AddrSpace)
- public virtual int getShuffleCost(llvm::TargetTransformInfo::ShuffleKind Kind, llvm::Type * Tp, int Index, llvm::Type * SubTp)
- public virtual unsigned int getStoreVectorFactor(unsigned int VF, unsigned int StoreSize, unsigned int ChainSizeInBytes, llvm::VectorType * VecTy) const
- public virtual bool getTgtMemIntrinsic(llvm::IntrinsicInst * Inst, llvm::MemIntrinsicInfo & Info)
- public virtual void getUnrollingPreferences(llvm::Loop * L, llvm::ScalarEvolution &, llvm::TargetTransformInfo::UnrollingPreferences & UP)
- public virtual int getUserCost(const llvm::User * U, ArrayRef<const llvm::Value *> Operands)
- public virtual int getVectorInstrCost(unsigned int Opcode, llvm::Type * Val, unsigned int Index)
- public virtual bool hasBranchDivergence()
- public virtual bool hasDivRemOp(llvm::Type * DataType, bool IsSigned)
- public virtual bool hasVolatileVariant(llvm::Instruction * I, unsigned int AddrSpace)
- public virtual bool haveFastSqrt(llvm::Type * Ty)
- public virtual bool isAlwaysUniform(const llvm::Value * V)
- public virtual bool isFCmpOrdCheaperThanFCmpZero(llvm::Type * Ty)
- public virtual bool isFPVectorizationPotentiallyUnsafe()
- public virtual bool isHardwareLoopProfitable(llvm::Loop * L, llvm::ScalarEvolution & SE, llvm::AssumptionCache & AC, llvm::TargetLibraryInfo * LibInfo, llvm::HardwareLoopInfo & HWLoopInfo)
- public virtual bool isIndexedLoadLegal(llvm::TargetTransformInfo::MemIndexedMode Mode, llvm::Type * Ty) const
- public virtual bool isIndexedStoreLegal(llvm::TargetTransformInfo::MemIndexedMode Mode, llvm::Type * Ty) const
- public virtual bool isLSRCostLess(TargetTransformInfo::LSRCost & C1, TargetTransformInfo::LSRCost & C2)
- public virtual bool isLegalAddImmediate(int64_t Imm)
- public virtual bool isLegalAddressingMode(llvm::Type * Ty, llvm::GlobalValue * BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned int AddrSpace, llvm::Instruction * I)
- public virtual bool isLegalICmpImmediate(int64_t Imm)
- public virtual bool isLegalMaskedCompressStore(llvm::Type * DataType)
- public virtual bool isLegalMaskedExpandLoad(llvm::Type * DataType)
- public virtual bool isLegalMaskedGather(llvm::Type * DataType, llvm::MaybeAlign Alignment)
- public virtual bool isLegalMaskedLoad(llvm::Type * DataType, llvm::MaybeAlign Alignment)
- public virtual bool isLegalMaskedScatter(llvm::Type * DataType, llvm::MaybeAlign Alignment)
- public virtual bool isLegalMaskedStore(llvm::Type * DataType, llvm::MaybeAlign Alignment)
- public virtual bool isLegalNTLoad(llvm::Type * DataType, llvm::Align Alignment)
- public virtual bool isLegalNTStore(llvm::Type * DataType, llvm::Align Alignment)
- public virtual bool isLegalToVectorizeLoad(llvm::LoadInst * LI) const
- public virtual bool isLegalToVectorizeLoadChain(unsigned int ChainSizeInBytes, unsigned int Alignment, unsigned int AddrSpace) const
- public virtual bool isLegalToVectorizeStore(llvm::StoreInst * SI) const
- public virtual bool isLegalToVectorizeStoreChain(unsigned int ChainSizeInBytes, unsigned int Alignment, unsigned int AddrSpace) const
- public virtual bool isLoweredToCall(const llvm::Function * F)
- public virtual bool isProfitableToHoist(llvm::Instruction * I)
- public virtual bool isSourceOfDivergence(const llvm::Value * V)
- public virtual bool isTruncateFree(llvm::Type * Ty1, llvm::Type * Ty2)
- public virtual bool isTypeLegal(llvm::Type * Ty)
- public virtual 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 virtual bool prefersVectorizedAddressing()
- public virtual bool rewriteIntrinsicWithAddressSpace(llvm::IntrinsicInst * II, llvm::Value * OldV, llvm::Value * NewV) const
- public virtual bool shouldBuildLookupTables()
- public virtual bool shouldBuildLookupTablesForConstant(llvm::Constant * C)
- public virtual bool shouldConsiderAddressTypePromotion(const llvm::Instruction & I, bool & AllowPromotionWithoutCommonHeader)
- public virtual bool shouldExpandReduction(const llvm::IntrinsicInst * II) const
- public virtual bool shouldFavorBackedgeIndex(const llvm::Loop * L) const
- public virtual bool shouldFavorPostInc() const
- public virtual bool shouldMaximizeVectorBandwidth(bool OptSize) const
- public virtual bool supportsEfficientVectorElementLoadStore()
- public virtual bool useAA()
- public virtual bool useColdCCForColdCall(llvm::Function & F)
- public virtual bool useReductionIntrinsic(unsigned int Opcode, llvm::Type * Ty, llvm::TargetTransformInfo::ReductionFlags) const
- public virtual ~Concept()
Methods
¶virtual bool LSRWithInstrQueries()
virtual bool LSRWithInstrQueries()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1250
¶virtual bool allowsMisalignedMemoryAccesses(
llvm::LLVMContext& Context,
unsigned int BitWidth,
unsigned int AddressSpace,
unsigned int Alignment,
bool* Fast)
virtual bool allowsMisalignedMemoryAccesses(
llvm::LLVMContext& Context,
unsigned int BitWidth,
unsigned int AddressSpace,
unsigned int Alignment,
bool* Fast)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1269
Parameters
- llvm::LLVMContext& Context
- unsigned int BitWidth
- unsigned int AddressSpace
- unsigned int Alignment
- bool* Fast
¶virtual bool areFunctionArgsABICompatible(
const llvm::Function* Caller,
const llvm::Function* Callee,
SmallPtrSetImpl<llvm::Argument*>& Args) const
virtual bool areFunctionArgsABICompatible(
const llvm::Function* Caller,
const llvm::Function* Callee,
SmallPtrSetImpl<llvm::Argument*>& Args) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1375
Parameters
- const llvm::Function* Caller
- const llvm::Function* Callee
- SmallPtrSetImpl<llvm::Argument*>& Args
¶virtual bool areInlineCompatible(
const llvm::Function* Caller,
const llvm::Function* Callee) const
virtual bool areInlineCompatible(
const llvm::Function* Caller,
const llvm::Function* Callee) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1372
Parameters
- const llvm::Function* Caller
- const llvm::Function* Callee
¶virtual bool canMacroFuseCmp()
virtual bool canMacroFuseCmp()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1230
¶virtual bool canSaveCmp(
llvm::Loop* L,
llvm::BranchInst** BI,
llvm::ScalarEvolution* SE,
llvm::LoopInfo* LI,
llvm::DominatorTree* DT,
llvm::AssumptionCache* AC,
llvm::TargetLibraryInfo* LibInfo)
virtual 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:1231
Parameters
- llvm::Loop* L
- llvm::BranchInst** BI
- llvm::ScalarEvolution* SE
- llvm::LoopInfo* LI
- llvm::DominatorTree* DT
- llvm::AssumptionCache* AC
- llvm::TargetLibraryInfo* LibInfo
¶virtual bool collectFlatAddressOperands(
SmallVectorImpl<int>& OpIndexes,
Intrinsic::ID IID) const
virtual bool collectFlatAddressOperands(
SmallVectorImpl<int>& OpIndexes,
Intrinsic::ID IID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1204
Parameters
- SmallVectorImpl<int>& OpIndexes
- Intrinsic::ID IID
¶virtual bool enableAggressiveInterleaving(
bool LoopHasReductions)
virtual bool enableAggressiveInterleaving(
bool LoopHasReductions)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1263
Parameters
- bool LoopHasReductions
¶virtual bool
enableInterleavedAccessVectorization()
virtual bool
enableInterleavedAccessVectorization()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1266
¶virtual bool
enableMaskedInterleavedAccessVectorization()
virtual bool
enableMaskedInterleavedAccessVectorization()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1267
¶virtual llvm::TargetTransformInfo::
MemCmpExpansionOptions
enableMemCmpExpansion(bool OptSize,
bool IsZeroCmp) const
virtual llvm::TargetTransformInfo::
MemCmpExpansionOptions
enableMemCmpExpansion(bool OptSize,
bool IsZeroCmp) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1265
Parameters
- bool OptSize
- bool IsZeroCmp
¶virtual int getAddressComputationCost(
llvm::Type* Ty,
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr)
virtual int getAddressComputationCost(
llvm::Type* Ty,
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1358
Parameters
- llvm::Type* Ty
- llvm::ScalarEvolution* SE
- const llvm::SCEV* Ptr
¶virtual 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)
virtual 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:1315
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
¶virtual int getArithmeticReductionCost(
unsigned int Opcode,
llvm::Type* Ty,
bool IsPairwiseForm)
virtual int getArithmeticReductionCost(
unsigned int Opcode,
llvm::Type* Ty,
bool IsPairwiseForm)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1346
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- bool IsPairwiseForm
¶virtual unsigned int
getAtomicMemIntrinsicMaxElementSize() const
virtual unsigned int
getAtomicMemIntrinsicMaxElementSize() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1363
¶virtual int getCFInstrCost(unsigned int Opcode)
virtual int getCFInstrCost(unsigned int Opcode)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1326
Parameters
- unsigned int Opcode
¶virtual llvm::Optional<unsigned int>
getCacheAssociativity(
llvm::TargetTransformInfo::CacheLevel Level)
const
virtual llvm::Optional<unsigned int>
getCacheAssociativity(
llvm::TargetTransformInfo::CacheLevel Level)
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1296
Parameters
- llvm::TargetTransformInfo::CacheLevel Level
¶virtual unsigned int getCacheLineSize() const
virtual unsigned int getCacheLineSize() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1294
¶virtual llvm::Optional<unsigned int> getCacheSize(
llvm::TargetTransformInfo::CacheLevel Level)
const
virtual llvm::Optional<unsigned int> getCacheSize(
llvm::TargetTransformInfo::CacheLevel Level)
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1295
Parameters
- llvm::TargetTransformInfo::CacheLevel Level
¶virtual int getCallCost(llvm::FunctionType* FTy,
int NumArgs,
const llvm::User* U)
virtual int getCallCost(llvm::FunctionType* FTy,
int NumArgs,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1182
Parameters
- llvm::FunctionType* FTy
- int NumArgs
- const llvm::User* U
¶virtual int getCallCost(const llvm::Function* F,
int NumArgs,
const llvm::User* U)
virtual int getCallCost(const llvm::Function* F,
int NumArgs,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1183
Parameters
- const llvm::Function* F
- int NumArgs
- const llvm::User* U
¶virtual int getCallCost(
const llvm::Function* F,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
virtual int getCallCost(
const llvm::Function* F,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1184
Parameters
- const llvm::Function* F
- ArrayRef<const llvm::Value*> Arguments
- const llvm::User* U
¶virtual int getCallInstrCost(
llvm::Function* F,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys)
virtual int getCallInstrCost(
llvm::Function* F,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1355
Parameters
- llvm::Function* F
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> Tys
¶virtual int getCastInstrCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::Type* Src,
const llvm::Instruction* I)
virtual int getCastInstrCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::Type* Src,
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1322
Parameters
- unsigned int Opcode
- llvm::Type* Dst
- llvm::Type* Src
- const llvm::Instruction* I
¶virtual int getCmpSelInstrCost(
unsigned int Opcode,
llvm::Type* ValTy,
llvm::Type* CondTy,
const llvm::Instruction* I)
virtual int getCmpSelInstrCost(
unsigned int Opcode,
llvm::Type* ValTy,
llvm::Type* CondTy,
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1327
Parameters
- unsigned int Opcode
- llvm::Type* ValTy
- llvm::Type* CondTy
- const llvm::Instruction* I
¶virtual unsigned int getCostOfKeepingLiveOverCall(
ArrayRef<llvm::Type*> Tys)
virtual unsigned int getCostOfKeepingLiveOverCall(
ArrayRef<llvm::Type*> Tys)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1360
Parameters
- ArrayRef<llvm::Type*> Tys
¶virtual const llvm::DataLayout& getDataLayout()
const
virtual const llvm::DataLayout& getDataLayout()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1177
¶virtual unsigned int
getEstimatedNumberOfCaseClusters(
const llvm::SwitchInst& SI,
unsigned int& JTSize,
llvm::ProfileSummaryInfo* PSI,
llvm::BlockFrequencyInfo* BFI)
virtual unsigned int
getEstimatedNumberOfCaseClusters(
const llvm::SwitchInst& SI,
unsigned int& JTSize,
llvm::ProfileSummaryInfo* PSI,
llvm::BlockFrequencyInfo* BFI)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1194
Parameters
- const llvm::SwitchInst& SI
- unsigned int& JTSize
- llvm::ProfileSummaryInfo* PSI
- llvm::BlockFrequencyInfo* BFI
¶virtual int getExtCost(const llvm::Instruction* I,
const llvm::Value* Src)
virtual int getExtCost(const llvm::Instruction* I,
const llvm::Value* Src)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1181
Parameters
- const llvm::Instruction* I
- const llvm::Value* Src
¶virtual int getExtractWithExtendCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::VectorType* VecTy,
unsigned int Index)
virtual int getExtractWithExtendCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::VectorType* VecTy,
unsigned int Index)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1324
Parameters
- unsigned int Opcode
- llvm::Type* Dst
- llvm::VectorType* VecTy
- unsigned int Index
¶virtual int getFPOpCost(llvm::Type* Ty)
virtual int getFPOpCost(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1277
Parameters
- llvm::Type* Ty
¶virtual unsigned int getFlatAddressSpace()
virtual unsigned int getFlatAddressSpace()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1203
¶virtual int getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands)
virtual int getGEPCost(
llvm::Type* PointeeType,
const llvm::Value* Ptr,
ArrayRef<const llvm::Value*> Operands)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1179
Parameters
- llvm::Type* PointeeType
- const llvm::Value* Ptr
- ArrayRef<const llvm::Value*> Operands
¶virtual unsigned int getGISelRematGlobalCost()
const
virtual unsigned int getGISelRematGlobalCost()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1397
¶virtual int getGatherScatterOpCost(
unsigned int Opcode,
llvm::Type* DataTy,
llvm::Value* Ptr,
bool VariableMask,
unsigned int Alignment)
virtual int getGatherScatterOpCost(
unsigned int Opcode,
llvm::Type* DataTy,
llvm::Value* Ptr,
bool VariableMask,
unsigned int Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1336
Parameters
- unsigned int Opcode
- llvm::Type* DataTy
- llvm::Value* Ptr
- bool VariableMask
- unsigned int Alignment
¶virtual int getInlinerVectorBonusPercent()
virtual int getInlinerVectorBonusPercent()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1187
¶virtual unsigned int
getInliningThresholdMultiplier()
virtual unsigned int
getInliningThresholdMultiplier()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1186
¶virtual int getInstructionLatency(
const llvm::Instruction* I)
virtual int getInstructionLatency(
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1398
Parameters
- const llvm::Instruction* I
¶virtual int getIntImmCodeSizeCost(
unsigned int Opc,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
virtual int getIntImmCodeSizeCost(
unsigned int Opc,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1278
Parameters
- unsigned int Opc
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶virtual int getIntImmCost(const llvm::APInt& Imm,
llvm::Type* Ty)
virtual int getIntImmCost(const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1280
Parameters
- const llvm::APInt& Imm
- llvm::Type* Ty
¶virtual int getIntImmCostInst(
unsigned int Opc,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
virtual int getIntImmCostInst(
unsigned int Opc,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1281
Parameters
- unsigned int Opc
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶virtual int getIntImmCostIntrin(
Intrinsic::ID IID,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
virtual int getIntImmCostIntrin(
Intrinsic::ID IID,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1283
Parameters
- Intrinsic::ID IID
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶virtual int getInterleavedMemoryOpCost(
unsigned int Opcode,
llvm::Type* VecTy,
unsigned int Factor,
ArrayRef<unsigned int> Indices,
unsigned int Alignment,
unsigned int AddressSpace,
bool UseMaskForCond = false,
bool UseMaskForGaps = false)
virtual int getInterleavedMemoryOpCost(
unsigned int Opcode,
llvm::Type* VecTy,
unsigned int Factor,
ArrayRef<unsigned int> Indices,
unsigned int Alignment,
unsigned int AddressSpace,
bool UseMaskForCond = false,
bool UseMaskForGaps = false)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1339
Parameters
- unsigned int Opcode
- llvm::Type* VecTy
- unsigned int Factor
- ArrayRef<unsigned int> Indices
- unsigned int Alignment
- unsigned int AddressSpace
- bool UseMaskForCond = false
- bool UseMaskForGaps = false
¶virtual int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> ParamTys,
const llvm::User* U)
virtual int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> ParamTys,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1188
Parameters
- Intrinsic::ID IID
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> ParamTys
- const llvm::User* U
¶virtual int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
virtual int getIntrinsicCost(
Intrinsic::ID IID,
llvm::Type* RetTy,
ArrayRef<const llvm::Value*> Arguments,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1190
Parameters
- Intrinsic::ID IID
- llvm::Type* RetTy
- ArrayRef<const llvm::Value*> Arguments
- const llvm::User* U
¶virtual int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Value*> Args,
llvm::FastMathFlags FMF,
unsigned int VF)
virtual 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:1353
Parameters
- Intrinsic::ID ID
- llvm::Type* RetTy
- ArrayRef<llvm::Value*> Args
- llvm::FastMathFlags FMF
- unsigned int VF
¶virtual int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys,
llvm::FastMathFlags FMF,
unsigned int ScalarizationCostPassed)
virtual 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:1350
Parameters
- Intrinsic::ID ID
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> Tys
- llvm::FastMathFlags FMF
- unsigned int ScalarizationCostPassed
¶virtual unsigned int getLoadStoreVecRegBitWidth(
unsigned int AddrSpace) const
virtual unsigned int getLoadStoreVecRegBitWidth(
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1379
Parameters
- unsigned int AddrSpace
¶virtual unsigned int getLoadVectorFactor(
unsigned int VF,
unsigned int LoadSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
virtual unsigned int getLoadVectorFactor(
unsigned int VF,
unsigned int LoadSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1388
Parameters
- unsigned int VF
- unsigned int LoadSize
- unsigned int ChainSizeInBytes
- llvm::VectorType* VecTy
¶virtual int getMaskedMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
unsigned int Alignment,
unsigned int AddressSpace)
virtual int getMaskedMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
unsigned int Alignment,
unsigned int AddressSpace)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1333
Parameters
- unsigned int Opcode
- llvm::Type* Src
- unsigned int Alignment
- unsigned int AddressSpace
¶virtual unsigned int getMaxInterleaveFactor(
unsigned int VF)
virtual unsigned int getMaxInterleaveFactor(
unsigned int VF)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1314
Parameters
- unsigned int VF
¶virtual unsigned int
getMaxPrefetchIterationsAhead() const
virtual unsigned int
getMaxPrefetchIterationsAhead() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1312
Returns
The maximum number of iterations to prefetch ahead. If the required number of iterations is more than this number, no prefetching is performed.
¶virtual int getMemcpyCost(
const llvm::Instruction* I)
virtual int getMemcpyCost(
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1193
Parameters
- const llvm::Instruction* I
¶virtual llvm::Type* getMemcpyLoopLoweringType(
llvm::LLVMContext& Context,
llvm::Value* Length,
unsigned int SrcAlign,
unsigned int DestAlign) const
virtual llvm::Type* getMemcpyLoopLoweringType(
llvm::LLVMContext& Context,
llvm::Value* Length,
unsigned int SrcAlign,
unsigned int DestAlign) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1366
Parameters
- llvm::LLVMContext& Context
- llvm::Value* Length
- unsigned int SrcAlign
- unsigned int DestAlign
¶virtual void getMemcpyLoopResidualLoweringType(
SmallVectorImpl<llvm::Type*>& OpsOut,
llvm::LLVMContext& Context,
unsigned int RemainingBytes,
unsigned int SrcAlign,
unsigned int DestAlign) const
virtual 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:1369
Parameters
- SmallVectorImpl<llvm::Type*>& OpsOut
- llvm::LLVMContext& Context
- unsigned int RemainingBytes
- unsigned int SrcAlign
- unsigned int DestAlign
¶virtual int getMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::MaybeAlign Alignment,
unsigned int AddressSpace,
const llvm::Instruction* I)
virtual 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:1331
Parameters
- unsigned int Opcode
- llvm::Type* Src
- llvm::MaybeAlign Alignment
- unsigned int AddressSpace
- const llvm::Instruction* I
¶virtual int getMinMaxReductionCost(
llvm::Type* Ty,
llvm::Type* CondTy,
bool IsPairwiseForm,
bool IsUnsigned)
virtual int getMinMaxReductionCost(
llvm::Type* Ty,
llvm::Type* CondTy,
bool IsPairwiseForm,
bool IsUnsigned)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1348
Parameters
- llvm::Type* Ty
- llvm::Type* CondTy
- bool IsPairwiseForm
- bool IsUnsigned
¶virtual unsigned int getMinPrefetchStride() const
virtual unsigned int getMinPrefetchStride() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1307
Returns
Some HW prefetchers can handle accesses up to a certain constant stride. This is the minimum stride in bytes where it makes sense to start adding SW prefetches. The default is 1, i.e. prefetch with any stride.
¶virtual unsigned int
getMinVectorRegisterBitWidth()
virtual unsigned int
getMinVectorRegisterBitWidth()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1289
¶virtual unsigned int getMinimumVF(
unsigned int ElemWidth) const
virtual unsigned int getMinimumVF(
unsigned int ElemWidth) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1291
Parameters
- unsigned int ElemWidth
¶virtual unsigned int getNumberOfParts(
llvm::Type* Tp)
virtual unsigned int getNumberOfParts(
llvm::Type* Tp)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1357
Parameters
- llvm::Type* Tp
¶virtual unsigned int getNumberOfRegisters(
unsigned int ClassID) const
virtual unsigned int getNumberOfRegisters(
unsigned int ClassID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1285
Parameters
- unsigned int ClassID
¶virtual unsigned int
getOperandsScalarizationOverhead(
ArrayRef<const llvm::Value*> Args,
unsigned int VF)
virtual unsigned int
getOperandsScalarizationOverhead(
ArrayRef<const llvm::Value*> Args,
unsigned int VF)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1260
Parameters
- ArrayRef<const llvm::Value*> Args
- unsigned int VF
¶virtual int getOperationCost(unsigned int Opcode,
llvm::Type* Ty,
llvm::Type* OpTy)
virtual int getOperationCost(unsigned int Opcode,
llvm::Type* Ty,
llvm::Type* OpTy)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1178
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- llvm::Type* OpTy
¶virtual llvm::Value*
getOrCreateResultFromMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::Type* ExpectedType)
virtual llvm::Value*
getOrCreateResultFromMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::Type* ExpectedType)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1364
Parameters
- llvm::IntrinsicInst* Inst
- llvm::Type* ExpectedType
¶virtual llvm::TargetTransformInfo::
PopcntSupportKind
getPopcntSupport(unsigned int IntTyWidthInBit)
virtual llvm::TargetTransformInfo::
PopcntSupportKind
getPopcntSupport(unsigned int IntTyWidthInBit)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1274
Parameters
- unsigned int IntTyWidthInBit
¶virtual unsigned int getPrefetchDistance() const
virtual unsigned int getPrefetchDistance() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1301
Returns
How much before a load we should place the prefetch instruction. This is currently measured in number of instructions.
¶virtual unsigned int getRegisterBitWidth(
bool Vector) const
virtual unsigned int getRegisterBitWidth(
bool Vector) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1288
Parameters
- bool Vector
¶virtual unsigned int getRegisterClassForType(
bool Vector,
llvm::Type* Ty = nullptr) const
virtual unsigned int getRegisterClassForType(
bool Vector,
llvm::Type* Ty = nullptr) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1286
Parameters
- bool Vector
- llvm::Type* Ty = nullptr
¶virtual const char* getRegisterClassName(
unsigned int ClassID) const
virtual const char* getRegisterClassName(
unsigned int ClassID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1287
Parameters
- unsigned int ClassID
¶virtual unsigned int getScalarizationOverhead(
llvm::Type* Ty,
bool Insert,
bool Extract)
virtual unsigned int getScalarizationOverhead(
llvm::Type* Ty,
bool Insert,
bool Extract)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1259
Parameters
- llvm::Type* Ty
- bool Insert
- bool Extract
¶virtual int getScalingFactorCost(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace)
virtual 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:1247
Parameters
- llvm::Type* Ty
- llvm::GlobalValue* BaseGV
- int64_t BaseOffset
- bool HasBaseReg
- int64_t Scale
- unsigned int AddrSpace
¶virtual int getShuffleCost(
llvm::TargetTransformInfo::ShuffleKind Kind,
llvm::Type* Tp,
int Index,
llvm::Type* SubTp)
virtual int getShuffleCost(
llvm::TargetTransformInfo::ShuffleKind Kind,
llvm::Type* Tp,
int Index,
llvm::Type* SubTp)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1320
Parameters
- llvm::TargetTransformInfo::ShuffleKind Kind
- llvm::Type* Tp
- int Index
- llvm::Type* SubTp
¶virtual unsigned int getStoreVectorFactor(
unsigned int VF,
unsigned int StoreSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
virtual unsigned int getStoreVectorFactor(
unsigned int VF,
unsigned int StoreSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1391
Parameters
- unsigned int VF
- unsigned int StoreSize
- unsigned int ChainSizeInBytes
- llvm::VectorType* VecTy
¶virtual bool getTgtMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::MemIntrinsicInfo& Info)
virtual bool getTgtMemIntrinsic(
llvm::IntrinsicInst* Inst,
llvm::MemIntrinsicInfo& Info)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1361
Parameters
- llvm::IntrinsicInst* Inst
- llvm::MemIntrinsicInfo& Info
¶virtual void getUnrollingPreferences(
llvm::Loop* L,
llvm::ScalarEvolution&,
llvm::TargetTransformInfo::
UnrollingPreferences& UP)
virtual void getUnrollingPreferences(
llvm::Loop* L,
llvm::ScalarEvolution&,
llvm::TargetTransformInfo::
UnrollingPreferences& UP)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1209
Parameters
¶virtual int getUserCost(
const llvm::User* U,
ArrayRef<const llvm::Value*> Operands)
virtual int getUserCost(
const llvm::User* U,
ArrayRef<const llvm::Value*> Operands)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1199
Parameters
- const llvm::User* U
- ArrayRef<const llvm::Value*> Operands
¶virtual int getVectorInstrCost(
unsigned int Opcode,
llvm::Type* Val,
unsigned int Index)
virtual int getVectorInstrCost(
unsigned int Opcode,
llvm::Type* Val,
unsigned int Index)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1329
Parameters
- unsigned int Opcode
- llvm::Type* Val
- unsigned int Index
¶virtual bool hasBranchDivergence()
virtual bool hasBranchDivergence()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1200
¶virtual bool hasDivRemOp(llvm::Type* DataType,
bool IsSigned)
virtual bool hasDivRemOp(llvm::Type* DataType,
bool IsSigned)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1244
Parameters
- llvm::Type* DataType
- bool IsSigned
¶virtual bool hasVolatileVariant(
llvm::Instruction* I,
unsigned int AddrSpace)
virtual bool hasVolatileVariant(
llvm::Instruction* I,
unsigned int AddrSpace)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1245
Parameters
- llvm::Instruction* I
- unsigned int AddrSpace
¶virtual bool haveFastSqrt(llvm::Type* Ty)
virtual bool haveFastSqrt(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1275
Parameters
- llvm::Type* Ty
¶virtual bool isAlwaysUniform(const llvm::Value* V)
virtual bool isAlwaysUniform(const llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1202
Parameters
- const llvm::Value* V
¶virtual bool isFCmpOrdCheaperThanFCmpZero(
llvm::Type* Ty)
virtual bool isFCmpOrdCheaperThanFCmpZero(
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1276
Parameters
- llvm::Type* Ty
¶virtual bool isFPVectorizationPotentiallyUnsafe()
virtual bool isFPVectorizationPotentiallyUnsafe()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1268
¶virtual bool isHardwareLoopProfitable(
llvm::Loop* L,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* LibInfo,
llvm::HardwareLoopInfo& HWLoopInfo)
virtual 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:1211
Parameters
- llvm::Loop* L
- llvm::ScalarEvolution& SE
- llvm::AssumptionCache& AC
- llvm::TargetLibraryInfo* LibInfo
- llvm::HardwareLoopInfo& HWLoopInfo
¶virtual bool isIndexedLoadLegal(
llvm::TargetTransformInfo::MemIndexedMode
Mode,
llvm::Type* Ty) const
virtual bool isIndexedLoadLegal(
llvm::TargetTransformInfo::MemIndexedMode
Mode,
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1377
Parameters
- llvm::TargetTransformInfo::MemIndexedMode Mode
- llvm::Type* Ty
¶virtual bool isIndexedStoreLegal(
llvm::TargetTransformInfo::MemIndexedMode
Mode,
llvm::Type* Ty) const
virtual bool isIndexedStoreLegal(
llvm::TargetTransformInfo::MemIndexedMode
Mode,
llvm::Type* Ty) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1378
Parameters
- llvm::TargetTransformInfo::MemIndexedMode Mode
- llvm::Type* Ty
¶virtual bool isLSRCostLess(
TargetTransformInfo::LSRCost& C1,
TargetTransformInfo::LSRCost& C2)
virtual bool isLSRCostLess(
TargetTransformInfo::LSRCost& C1,
TargetTransformInfo::LSRCost& C2)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1228
Parameters
¶virtual bool isLegalAddImmediate(int64_t Imm)
virtual bool isLegalAddImmediate(int64_t Imm)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1221
Parameters
- int64_t Imm
¶virtual bool isLegalAddressingMode(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace,
llvm::Instruction* I)
virtual 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:1223
Parameters
- llvm::Type* Ty
- llvm::GlobalValue* BaseGV
- int64_t BaseOffset
- bool HasBaseReg
- int64_t Scale
- unsigned int AddrSpace
- llvm::Instruction* I
¶virtual bool isLegalICmpImmediate(int64_t Imm)
virtual bool isLegalICmpImmediate(int64_t Imm)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1222
Parameters
- int64_t Imm
¶virtual bool isLegalMaskedCompressStore(
llvm::Type* DataType)
virtual bool isLegalMaskedCompressStore(
llvm::Type* DataType)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1242
Parameters
- llvm::Type* DataType
¶virtual bool isLegalMaskedExpandLoad(
llvm::Type* DataType)
virtual bool isLegalMaskedExpandLoad(
llvm::Type* DataType)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1243
Parameters
- llvm::Type* DataType
¶virtual bool isLegalMaskedGather(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
virtual bool isLegalMaskedGather(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1241
Parameters
- llvm::Type* DataType
- llvm::MaybeAlign Alignment
¶virtual bool isLegalMaskedLoad(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
virtual bool isLegalMaskedLoad(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1237
Parameters
- llvm::Type* DataType
- llvm::MaybeAlign Alignment
¶virtual bool isLegalMaskedScatter(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
virtual bool isLegalMaskedScatter(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1240
Parameters
- llvm::Type* DataType
- llvm::MaybeAlign Alignment
¶virtual bool isLegalMaskedStore(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
virtual bool isLegalMaskedStore(
llvm::Type* DataType,
llvm::MaybeAlign Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1236
Parameters
- llvm::Type* DataType
- llvm::MaybeAlign Alignment
¶virtual bool isLegalNTLoad(llvm::Type* DataType,
llvm::Align Alignment)
virtual bool isLegalNTLoad(llvm::Type* DataType,
llvm::Align Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1239
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶virtual bool isLegalNTStore(llvm::Type* DataType,
llvm::Align Alignment)
virtual bool isLegalNTStore(llvm::Type* DataType,
llvm::Align Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1238
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶virtual bool isLegalToVectorizeLoad(
llvm::LoadInst* LI) const
virtual bool isLegalToVectorizeLoad(
llvm::LoadInst* LI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1380
Parameters
- llvm::LoadInst* LI
¶virtual bool isLegalToVectorizeLoadChain(
unsigned int ChainSizeInBytes,
unsigned int Alignment,
unsigned int AddrSpace) const
virtual bool isLegalToVectorizeLoadChain(
unsigned int ChainSizeInBytes,
unsigned int Alignment,
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1382
Parameters
- unsigned int ChainSizeInBytes
- unsigned int Alignment
- unsigned int AddrSpace
¶virtual bool isLegalToVectorizeStore(
llvm::StoreInst* SI) const
virtual bool isLegalToVectorizeStore(
llvm::StoreInst* SI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1381
Parameters
- llvm::StoreInst* SI
¶virtual bool isLegalToVectorizeStoreChain(
unsigned int ChainSizeInBytes,
unsigned int Alignment,
unsigned int AddrSpace) const
virtual bool isLegalToVectorizeStoreChain(
unsigned int ChainSizeInBytes,
unsigned int Alignment,
unsigned int AddrSpace) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1385
Parameters
- unsigned int ChainSizeInBytes
- unsigned int Alignment
- unsigned int AddrSpace
¶virtual bool isLoweredToCall(
const llvm::Function* F)
virtual bool isLoweredToCall(
const llvm::Function* F)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1208
Parameters
- const llvm::Function* F
¶virtual bool isProfitableToHoist(
llvm::Instruction* I)
virtual bool isProfitableToHoist(
llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1252
Parameters
¶virtual bool isSourceOfDivergence(
const llvm::Value* V)
virtual bool isSourceOfDivergence(
const llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1201
Parameters
- const llvm::Value* V
¶virtual bool isTruncateFree(llvm::Type* Ty1,
llvm::Type* Ty2)
virtual bool isTruncateFree(llvm::Type* Ty1,
llvm::Type* Ty2)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1251
Parameters
- llvm::Type* Ty1
- llvm::Type* Ty2
¶virtual bool isTypeLegal(llvm::Type* Ty)
virtual bool isTypeLegal(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1254
Parameters
- llvm::Type* Ty
¶virtual bool preferPredicateOverEpilogue(
llvm::Loop* L,
llvm::LoopInfo* LI,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* TLI,
llvm::DominatorTree* DT,
const llvm::LoopAccessInfo* LAI)
virtual 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:1215
Parameters
- llvm::Loop* L
- llvm::LoopInfo* LI
- llvm::ScalarEvolution& SE
- llvm::AssumptionCache& AC
- llvm::TargetLibraryInfo* TLI
- llvm::DominatorTree* DT
- const llvm::LoopAccessInfo* LAI
¶virtual bool prefersVectorizedAddressing()
virtual bool prefersVectorizedAddressing()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1246
¶virtual bool rewriteIntrinsicWithAddressSpace(
llvm::IntrinsicInst* II,
llvm::Value* OldV,
llvm::Value* NewV) const
virtual bool rewriteIntrinsicWithAddressSpace(
llvm::IntrinsicInst* II,
llvm::Value* OldV,
llvm::Value* NewV) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1206
Parameters
- llvm::IntrinsicInst* II
- llvm::Value* OldV
- llvm::Value* NewV
¶virtual bool shouldBuildLookupTables()
virtual bool shouldBuildLookupTables()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1255
¶virtual bool shouldBuildLookupTablesForConstant(
llvm::Constant* C)
virtual bool shouldBuildLookupTablesForConstant(
llvm::Constant* C)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1256
Parameters
¶virtual bool shouldConsiderAddressTypePromotion(
const llvm::Instruction& I,
bool& AllowPromotionWithoutCommonHeader)
virtual bool shouldConsiderAddressTypePromotion(
const llvm::Instruction& I,
bool& AllowPromotionWithoutCommonHeader)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1292
Parameters
- const llvm::Instruction& I
- bool& AllowPromotionWithoutCommonHeader
¶virtual bool shouldExpandReduction(
const llvm::IntrinsicInst* II) const
virtual bool shouldExpandReduction(
const llvm::IntrinsicInst* II) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1396
Parameters
- const llvm::IntrinsicInst* II
¶virtual bool shouldFavorBackedgeIndex(
const llvm::Loop* L) const
virtual bool shouldFavorBackedgeIndex(
const llvm::Loop* L) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1235
Parameters
- const llvm::Loop* L
¶virtual bool shouldFavorPostInc() const
virtual bool shouldFavorPostInc() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1234
¶virtual bool shouldMaximizeVectorBandwidth(
bool OptSize) const
virtual bool shouldMaximizeVectorBandwidth(
bool OptSize) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1290
Parameters
- bool OptSize
¶virtual bool
supportsEfficientVectorElementLoadStore()
virtual bool
supportsEfficientVectorElementLoadStore()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1262
¶virtual bool useAA()
virtual bool useAA()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1253
¶virtual bool useColdCCForColdCall(
llvm::Function& F)
virtual bool useColdCCForColdCall(
llvm::Function& F)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1257
Parameters
¶virtual bool useReductionIntrinsic(
unsigned int Opcode,
llvm::Type* Ty,
llvm::TargetTransformInfo::ReductionFlags)
const
virtual bool useReductionIntrinsic(
unsigned int Opcode,
llvm::Type* Ty,
llvm::TargetTransformInfo::ReductionFlags)
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1394
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- llvm::TargetTransformInfo::ReductionFlags
¶virtual ~Concept()
virtual ~Concept()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1176