|
|
bool | allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, Align Alignment, bool *Fast) const |
|
bool | hasBranchDivergence () |
|
bool | useGPUDivergenceAnalysis () |
|
bool | isSourceOfDivergence (const Value *V) |
|
bool | isAlwaysUniform (const Value *V) |
|
unsigned | getFlatAddressSpace () |
|
bool | collectFlatAddressOperands (SmallVectorImpl< int > &OpIndexes, Intrinsic::ID IID) const |
|
bool | isNoopAddrSpaceCast (unsigned FromAS, unsigned ToAS) const |
|
unsigned | getAssumedAddrSpace (const Value *V) const |
|
std::pair< const Value *, unsigned > | getPredicatedAddrSpace (const Value *V) const |
|
Value * | rewriteIntrinsicWithAddressSpace (IntrinsicInst *II, Value *OldV, Value *NewV) const |
|
bool | isLegalAddImmediate (int64_t imm) |
|
bool | isLegalICmpImmediate (int64_t imm) |
|
bool | isLegalAddressingMode (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace, Instruction *I=nullptr) |
|
unsigned | getStoreMinimumVF (unsigned VF, Type *ScalarMemTy, Type *ScalarValTy) const |
|
bool | isIndexedLoadLegal (TTI::MemIndexedMode M, Type *Ty, const DataLayout &DL) const |
|
bool | isIndexedStoreLegal (TTI::MemIndexedMode M, Type *Ty, const DataLayout &DL) const |
|
bool | isLSRCostLess (TTI::LSRCost C1, TTI::LSRCost C2) |
|
bool | isNumRegsMajorCostOfLSR () |
|
bool | isProfitableLSRChainElement (Instruction *I) |
|
InstructionCost | getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace) |
|
bool | isTruncateFree (Type *Ty1, Type *Ty2) |
|
bool | isProfitableToHoist (Instruction *I) |
|
bool | useAA () const |
|
bool | isTypeLegal (Type *Ty) |
|
unsigned | getRegUsageForType (Type *Ty) |
|
InstructionCost | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands, TTI::TargetCostKind CostKind) |
|
unsigned | getEstimatedNumberOfCaseClusters (const SwitchInst &SI, unsigned &JumpTableSize, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI) |
|
bool | shouldBuildLookupTables () |
|
bool | shouldBuildRelLookupTables () const |
|
bool | haveFastSqrt (Type *Ty) |
|
bool | isFCmpOrdCheaperThanFCmpZero (Type *Ty) |
|
InstructionCost | getFPOpCost (Type *Ty) |
|
unsigned | getInliningThresholdMultiplier () |
|
unsigned | adjustInliningThreshold (const CallBase *CB) |
|
int | getInlinerVectorBonusPercent () |
|
void | getUnrollingPreferences (Loop *L, ScalarEvolution &SE, TTI::UnrollingPreferences &UP, OptimizationRemarkEmitter *ORE) |
|
void | getPeelingPreferences (Loop *L, ScalarEvolution &SE, TTI::PeelingPreferences &PP) |
|
bool | isHardwareLoopProfitable (Loop *L, ScalarEvolution &SE, AssumptionCache &AC, TargetLibraryInfo *LibInfo, HardwareLoopInfo &HWLoopInfo) |
|
bool | preferPredicateOverEpilogue (Loop *L, LoopInfo *LI, ScalarEvolution &SE, AssumptionCache &AC, TargetLibraryInfo *TLI, DominatorTree *DT, const LoopAccessInfo *LAI) |
|
bool | emitGetActiveLaneMask () |
|
Optional< Instruction * > | instCombineIntrinsic (InstCombiner &IC, IntrinsicInst &II) |
|
Optional< Value * > | simplifyDemandedUseBitsIntrinsic (InstCombiner &IC, IntrinsicInst &II, APInt DemandedMask, KnownBits &Known, bool &KnownBitsComputed) |
|
Optional< Value * > | simplifyDemandedVectorEltsIntrinsic (InstCombiner &IC, IntrinsicInst &II, APInt DemandedElts, APInt &UndefElts, APInt &UndefElts2, APInt &UndefElts3, std::function< void(Instruction *, unsigned, APInt, APInt &)> SimplifyAndSetOp) |
|
InstructionCost | getInstructionLatency (const Instruction *I) |
|
virtual Optional< unsigned > | getCacheSize (TargetTransformInfo::CacheLevel Level) const |
|
virtual Optional< unsigned > | getCacheAssociativity (TargetTransformInfo::CacheLevel Level) const |
|
virtual unsigned | getCacheLineSize () const |
|
virtual unsigned | getPrefetchDistance () const |
|
virtual unsigned | getMinPrefetchStride (unsigned NumMemAccesses, unsigned NumStridedMemAccesses, unsigned NumPrefetches, bool HasCall) const |
|
virtual unsigned | getMaxPrefetchIterationsAhead () const |
|
virtual bool | enableWritePrefetching () const |
|
|
TypeSize | getRegisterBitWidth (TargetTransformInfo::RegisterKind K) const |
|
Optional< unsigned > | getMaxVScale () const |
|
Optional< unsigned > | getVScaleForTuning () const |
|
InstructionCost | getScalarizationOverhead (VectorType *InTy, const APInt &DemandedElts, bool Insert, bool Extract) |
| Estimate the overhead of scalarizing an instruction. More...
|
|
InstructionCost | getScalarizationOverhead (VectorType *InTy, bool Insert, bool Extract) |
| Helper wrapper for the DemandedElts variant of getScalarizationOverhead. More...
|
|
InstructionCost | getOperandsScalarizationOverhead (ArrayRef< const Value * > Args, ArrayRef< Type * > Tys) |
| Estimate the overhead of scalarizing an instructions unique non-constant operands. More...
|
|
InstructionCost | getScalarizationOverhead (VectorType *RetTy, ArrayRef< const Value * > Args, ArrayRef< Type * > Tys) |
| Estimate the overhead of scalarizing the inputs and outputs of an instruction, with return type RetTy and arguments Args of type Tys. More...
|
|
unsigned | getMaxInterleaveFactor (unsigned VF) |
|
InstructionCost | getArithmeticInstrCost (unsigned Opcode, Type *Ty, TTI::TargetCostKind CostKind, TTI::OperandValueKind Opd1Info=TTI::OK_AnyValue, TTI::OperandValueKind Opd2Info=TTI::OK_AnyValue, TTI::OperandValueProperties Opd1PropInfo=TTI::OP_None, TTI::OperandValueProperties Opd2PropInfo=TTI::OP_None, ArrayRef< const Value * > Args=ArrayRef< const Value * >(), const Instruction *CxtI=nullptr) |
|
TTI::ShuffleKind | improveShuffleKindFromMask (TTI::ShuffleKind Kind, ArrayRef< int > Mask) const |
|
InstructionCost | getShuffleCost (TTI::ShuffleKind Kind, VectorType *Tp, ArrayRef< int > Mask, int Index, VectorType *SubTp, ArrayRef< const Value * > Args=None) |
|
InstructionCost | getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src, TTI::CastContextHint CCH, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) |
|
InstructionCost | getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index) |
|
InstructionCost | getCFInstrCost (unsigned Opcode, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) |
|
InstructionCost | getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy, CmpInst::Predicate VecPred, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) |
|
InstructionCost | getVectorInstrCost (unsigned Opcode, Type *Val, unsigned Index) |
|
InstructionCost | getReplicationShuffleCost (Type *EltTy, int ReplicationFactor, int VF, const APInt &DemandedDstElts, TTI::TargetCostKind CostKind) |
|
InstructionCost | getMemoryOpCost (unsigned Opcode, Type *Src, MaybeAlign Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) |
|
InstructionCost | getMaskedMemoryOpCost (unsigned Opcode, Type *DataTy, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind) |
|
InstructionCost | getGatherScatterOpCost (unsigned Opcode, Type *DataTy, const Value *Ptr, bool VariableMask, Align Alignment, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) |
|
InstructionCost | getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, bool UseMaskForCond=false, bool UseMaskForGaps=false) |
|
InstructionCost | getIntrinsicInstrCost (const IntrinsicCostAttributes &ICA, TTI::TargetCostKind CostKind) |
| Get intrinsic cost based on arguments. More...
|
|
InstructionCost | getTypeBasedIntrinsicInstrCost (const IntrinsicCostAttributes &ICA, TTI::TargetCostKind CostKind) |
| Get intrinsic cost based on argument types. More...
|
|
InstructionCost | getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type * > Tys, TTI::TargetCostKind CostKind) |
| Compute a cost of the given call instruction. More...
|
|
unsigned | getNumberOfParts (Type *Tp) |
|
InstructionCost | getAddressComputationCost (Type *Ty, ScalarEvolution *, const SCEV *) |
|
InstructionCost | getTreeReductionCost (unsigned Opcode, VectorType *Ty, TTI::TargetCostKind CostKind) |
| Try to calculate arithmetic and shuffle op costs for reduction intrinsics. More...
|
|
InstructionCost | getOrderedReductionCost (unsigned Opcode, VectorType *Ty, TTI::TargetCostKind CostKind) |
| Try to calculate the cost of performing strict (in-order) reductions, which involves doing a sequence of floating point additions in lane order, starting with an initial value. More...
|
|
InstructionCost | getArithmeticReductionCost (unsigned Opcode, VectorType *Ty, Optional< FastMathFlags > FMF, TTI::TargetCostKind CostKind) |
|
InstructionCost | getMinMaxReductionCost (VectorType *Ty, VectorType *CondTy, bool IsUnsigned, TTI::TargetCostKind CostKind) |
| Try to calculate op costs for min/max reduction operations. More...
|
|
InstructionCost | getExtendedAddReductionCost (bool IsMLA, bool IsUnsigned, Type *ResTy, VectorType *Ty, TTI::TargetCostKind CostKind) |
|
InstructionCost | getVectorSplitCost () |
|
InstructionCost | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands, TTI::TargetCostKind CostKind) |
|
InstructionCost | getUserCost (const User *U, ArrayRef< const Value * > Operands, TTI::TargetCostKind CostKind) |
|
InstructionCost | getInstructionLatency (const Instruction *I) |
|
InstructionCost | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands, TTI::TargetCostKind CostKind) const |
|
| TargetTransformInfoImplBase (const TargetTransformInfoImplBase &Arg)=default |
|
| TargetTransformInfoImplBase (TargetTransformInfoImplBase &&Arg) |
|
const DataLayout & | getDataLayout () const |
|
InstructionCost | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands, TTI::TargetCostKind CostKind) const |
|
unsigned | getEstimatedNumberOfCaseClusters (const SwitchInst &SI, unsigned &JTSize, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI) const |
|
unsigned | getInliningThresholdMultiplier () const |
|
unsigned | adjustInliningThreshold (const CallBase *CB) const |
|
int | getInlinerVectorBonusPercent () const |
|
InstructionCost | getMemcpyCost (const Instruction *I) const |
|
BranchProbability | getPredictableBranchThreshold () const |
|
bool | hasBranchDivergence () const |
|
bool | useGPUDivergenceAnalysis () const |
|
bool | isSourceOfDivergence (const Value *V) const |
|
bool | isAlwaysUniform (const Value *V) const |
|
unsigned | getFlatAddressSpace () const |
|
bool | collectFlatAddressOperands (SmallVectorImpl< int > &OpIndexes, Intrinsic::ID IID) const |
|
bool | isNoopAddrSpaceCast (unsigned, unsigned) const |
|
bool | canHaveNonUndefGlobalInitializerInAddressSpace (unsigned AS) const |
|
unsigned | getAssumedAddrSpace (const Value *V) const |
|
std::pair< const Value *, unsigned > | getPredicatedAddrSpace (const Value *V) const |
|
Value * | rewriteIntrinsicWithAddressSpace (IntrinsicInst *II, Value *OldV, Value *NewV) const |
|
bool | isLoweredToCall (const Function *F) const |
|
bool | isHardwareLoopProfitable (Loop *L, ScalarEvolution &SE, AssumptionCache &AC, TargetLibraryInfo *LibInfo, HardwareLoopInfo &HWLoopInfo) const |
|
bool | preferPredicateOverEpilogue (Loop *L, LoopInfo *LI, ScalarEvolution &SE, AssumptionCache &AC, TargetLibraryInfo *TLI, DominatorTree *DT, const LoopAccessInfo *LAI) const |
|
bool | emitGetActiveLaneMask () const |
|
Optional< Instruction * > | instCombineIntrinsic (InstCombiner &IC, IntrinsicInst &II) const |
|
Optional< Value * > | simplifyDemandedUseBitsIntrinsic (InstCombiner &IC, IntrinsicInst &II, APInt DemandedMask, KnownBits &Known, bool &KnownBitsComputed) const |
|
Optional< Value * > | simplifyDemandedVectorEltsIntrinsic (InstCombiner &IC, IntrinsicInst &II, APInt DemandedElts, APInt &UndefElts, APInt &UndefElts2, APInt &UndefElts3, std::function< void(Instruction *, unsigned, APInt, APInt &)> SimplifyAndSetOp) const |
|
void | getUnrollingPreferences (Loop *, ScalarEvolution &, TTI::UnrollingPreferences &, OptimizationRemarkEmitter *) const |
|
void | getPeelingPreferences (Loop *, ScalarEvolution &, TTI::PeelingPreferences &) const |
|
bool | isLegalAddImmediate (int64_t Imm) const |
|
bool | isLegalICmpImmediate (int64_t Imm) const |
|
bool | isLegalAddressingMode (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace, Instruction *I=nullptr) const |
|
bool | isLSRCostLess (const TTI::LSRCost &C1, const TTI::LSRCost &C2) const |
|
bool | isNumRegsMajorCostOfLSR () const |
|
bool | isProfitableLSRChainElement (Instruction *I) const |
|
bool | canMacroFuseCmp () const |
|
bool | canSaveCmp (Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI, DominatorTree *DT, AssumptionCache *AC, TargetLibraryInfo *LibInfo) const |
|
TTI::AddressingModeKind | getPreferredAddressingMode (const Loop *L, ScalarEvolution *SE) const |
|
bool | isLegalMaskedStore (Type *DataType, Align Alignment) const |
|
bool | isLegalMaskedLoad (Type *DataType, Align Alignment) const |
|
bool | isLegalNTStore (Type *DataType, Align Alignment) const |
|
bool | isLegalNTLoad (Type *DataType, Align Alignment) const |
|
bool | isLegalBroadcastLoad (Type *ElementTy, ElementCount NumElements) const |
|
bool | isLegalMaskedScatter (Type *DataType, Align Alignment) const |
|
bool | isLegalMaskedGather (Type *DataType, Align Alignment) const |
|
bool | forceScalarizeMaskedGather (VectorType *DataType, Align Alignment) const |
|
bool | forceScalarizeMaskedScatter (VectorType *DataType, Align Alignment) const |
|
bool | isLegalMaskedCompressStore (Type *DataType) const |
|
bool | isLegalAltInstr (VectorType *VecTy, unsigned Opcode0, unsigned Opcode1, const SmallBitVector &OpcodeMask) const |
|
bool | isLegalMaskedExpandLoad (Type *DataType) const |
|
bool | enableOrderedReductions () const |
|
bool | hasDivRemOp (Type *DataType, bool IsSigned) const |
|
bool | hasVolatileVariant (Instruction *I, unsigned AddrSpace) const |
|
bool | prefersVectorizedAddressing () const |
|
InstructionCost | getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace) const |
|
bool | LSRWithInstrQueries () const |
|
bool | isTruncateFree (Type *Ty1, Type *Ty2) const |
|
bool | isProfitableToHoist (Instruction *I) const |
|
bool | useAA () const |
|
bool | isTypeLegal (Type *Ty) const |
|
unsigned | getRegUsageForType (Type *Ty) const |
|
bool | shouldBuildLookupTables () const |
|
bool | shouldBuildLookupTablesForConstant (Constant *C) const |
|
bool | shouldBuildRelLookupTables () const |
|
bool | useColdCCForColdCall (Function &F) const |
|
InstructionCost | getScalarizationOverhead (VectorType *Ty, const APInt &DemandedElts, bool Insert, bool Extract) const |
|
InstructionCost | getOperandsScalarizationOverhead (ArrayRef< const Value * > Args, ArrayRef< Type * > Tys) const |
|
bool | supportsEfficientVectorElementLoadStore () const |
|
bool | enableAggressiveInterleaving (bool LoopHasReductions) const |
|
TTI::MemCmpExpansionOptions | enableMemCmpExpansion (bool OptSize, bool IsZeroCmp) const |
|
bool | enableInterleavedAccessVectorization () const |
|
bool | enableMaskedInterleavedAccessVectorization () const |
|
bool | isFPVectorizationPotentiallyUnsafe () const |
|
bool | allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, Align Alignment, bool *Fast) const |
|
TTI::PopcntSupportKind | getPopcntSupport (unsigned IntTyWidthInBit) const |
|
bool | haveFastSqrt (Type *Ty) const |
|
bool | isFCmpOrdCheaperThanFCmpZero (Type *Ty) const |
|
InstructionCost | getFPOpCost (Type *Ty) const |
|
InstructionCost | getIntImmCodeSizeCost (unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty) const |
|
InstructionCost | getIntImmCost (const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind) const |
|
InstructionCost | getIntImmCostInst (unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind, Instruction *Inst=nullptr) const |
|
InstructionCost | getIntImmCostIntrin (Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind) const |
|
unsigned | getNumberOfRegisters (unsigned ClassID) const |
|
unsigned | getRegisterClassForType (bool Vector, Type *Ty=nullptr) const |
|
const char * | getRegisterClassName (unsigned ClassID) const |
|
TypeSize | getRegisterBitWidth (TargetTransformInfo::RegisterKind K) const |
|
unsigned | getMinVectorRegisterBitWidth () const |
|
Optional< unsigned > | getMaxVScale () const |
|
Optional< unsigned > | getVScaleForTuning () const |
|
bool | shouldMaximizeVectorBandwidth (TargetTransformInfo::RegisterKind K) const |
|
ElementCount | getMinimumVF (unsigned ElemWidth, bool IsScalable) const |
|
unsigned | getMaximumVF (unsigned ElemWidth, unsigned Opcode) const |
|
unsigned | getStoreMinimumVF (unsigned VF, Type *, Type *) const |
|
bool | shouldConsiderAddressTypePromotion (const Instruction &I, bool &AllowPromotionWithoutCommonHeader) const |
|
unsigned | getCacheLineSize () const |
|
llvm::Optional< unsigned > | getCacheSize (TargetTransformInfo::CacheLevel Level) const |
|
llvm::Optional< unsigned > | getCacheAssociativity (TargetTransformInfo::CacheLevel Level) const |
|
unsigned | getPrefetchDistance () const |
|
unsigned | getMinPrefetchStride (unsigned NumMemAccesses, unsigned NumStridedMemAccesses, unsigned NumPrefetches, bool HasCall) const |
|
unsigned | getMaxPrefetchIterationsAhead () const |
|
bool | enableWritePrefetching () const |
|
unsigned | getMaxInterleaveFactor (unsigned VF) const |
|
InstructionCost | getArithmeticInstrCost (unsigned Opcode, Type *Ty, TTI::TargetCostKind CostKind, TTI::OperandValueKind Opd1Info, TTI::OperandValueKind Opd2Info, TTI::OperandValueProperties Opd1PropInfo, TTI::OperandValueProperties Opd2PropInfo, ArrayRef< const Value * > Args, const Instruction *CxtI=nullptr) const |
|
InstructionCost | getShuffleCost (TTI::ShuffleKind Kind, VectorType *Ty, ArrayRef< int > Mask, int Index, VectorType *SubTp, ArrayRef< const Value * > Args=None) const |
|
InstructionCost | getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src, TTI::CastContextHint CCH, TTI::TargetCostKind CostKind, const Instruction *I) const |
|
InstructionCost | getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index) const |
|
InstructionCost | getCFInstrCost (unsigned Opcode, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) const |
|
InstructionCost | getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy, CmpInst::Predicate VecPred, TTI::TargetCostKind CostKind, const Instruction *I) const |
|
InstructionCost | getVectorInstrCost (unsigned Opcode, Type *Val, unsigned Index) const |
|
unsigned | getReplicationShuffleCost (Type *EltTy, int ReplicationFactor, int VF, const APInt &DemandedDstElts, TTI::TargetCostKind CostKind) |
|
InstructionCost | getMemoryOpCost (unsigned Opcode, Type *Src, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, const Instruction *I) const |
|
InstructionCost | getVPMemoryOpCost (unsigned Opcode, Type *Src, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, const Instruction *I) const |
|
InstructionCost | getMaskedMemoryOpCost (unsigned Opcode, Type *Src, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind) const |
|
InstructionCost | getGatherScatterOpCost (unsigned Opcode, Type *DataTy, const Value *Ptr, bool VariableMask, Align Alignment, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) const |
|
unsigned | getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, bool UseMaskForCond, bool UseMaskForGaps) const |
|
InstructionCost | getIntrinsicInstrCost (const IntrinsicCostAttributes &ICA, TTI::TargetCostKind CostKind) const |
|
InstructionCost | getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type * > Tys, TTI::TargetCostKind CostKind) const |
|
unsigned | getNumberOfParts (Type *Tp) const |
|
InstructionCost | getAddressComputationCost (Type *Tp, ScalarEvolution *, const SCEV *) const |
|
InstructionCost | getArithmeticReductionCost (unsigned, VectorType *, Optional< FastMathFlags > FMF, TTI::TargetCostKind) const |
|
InstructionCost | getMinMaxReductionCost (VectorType *, VectorType *, bool, TTI::TargetCostKind) const |
|
InstructionCost | getExtendedAddReductionCost (bool IsMLA, bool IsUnsigned, Type *ResTy, VectorType *Ty, TTI::TargetCostKind CostKind) const |
|
InstructionCost | getCostOfKeepingLiveOverCall (ArrayRef< Type * > Tys) const |
|
bool | getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info) const |
|
unsigned | getAtomicMemIntrinsicMaxElementSize () const |
|
Value * | getOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType) const |
|
Type * | getMemcpyLoopLoweringType (LLVMContext &Context, Value *Length, unsigned SrcAddrSpace, unsigned DestAddrSpace, unsigned SrcAlign, unsigned DestAlign, Optional< uint32_t > AtomicElementSize) const |
|
void | getMemcpyLoopResidualLoweringType (SmallVectorImpl< Type * > &OpsOut, LLVMContext &Context, unsigned RemainingBytes, unsigned SrcAddrSpace, unsigned DestAddrSpace, unsigned SrcAlign, unsigned DestAlign, Optional< uint32_t > AtomicCpySize) const |
|
bool | areInlineCompatible (const Function *Caller, const Function *Callee) const |
|
bool | areTypesABICompatible (const Function *Caller, const Function *Callee, const ArrayRef< Type * > &Types) const |
|
bool | isIndexedLoadLegal (TTI::MemIndexedMode Mode, Type *Ty, const DataLayout &DL) const |
|
bool | isIndexedStoreLegal (TTI::MemIndexedMode Mode, Type *Ty, const DataLayout &DL) const |
|
unsigned | getLoadStoreVecRegBitWidth (unsigned AddrSpace) const |
|
bool | isLegalToVectorizeLoad (LoadInst *LI) const |
|
bool | isLegalToVectorizeStore (StoreInst *SI) const |
|
bool | isLegalToVectorizeLoadChain (unsigned ChainSizeInBytes, Align Alignment, unsigned AddrSpace) const |
|
bool | isLegalToVectorizeStoreChain (unsigned ChainSizeInBytes, Align Alignment, unsigned AddrSpace) const |
|
bool | isLegalToVectorizeReduction (const RecurrenceDescriptor &RdxDesc, ElementCount VF) const |
|
bool | isElementTypeLegalForScalableVector (Type *Ty) const |
|
unsigned | getLoadVectorFactor (unsigned VF, unsigned LoadSize, unsigned ChainSizeInBytes, VectorType *VecTy) const |
|
unsigned | getStoreVectorFactor (unsigned VF, unsigned StoreSize, unsigned ChainSizeInBytes, VectorType *VecTy) const |
|
bool | preferInLoopReduction (unsigned Opcode, Type *Ty, TTI::ReductionFlags Flags) const |
|
bool | preferPredicatedReductionSelect (unsigned Opcode, Type *Ty, TTI::ReductionFlags Flags) const |
|
bool | shouldExpandReduction (const IntrinsicInst *II) const |
|
unsigned | getGISelRematGlobalCost () const |
|
bool | supportsScalableVectors () const |
|
bool | enableScalableVectorization () const |
|
bool | hasActiveVectorLength (unsigned Opcode, Type *DataType, Align Alignment) const |
|
TargetTransformInfo::VPLegalization | getVPLegalizationStrategy (const VPIntrinsic &PI) const |
|
template<typename T>
class llvm::BasicTTIImplBase< T >
Base class which can be used to help build a TTI implementation.
This class provides as much implementation of the TTI interface as is possible using the target independent parts of the code generator.
In order to subclass it, your class must implement a getST() method to return the subtarget, and a getTLI() method to return the target lowering. We need these methods implemented in the derived class so that this class doesn't have to duplicate storage for them.
Definition at line 77 of file BasicTTIImpl.h.