class TargetTransformInfoImplBase
Declaration
class TargetTransformInfoImplBase { /* full declaration omitted */ };
Description
Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:31
Member Variables
- protected const llvm::DataLayout& DL
Method Overview
- public bool LSRWithInstrQueries()
- public TargetTransformInfoImplBase(const llvm::TargetTransformInfoImplBase & Arg)
- protected TargetTransformInfoImplBase(const llvm::DataLayout & DL)
- public TargetTransformInfoImplBase(llvm::TargetTransformInfoImplBase && Arg)
- 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 TTI::MemCmpExpansionOptions enableMemCmpExpansion(bool OptSize, bool IsZeroCmp) const
- public unsigned int getAddressComputationCost(llvm::Type * Tp, llvm::ScalarEvolution *, const llvm::SCEV *)
- public unsigned int getArithmeticInstrCost(unsigned int Opcode, llvm::Type * Ty, TTI::OperandValueKind Opd1Info, TTI::OperandValueKind Opd2Info, TTI::OperandValueProperties Opd1PropInfo, TTI::OperandValueProperties Opd2PropInfo, ArrayRef<const llvm::Value *> Args, const llvm::Instruction * CxtI = nullptr)
- public unsigned int getArithmeticReductionCost(unsigned int, llvm::Type *, bool)
- public unsigned int getAtomicMemIntrinsicMaxElementSize() const
- public unsigned int getCFInstrCost(unsigned int Opcode)
- public llvm::Optional<unsigned int> getCacheAssociativity(TargetTransformInfo::CacheLevel Level) const
- public unsigned int getCacheLineSize() const
- public llvm::Optional<unsigned int> getCacheSize(TargetTransformInfo::CacheLevel Level) const
- public unsigned int getCallCost(llvm::FunctionType * FTy, int NumArgs, const llvm::User * U)
- public unsigned int getCallInstrCost(llvm::Function * F, llvm::Type * RetTy, ArrayRef<llvm::Type *> Tys)
- public unsigned int getCastInstrCost(unsigned int Opcode, llvm::Type * Dst, llvm::Type * Src, const llvm::Instruction * I)
- public unsigned int getCmpSelInstrCost(unsigned int Opcode, llvm::Type * ValTy, llvm::Type * CondTy, const llvm::Instruction * I)
- protected const llvm::SCEVConstant * getConstantStrideStep(llvm::ScalarEvolution * SE, const llvm::SCEV * Ptr)
- 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 unsigned int getExtractWithExtendCost(unsigned int Opcode, llvm::Type * Dst, llvm::VectorType * VecTy, unsigned int Index)
- public unsigned 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 unsigned 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 getIntImmCodeSizeCost(unsigned int Opcode, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public unsigned int getIntImmCost(const llvm::APInt & Imm, llvm::Type * Ty)
- public unsigned int getIntImmCostInst(unsigned int Opcode, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public unsigned int getIntImmCostIntrin(Intrinsic::ID IID, unsigned int Idx, const llvm::APInt & Imm, llvm::Type * Ty)
- public unsigned 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 unsigned int getIntrinsicInstrCost(Intrinsic::ID ID, llvm::Type * RetTy, ArrayRef<llvm::Type *> Tys, llvm::FastMathFlags FMF, unsigned int ScalarizationCostPassed)
- public unsigned 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 unsigned 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 unsigned 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 unsigned int getMemoryOpCost(unsigned int Opcode, llvm::Type * Src, llvm::MaybeAlign Alignment, unsigned int AddressSpace, const llvm::Instruction * I)
- public unsigned int getMinMaxReductionCost(llvm::Type *, llvm::Type *, bool, bool)
- 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 unsigned int getOperationCost(unsigned int Opcode, llvm::Type * Ty, llvm::Type * OpTy)
- public llvm::Value * getOrCreateResultFromMemIntrinsic(llvm::IntrinsicInst * Inst, llvm::Type * ExpectedType)
- public TTI::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 unsigned int getShuffleCost(TTI::ShuffleKind Kind, llvm::Type * Ty, 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 *, llvm::ScalarEvolution &, TTI::UnrollingPreferences &)
- public unsigned 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)
- protected bool isConstantStridedAccessLessThan(llvm::ScalarEvolution * SE, const llvm::SCEV * Ptr, int64_t MergeDistance)
- 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(TTI::MemIndexedMode Mode, llvm::Type * Ty, const llvm::DataLayout & DL) const
- public bool isIndexedStoreLegal(TTI::MemIndexedMode Mode, llvm::Type * Ty, const llvm::DataLayout & DL) const
- public bool isLSRCostLess(TTI::LSRCost & C1, TTI::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 = nullptr)
- 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)
- protected bool isStridedAccess(const llvm::SCEV * Ptr)
- public bool isTruncateFree(llvm::Type * Ty1, llvm::Type * Ty2)
- public bool isTypeLegal(llvm::Type * Ty)
- protected unsigned int minRequiredElementSize(const llvm::Value * Val, bool & isSigned)
- 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) const
- 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, TTI::ReductionFlags Flags) const
Methods
¶bool LSRWithInstrQueries()
bool LSRWithInstrQueries()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:302
¶TargetTransformInfoImplBase(
const llvm::TargetTransformInfoImplBase& Arg)
TargetTransformInfoImplBase(
const llvm::TargetTransformInfoImplBase& Arg)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:41
Parameters
- const llvm::TargetTransformInfoImplBase& Arg
¶TargetTransformInfoImplBase(
const llvm::DataLayout& DL)
TargetTransformInfoImplBase(
const llvm::DataLayout& DL)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:37
Parameters
- const llvm::DataLayout& DL
¶TargetTransformInfoImplBase(
llvm::TargetTransformInfoImplBase&& Arg)
TargetTransformInfoImplBase(
llvm::TargetTransformInfoImplBase&& Arg)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:43
Parameters
¶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/TargetTransformInfoImpl.h:339
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/TargetTransformInfoImpl.h:558
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/TargetTransformInfoImpl.h:550
Parameters
- const llvm::Function* Caller
- const llvm::Function* Callee
¶bool canMacroFuseCmp()
bool canMacroFuseCmp()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:245
¶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/TargetTransformInfoImpl.h:247
Parameters
- llvm::Loop* L
- llvm::BranchInst** BI
- llvm::ScalarEvolution* SE
- llvm::LoopInfo* LI
- llvm::DominatorTree* DT
- llvm::AssumptionCache* AC
- llvm::TargetLibraryInfo* LibInfo
¶bool collectFlatAddressOperands(
SmallVectorImpl<int>& OpIndexes,
Intrinsic::ID IID) const
bool collectFlatAddressOperands(
SmallVectorImpl<int>& OpIndexes,
Intrinsic::ID IID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:163
Parameters
- SmallVectorImpl<int>& OpIndexes
- Intrinsic::ID IID
¶bool enableAggressiveInterleaving(
bool LoopHasReductions)
bool enableAggressiveInterleaving(
bool LoopHasReductions)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:326
Parameters
- bool LoopHasReductions
¶bool enableInterleavedAccessVectorization()
bool enableInterleavedAccessVectorization()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:333
¶bool enableMaskedInterleavedAccessVectorization()
bool enableMaskedInterleavedAccessVectorization()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:335
¶TTI::MemCmpExpansionOptions enableMemCmpExpansion(
bool OptSize,
bool IsZeroCmp) const
TTI::MemCmpExpansionOptions enableMemCmpExpansion(
bool OptSize,
bool IsZeroCmp) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:328
Parameters
- bool OptSize
- bool IsZeroCmp
¶unsigned int getAddressComputationCost(
llvm::Type* Tp,
llvm::ScalarEvolution*,
const llvm::SCEV*)
unsigned int getAddressComputationCost(
llvm::Type* Tp,
llvm::ScalarEvolution*,
const llvm::SCEV*)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:507
Parameters
- llvm::Type* Tp
- llvm::ScalarEvolution*
- const llvm::SCEV*
¶unsigned int getArithmeticInstrCost(
unsigned int Opcode,
llvm::Type* Ty,
TTI::OperandValueKind Opd1Info,
TTI::OperandValueKind Opd2Info,
TTI::OperandValueProperties Opd1PropInfo,
TTI::OperandValueProperties Opd2PropInfo,
ArrayRef<const llvm::Value*> Args,
const llvm::Instruction* CxtI = nullptr)
unsigned int getArithmeticInstrCost(
unsigned int Opcode,
llvm::Type* Ty,
TTI::OperandValueKind Opd1Info,
TTI::OperandValueKind Opd2Info,
TTI::OperandValueProperties Opd1PropInfo,
TTI::OperandValueProperties Opd2PropInfo,
ArrayRef<const llvm::Value*> Args,
const llvm::Instruction* CxtI = nullptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:432
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- TTI::OperandValueKind Opd1Info
- TTI::OperandValueKind Opd2Info
- TTI::OperandValueProperties Opd1PropInfo
- TTI::OperandValueProperties Opd2PropInfo
- ArrayRef<const llvm::Value*> Args
- const llvm::Instruction* CxtI = nullptr
¶unsigned int getArithmeticReductionCost(
unsigned int,
llvm::Type*,
bool)
unsigned int getArithmeticReductionCost(
unsigned int,
llvm::Type*,
bool)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:512
Parameters
- unsigned int
- llvm::Type*
- bool
¶unsigned int getAtomicMemIntrinsicMaxElementSize()
const
unsigned int getAtomicMemIntrinsicMaxElementSize()
const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:522
¶unsigned int getCFInstrCost(unsigned int Opcode)
unsigned int getCFInstrCost(unsigned int Opcode)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:455
Parameters
- unsigned int Opcode
¶llvm::Optional<unsigned int>
getCacheAssociativity(
TargetTransformInfo::CacheLevel Level) const
llvm::Optional<unsigned int>
getCacheAssociativity(
TargetTransformInfo::CacheLevel Level) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:414
Parameters
- TargetTransformInfo::CacheLevel Level
¶unsigned int getCacheLineSize() const
unsigned int getCacheLineSize() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:402
¶llvm::Optional<unsigned int> getCacheSize(
TargetTransformInfo::CacheLevel Level) const
llvm::Optional<unsigned int> getCacheSize(
TargetTransformInfo::CacheLevel Level) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:404
Parameters
- TargetTransformInfo::CacheLevel Level
¶unsigned int getCallCost(llvm::FunctionType* FTy,
int NumArgs,
const llvm::User* U)
unsigned int getCallCost(llvm::FunctionType* FTy,
int NumArgs,
const llvm::User* U)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:130
Parameters
- llvm::FunctionType* FTy
- int NumArgs
- const llvm::User* U
¶unsigned int getCallInstrCost(
llvm::Function* F,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys)
unsigned int getCallInstrCost(
llvm::Function* F,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:501
Parameters
- llvm::Function* F
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> Tys
¶unsigned int getCastInstrCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::Type* Src,
const llvm::Instruction* I)
unsigned int getCastInstrCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::Type* Src,
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:447
Parameters
- unsigned int Opcode
- llvm::Type* Dst
- llvm::Type* Src
- const llvm::Instruction* I
¶unsigned int getCmpSelInstrCost(
unsigned int Opcode,
llvm::Type* ValTy,
llvm::Type* CondTy,
const llvm::Instruction* I)
unsigned int getCmpSelInstrCost(
unsigned int Opcode,
llvm::Type* ValTy,
llvm::Type* CondTy,
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:457
Parameters
- unsigned int Opcode
- llvm::Type* ValTy
- llvm::Type* CondTy
- const llvm::Instruction* I
¶const llvm::SCEVConstant* getConstantStrideStep(
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr)
const llvm::SCEVConstant* getConstantStrideStep(
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:681
Parameters
- llvm::ScalarEvolution* SE
- const llvm::SCEV* Ptr
¶unsigned int getCostOfKeepingLiveOverCall(
ArrayRef<llvm::Type*> Tys)
unsigned int getCostOfKeepingLiveOverCall(
ArrayRef<llvm::Type*> Tys)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:516
Parameters
- ArrayRef<llvm::Type*> Tys
¶const llvm::DataLayout& getDataLayout() const
const llvm::DataLayout& getDataLayout() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:45
¶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/TargetTransformInfoImpl.h:116
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/TargetTransformInfoImpl.h:126
Parameters
- const llvm::Instruction* I
- const llvm::Value* Src
¶unsigned int getExtractWithExtendCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::VectorType* VecTy,
unsigned int Index)
unsigned int getExtractWithExtendCost(
unsigned int Opcode,
llvm::Type* Dst,
llvm::VectorType* VecTy,
unsigned int Index)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:450
Parameters
- unsigned int Opcode
- llvm::Type* Dst
- llvm::VectorType* VecTy
- unsigned int Index
¶unsigned int getFPOpCost(llvm::Type* Ty)
unsigned int getFPOpCost(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:353
Parameters
- llvm::Type* Ty
¶unsigned int getFlatAddressSpace()
unsigned int getFlatAddressSpace()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:159
¶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/TargetTransformInfoImpl.h:105
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/TargetTransformInfoImpl.h:615
¶unsigned int getGatherScatterOpCost(
unsigned int Opcode,
llvm::Type* DataTy,
llvm::Value* Ptr,
bool VariableMask,
unsigned int Alignment)
unsigned int getGatherScatterOpCost(
unsigned int Opcode,
llvm::Type* DataTy,
llvm::Value* Ptr,
bool VariableMask,
unsigned int Alignment)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:476
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/TargetTransformInfoImpl.h:147
¶unsigned int getInliningThresholdMultiplier()
unsigned int getInliningThresholdMultiplier()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:145
¶int getIntImmCodeSizeCost(unsigned int Opcode,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
int getIntImmCodeSizeCost(unsigned int Opcode,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:355
Parameters
- unsigned int Opcode
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶unsigned int getIntImmCost(const llvm::APInt& Imm,
llvm::Type* Ty)
unsigned int getIntImmCost(const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:360
Parameters
- const llvm::APInt& Imm
- llvm::Type* Ty
¶unsigned int getIntImmCostInst(
unsigned int Opcode,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
unsigned int getIntImmCostInst(
unsigned int Opcode,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:362
Parameters
- unsigned int Opcode
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶unsigned int getIntImmCostIntrin(
Intrinsic::ID IID,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
unsigned int getIntImmCostIntrin(
Intrinsic::ID IID,
unsigned int Idx,
const llvm::APInt& Imm,
llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:367
Parameters
- Intrinsic::ID IID
- unsigned int Idx
- const llvm::APInt& Imm
- llvm::Type* Ty
¶unsigned 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)
unsigned 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/TargetTransformInfoImpl.h:482
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
¶unsigned int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys,
llvm::FastMathFlags FMF,
unsigned int ScalarizationCostPassed)
unsigned int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Type*> Tys,
llvm::FastMathFlags FMF,
unsigned int ScalarizationCostPassed)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:491
Parameters
- Intrinsic::ID ID
- llvm::Type* RetTy
- ArrayRef<llvm::Type*> Tys
- llvm::FastMathFlags FMF
- unsigned int ScalarizationCostPassed
¶unsigned int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Value*> Args,
llvm::FastMathFlags FMF,
unsigned int VF)
unsigned int getIntrinsicInstrCost(
Intrinsic::ID ID,
llvm::Type* RetTy,
ArrayRef<llvm::Value*> Args,
llvm::FastMathFlags FMF,
unsigned int VF)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:496
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/TargetTransformInfoImpl.h:576
Parameters
- unsigned int AddrSpace
¶unsigned int getLoadVectorFactor(
unsigned int VF,
unsigned int LoadSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
unsigned int getLoadVectorFactor(
unsigned int VF,
unsigned int LoadSize,
unsigned int ChainSizeInBytes,
llvm::VectorType* VecTy) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:594
Parameters
- unsigned int VF
- unsigned int LoadSize
- unsigned int ChainSizeInBytes
- llvm::VectorType* VecTy
¶unsigned int getMaskedMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
unsigned int Alignment,
unsigned int AddressSpace)
unsigned int getMaskedMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
unsigned int Alignment,
unsigned int AddressSpace)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:471
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/TargetTransformInfoImpl.h:430
Parameters
- unsigned int VF
¶unsigned int getMaxPrefetchIterationsAhead() const
unsigned int getMaxPrefetchIterationsAhead() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:428
¶unsigned int getMemcpyCost(
const llvm::Instruction* I)
unsigned int getMemcpyCost(
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:149
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/TargetTransformInfoImpl.h:536
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/TargetTransformInfoImpl.h:541
Parameters
- SmallVectorImpl<llvm::Type*>& OpsOut
- llvm::LLVMContext& Context
- unsigned int RemainingBytes
- unsigned int SrcAlign
- unsigned int DestAlign
¶unsigned int getMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::MaybeAlign Alignment,
unsigned int AddressSpace,
const llvm::Instruction* I)
unsigned int getMemoryOpCost(
unsigned int Opcode,
llvm::Type* Src,
llvm::MaybeAlign Alignment,
unsigned int AddressSpace,
const llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:466
Parameters
- unsigned int Opcode
- llvm::Type* Src
- llvm::MaybeAlign Alignment
- unsigned int AddressSpace
- const llvm::Instruction* I
¶unsigned int getMinMaxReductionCost(llvm::Type*,
llvm::Type*,
bool,
bool)
unsigned int getMinMaxReductionCost(llvm::Type*,
llvm::Type*,
bool,
bool)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:514
Parameters
- llvm::Type*
- llvm::Type*
- bool
- bool
¶unsigned int getMinPrefetchStride() const
unsigned int getMinPrefetchStride() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:427
¶unsigned int getMinVectorRegisterBitWidth()
unsigned int getMinVectorRegisterBitWidth()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:389
¶unsigned int getMinimumVF(
unsigned int ElemWidth) const
unsigned int getMinimumVF(
unsigned int ElemWidth) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:393
Parameters
- unsigned int ElemWidth
¶unsigned int getNumberOfParts(llvm::Type* Tp)
unsigned int getNumberOfParts(llvm::Type* Tp)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:505
Parameters
- llvm::Type* Tp
¶unsigned int getNumberOfRegisters(
unsigned int ClassID) const
unsigned int getNumberOfRegisters(
unsigned int ClassID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:372
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/TargetTransformInfoImpl.h:321
Parameters
- ArrayRef<const llvm::Value*> Args
- unsigned int VF
¶unsigned int getOperationCost(unsigned int Opcode,
llvm::Type* Ty,
llvm::Type* OpTy)
unsigned int getOperationCost(unsigned int Opcode,
llvm::Type* Ty,
llvm::Type* OpTy)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:47
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/TargetTransformInfoImpl.h:531
Parameters
- llvm::IntrinsicInst* Inst
- llvm::Type* ExpectedType
¶TTI::PopcntSupportKind getPopcntSupport(
unsigned int IntTyWidthInBit)
TTI::PopcntSupportKind getPopcntSupport(
unsigned int IntTyWidthInBit)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:345
Parameters
- unsigned int IntTyWidthInBit
¶unsigned int getPrefetchDistance() const
unsigned int getPrefetchDistance() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:426
¶unsigned int getRegisterBitWidth(
bool Vector) const
unsigned int getRegisterBitWidth(
bool Vector) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:387
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/TargetTransformInfoImpl.h:374
Parameters
- bool Vector
- llvm::Type* Ty = nullptr
¶const char* getRegisterClassName(
unsigned int ClassID) const
const char* getRegisterClassName(
unsigned int ClassID) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:378
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/TargetTransformInfoImpl.h:317
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/TargetTransformInfoImpl.h:293
Parameters
- llvm::Type* Ty
- llvm::GlobalValue* BaseGV
- int64_t BaseOffset
- bool HasBaseReg
- int64_t Scale
- unsigned int AddrSpace
¶unsigned int getShuffleCost(TTI::ShuffleKind Kind,
llvm::Type* Ty,
int Index,
llvm::Type* SubTp)
unsigned int getShuffleCost(TTI::ShuffleKind Kind,
llvm::Type* Ty,
int Index,
llvm::Type* SubTp)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:442
Parameters
- TTI::ShuffleKind Kind
- llvm::Type* Ty
- 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/TargetTransformInfoImpl.h:600
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/TargetTransformInfoImpl.h:518
Parameters
- llvm::IntrinsicInst* Inst
- llvm::MemIntrinsicInfo& Info
¶void getUnrollingPreferences(
llvm::Loop*,
llvm::ScalarEvolution&,
TTI::UnrollingPreferences&)
void getUnrollingPreferences(
llvm::Loop*,
llvm::ScalarEvolution&,
TTI::UnrollingPreferences&)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:223
Parameters
¶unsigned int getVectorInstrCost(
unsigned int Opcode,
llvm::Type* Val,
unsigned int Index)
unsigned int getVectorInstrCost(
unsigned int Opcode,
llvm::Type* Val,
unsigned int Index)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:462
Parameters
- unsigned int Opcode
- llvm::Type* Val
- unsigned int Index
¶bool hasBranchDivergence()
bool hasBranchDivergence()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:153
¶bool hasDivRemOp(llvm::Type* DataType,
bool IsSigned)
bool hasDivRemOp(llvm::Type* DataType,
bool IsSigned)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:287
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/TargetTransformInfoImpl.h:289
Parameters
- llvm::Instruction* I
- unsigned int AddrSpace
¶bool haveFastSqrt(llvm::Type* Ty)
bool haveFastSqrt(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:349
Parameters
- llvm::Type* Ty
¶bool isAlwaysUniform(const llvm::Value* V)
bool isAlwaysUniform(const llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:157
Parameters
- const llvm::Value* V
¶bool isConstantStridedAccessLessThan(
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr,
int64_t MergeDistance)
bool isConstantStridedAccessLessThan(
llvm::ScalarEvolution* SE,
const llvm::SCEV* Ptr,
int64_t MergeDistance)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:689
Parameters
- llvm::ScalarEvolution* SE
- const llvm::SCEV* Ptr
- int64_t MergeDistance
¶bool isFCmpOrdCheaperThanFCmpZero(llvm::Type* Ty)
bool isFCmpOrdCheaperThanFCmpZero(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:351
Parameters
- llvm::Type* Ty
¶bool isFPVectorizationPotentiallyUnsafe()
bool isFPVectorizationPotentiallyUnsafe()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:337
¶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/TargetTransformInfoImpl.h:209
Parameters
- llvm::Loop* L
- llvm::ScalarEvolution& SE
- llvm::AssumptionCache& AC
- llvm::TargetLibraryInfo* LibInfo
- llvm::HardwareLoopInfo& HWLoopInfo
¶bool isIndexedLoadLegal(
TTI::MemIndexedMode Mode,
llvm::Type* Ty,
const llvm::DataLayout& DL) const
bool isIndexedLoadLegal(
TTI::MemIndexedMode Mode,
llvm::Type* Ty,
const llvm::DataLayout& DL) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:566
Parameters
- TTI::MemIndexedMode Mode
- llvm::Type* Ty
- const llvm::DataLayout& DL
¶bool isIndexedStoreLegal(
TTI::MemIndexedMode Mode,
llvm::Type* Ty,
const llvm::DataLayout& DL) const
bool isIndexedStoreLegal(
TTI::MemIndexedMode Mode,
llvm::Type* Ty,
const llvm::DataLayout& DL) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:571
Parameters
- TTI::MemIndexedMode Mode
- llvm::Type* Ty
- const llvm::DataLayout& DL
¶bool isLSRCostLess(TTI::LSRCost& C1,
TTI::LSRCost& C2)
bool isLSRCostLess(TTI::LSRCost& C1,
TTI::LSRCost& C2)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:238
Parameters
- TTI::LSRCost& C1
- TTI::LSRCost& C2
¶bool isLegalAddImmediate(int64_t Imm)
bool isLegalAddImmediate(int64_t Imm)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:226
Parameters
- int64_t Imm
¶bool isLegalAddressingMode(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace,
llvm::Instruction* I = nullptr)
bool isLegalAddressingMode(
llvm::Type* Ty,
llvm::GlobalValue* BaseGV,
int64_t BaseOffset,
bool HasBaseReg,
int64_t Scale,
unsigned int AddrSpace,
llvm::Instruction* I = nullptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:230
Parameters
- llvm::Type* Ty
- llvm::GlobalValue* BaseGV
- int64_t BaseOffset
- bool HasBaseReg
- int64_t Scale
- unsigned int AddrSpace
- llvm::Instruction* I = nullptr
¶bool isLegalICmpImmediate(int64_t Imm)
bool isLegalICmpImmediate(int64_t Imm)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:228
Parameters
- int64_t Imm
¶bool isLegalMaskedCompressStore(
llvm::Type* DataType)
bool isLegalMaskedCompressStore(
llvm::Type* DataType)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:283
Parameters
- llvm::Type* DataType
¶bool isLegalMaskedExpandLoad(llvm::Type* DataType)
bool isLegalMaskedExpandLoad(llvm::Type* DataType)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:285
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/TargetTransformInfoImpl.h:279
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/TargetTransformInfoImpl.h:259
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/TargetTransformInfoImpl.h:275
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/TargetTransformInfoImpl.h:257
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/TargetTransformInfoImpl.h:268
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/TargetTransformInfoImpl.h:261
Parameters
- llvm::Type* DataType
- llvm::Align Alignment
¶bool isLegalToVectorizeLoad(
llvm::LoadInst* LI) const
bool isLegalToVectorizeLoad(
llvm::LoadInst* LI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:578
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/TargetTransformInfoImpl.h:582
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/TargetTransformInfoImpl.h:580
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/TargetTransformInfoImpl.h:588
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/TargetTransformInfoImpl.h:173
Parameters
- const llvm::Function* F
¶bool isProfitableToHoist(llvm::Instruction* I)
bool isProfitableToHoist(llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:306
Parameters
¶bool isSourceOfDivergence(const llvm::Value* V)
bool isSourceOfDivergence(const llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:155
Parameters
- const llvm::Value* V
¶bool isStridedAccess(const llvm::SCEV* Ptr)
bool isStridedAccess(const llvm::SCEV* Ptr)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:677
Parameters
- const llvm::SCEV* Ptr
¶bool isTruncateFree(llvm::Type* Ty1,
llvm::Type* Ty2)
bool isTruncateFree(llvm::Type* Ty1,
llvm::Type* Ty2)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:304
Parameters
- llvm::Type* Ty1
- llvm::Type* Ty2
¶bool isTypeLegal(llvm::Type* Ty)
bool isTypeLegal(llvm::Type* Ty)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:310
Parameters
- llvm::Type* Ty
¶unsigned int minRequiredElementSize(
const llvm::Value* Val,
bool& isSigned)
unsigned int minRequiredElementSize(
const llvm::Value* Val,
bool& isSigned)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:622
Parameters
- const llvm::Value* Val
- bool& isSigned
¶bool preferPredicateOverEpilogue(
llvm::Loop* L,
llvm::LoopInfo* LI,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* TLI,
llvm::DominatorTree* DT,
const llvm::LoopAccessInfo* LAI) const
bool preferPredicateOverEpilogue(
llvm::Loop* L,
llvm::LoopInfo* LI,
llvm::ScalarEvolution& SE,
llvm::AssumptionCache& AC,
llvm::TargetLibraryInfo* TLI,
llvm::DominatorTree* DT,
const llvm::LoopAccessInfo* LAI) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:216
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/TargetTransformInfoImpl.h:291
¶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/TargetTransformInfoImpl.h:168
Parameters
- llvm::IntrinsicInst* II
- llvm::Value* OldV
- llvm::Value* NewV
¶bool shouldBuildLookupTables()
bool shouldBuildLookupTables()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:312
¶bool shouldBuildLookupTablesForConstant(
llvm::Constant* C)
bool shouldBuildLookupTablesForConstant(
llvm::Constant* C)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:313
Parameters
¶bool shouldConsiderAddressTypePromotion(
const llvm::Instruction& I,
bool& AllowPromotionWithoutCommonHeader)
bool shouldConsiderAddressTypePromotion(
const llvm::Instruction& I,
bool& AllowPromotionWithoutCommonHeader)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:396
Parameters
- const llvm::Instruction& I
- bool& AllowPromotionWithoutCommonHeader
¶bool shouldExpandReduction(
const llvm::IntrinsicInst* II) const
bool shouldExpandReduction(
const llvm::IntrinsicInst* II) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:611
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/TargetTransformInfoImpl.h:255
Parameters
- const llvm::Loop* L
¶bool shouldFavorPostInc() const
bool shouldFavorPostInc() const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:253
¶bool shouldMaximizeVectorBandwidth(
bool OptSize) const
bool shouldMaximizeVectorBandwidth(
bool OptSize) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:391
Parameters
- bool OptSize
¶bool supportsEfficientVectorElementLoadStore()
bool supportsEfficientVectorElementLoadStore()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:324
¶bool useAA()
bool useAA()
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:308
¶bool useColdCCForColdCall(llvm::Function& F)
bool useColdCCForColdCall(llvm::Function& F)
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:315
Parameters
¶bool useReductionIntrinsic(
unsigned int Opcode,
llvm::Type* Ty,
TTI::ReductionFlags Flags) const
bool useReductionIntrinsic(
unsigned int Opcode,
llvm::Type* Ty,
TTI::ReductionFlags Flags) const
Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:606
Parameters
- unsigned int Opcode
- llvm::Type* Ty
- TTI::ReductionFlags Flags