|
LoongArchTTIImpl (const LoongArchTargetMachine *TM, const Function &F) |
| TypeSize |
getRegisterBitWidth (TargetTransformInfo::RegisterKind K) const override |
| unsigned |
getNumberOfRegisters (unsigned ClassID) const override |
| unsigned |
getRegisterClassForType (bool Vector, Type *Ty=nullptr) const override |
| unsigned |
getMaxInterleaveFactor (ElementCount VF) const override |
| const char * |
getRegisterClassName (unsigned ClassID) const override |
| TTI::PopcntSupportKind |
getPopcntSupport (unsigned TyWidth) const override |
| unsigned |
getCacheLineSize () const override |
| unsigned |
getPrefetchDistance () const override |
| bool |
enableWritePrefetching () const override |
| bool |
shouldExpandReduction (const IntrinsicInst *II) const override |
| TTI::MemCmpExpansionOptions |
enableMemCmpExpansion (bool OptSize, bool IsZeroCmp) const override |
| Public Member Functions inherited from llvm::BasicTTIImplBase< LoongArchTTIImpl > |
|
| bool |
allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, Align Alignment, unsigned *Fast) const override |
| bool |
areInlineCompatible (const Function *Caller, const Function *Callee) const override |
| bool |
hasBranchDivergence (const Function *F=nullptr) const override |
| bool |
isSourceOfDivergence (const Value *V) const override |
| bool |
isAlwaysUniform (const Value *V) const override |
| bool |
isValidAddrSpaceCast (unsigned FromAS, unsigned ToAS) const override |
| bool |
addrspacesMayAlias (unsigned AS0, unsigned AS1) const override |
| unsigned |
getFlatAddressSpace () const override |
| bool |
collectFlatAddressOperands (SmallVectorImpl< int > &OpIndexes, Intrinsic::ID IID) const override |
| bool |
isNoopAddrSpaceCast (unsigned FromAS, unsigned ToAS) const override |
| unsigned |
getAssumedAddrSpace (const Value *V) const override |
| bool |
isSingleThreaded () const override |
| std::pair< const Value *, unsigned > |
getPredicatedAddrSpace (const Value *V) const override |
| Value * |
rewriteIntrinsicWithAddressSpace (IntrinsicInst *II, Value *OldV, Value *NewV) const override |
| bool |
isLegalAddImmediate (int64_t imm) const override |
| bool |
isLegalAddScalableImmediate (int64_t Imm) const override |
| bool |
isLegalICmpImmediate (int64_t imm) const override |
| bool |
isLegalAddressingMode (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace, Instruction *I=nullptr, int64_t ScalableOffset=0) const override |
| int64_t |
getPreferredLargeGEPBaseOffset (int64_t MinOffset, int64_t MaxOffset) |
| unsigned |
getStoreMinimumVF (unsigned VF, Type *ScalarMemTy, Type *ScalarValTy) const override |
| bool |
isIndexedLoadLegal (TTI::MemIndexedMode M, Type *Ty) const override |
| bool |
isIndexedStoreLegal (TTI::MemIndexedMode M, Type *Ty) const override |
| bool |
isLSRCostLess (const TTI::LSRCost &C1, const TTI::LSRCost &C2) const override |
| bool |
isNumRegsMajorCostOfLSR () const override |
| bool |
shouldDropLSRSolutionIfLessProfitable () const override |
| bool |
isProfitableLSRChainElement (Instruction *I) const override |
| InstructionCost |
getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, StackOffset BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace) const override |
| bool |
isTruncateFree (Type *Ty1, Type *Ty2) const override |
| bool |
isProfitableToHoist (Instruction *I) const override |
| bool |
useAA () const override |
| bool |
isTypeLegal (Type *Ty) const override |
| unsigned |
getRegUsageForType (Type *Ty) const override |
| InstructionCost |
getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands, Type *AccessType, TTI::TargetCostKind CostKind) const override |
| unsigned |
getEstimatedNumberOfCaseClusters (const SwitchInst &SI, unsigned &JumpTableSize, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI) const override |
| bool |
shouldBuildLookupTables () const override |
| bool |
shouldBuildRelLookupTables () const override |
| bool |
haveFastSqrt (Type *Ty) const override |
| bool |
isFCmpOrdCheaperThanFCmpZero (Type *Ty) const override |
| InstructionCost |
getFPOpCost (Type *Ty) const override |
| bool |
preferToKeepConstantsAttached (const Instruction &Inst, const Function &Fn) const override |
| unsigned |
getInliningThresholdMultiplier () const override |
| unsigned |
adjustInliningThreshold (const CallBase *CB) const override |
| unsigned |
getCallerAllocaCost (const CallBase *CB, const AllocaInst *AI) const override |
| int |
getInlinerVectorBonusPercent () const override |
| void |
getUnrollingPreferences (Loop *L, ScalarEvolution &SE, TTI::UnrollingPreferences &UP, OptimizationRemarkEmitter *ORE) const override |
| void |
getPeelingPreferences (Loop *L, ScalarEvolution &SE, TTI::PeelingPreferences &PP) const override |
| bool |
isHardwareLoopProfitable (Loop *L, ScalarEvolution &SE, AssumptionCache &AC, TargetLibraryInfo *LibInfo, HardwareLoopInfo &HWLoopInfo) const override |
| unsigned |
getEpilogueVectorizationMinVF () const override |
| bool |
preferPredicateOverEpilogue (TailFoldingInfo *TFI) const override |
| TailFoldingStyle |
getPreferredTailFoldingStyle (bool IVUpdateMayOverflow=true) const override |
| std::optional< Instruction * > |
instCombineIntrinsic (InstCombiner &IC, IntrinsicInst &II) const override |
| std::optional< Value * > |
simplifyDemandedUseBitsIntrinsic (InstCombiner &IC, IntrinsicInst &II, APInt DemandedMask, KnownBits &Known, bool &KnownBitsComputed) const override |
| std::optional< Value * > |
simplifyDemandedVectorEltsIntrinsic (InstCombiner &IC, IntrinsicInst &II, APInt DemandedElts, APInt &UndefElts, APInt &UndefElts2, APInt &UndefElts3, std::function< void(Instruction *, unsigned, APInt, APInt &)> SimplifyAndSetOp) const override |
| std::optional< unsigned > |
getCacheSize (TargetTransformInfo::CacheLevel Level) const override |
| std::optional< unsigned > |
getCacheAssociativity (TargetTransformInfo::CacheLevel Level) const override |
| unsigned |
getMinPrefetchStride (unsigned NumMemAccesses, unsigned NumStridedMemAccesses, unsigned NumPrefetches, bool HasCall) const override |
| unsigned |
getMaxPrefetchIterationsAhead () const override |
| bool |
shouldPrefetchAddressSpace (unsigned AS) const override |
| std::optional< unsigned > |
getMaxVScale () const override |
| std::optional< unsigned > |
getVScaleForTuning () const override |
| bool |
isVScaleKnownToBeAPowerOfTwo () const override |
| InstructionCost |
getScalarizationOverhead (VectorType *InTy, const APInt &DemandedElts, bool Insert, bool Extract, TTI::TargetCostKind CostKind, bool ForPoisonSrc=true, ArrayRef< Value * > VL={}) const override |
|
Estimate the overhead of scalarizing an instruction. |
| bool |
isTargetIntrinsicTriviallyScalarizable (Intrinsic::ID ID) const override |
| bool |
isTargetIntrinsicWithScalarOpAtArg (Intrinsic::ID ID, unsigned ScalarOpdIdx) const override |
| bool |
isTargetIntrinsicWithOverloadTypeAtArg (Intrinsic::ID ID, int OpdIdx) const override |
| bool |
isTargetIntrinsicWithStructReturnOverloadAtField (Intrinsic::ID ID, int RetIdx) const override |
| InstructionCost |
getScalarizationOverhead (VectorType *InTy, bool Insert, bool Extract, TTI::TargetCostKind CostKind) const |
|
Helper wrapper for the DemandedElts variant of getScalarizationOverhead. |
| InstructionCost |
getOperandsScalarizationOverhead (ArrayRef< Type * > Tys, TTI::TargetCostKind CostKind) const override |
|
Estimate the overhead of scalarizing an instruction's operands. |
| InstructionCost |
getScalarizationOverhead (VectorType *RetTy, ArrayRef< const Value * > Args, ArrayRef< Type * > Tys, TTI::TargetCostKind CostKind) const |
|
Estimate the overhead of scalarizing the inputs and outputs of an instruction, with return type RetTy and arguments Args of type Tys. |
| std::pair< InstructionCost, MVT > |
getTypeLegalizationCost (Type *Ty) const |
|
Estimate the cost of type-legalization and the legalized type. |
| InstructionCost |
getArithmeticInstrCost (unsigned Opcode, Type *Ty, TTI::TargetCostKind CostKind, TTI::OperandValueInfo Opd1Info={TTI::OK_AnyValue, TTI::OP_None}, TTI::OperandValueInfo Opd2Info={TTI::OK_AnyValue, TTI::OP_None}, ArrayRef< const Value * > Args={}, const Instruction *CxtI=nullptr) const override |
| TTI::ShuffleKind |
improveShuffleKindFromMask (TTI::ShuffleKind Kind, ArrayRef< int > Mask, VectorType *SrcTy, int &Index, VectorType *&SubTy) const |
| InstructionCost |
getShuffleCost (TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy, ArrayRef< int > Mask, TTI::TargetCostKind CostKind, int Index, VectorType *SubTp, ArrayRef< const Value * > Args={}, const Instruction *CxtI=nullptr) const override |
| InstructionCost |
getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src, TTI::CastContextHint CCH, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) const override |
| InstructionCost |
getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index, TTI::TargetCostKind CostKind) const override |
| InstructionCost |
getCFInstrCost (unsigned Opcode, TTI::TargetCostKind CostKind, const Instruction *I=nullptr) const override |
| InstructionCost |
getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy, CmpInst::Predicate VecPred, TTI::TargetCostKind CostKind, TTI::OperandValueInfo Op1Info={TTI::OK_AnyValue, TTI::OP_None}, TTI::OperandValueInfo Op2Info={TTI::OK_AnyValue, TTI::OP_None}, const Instruction *I=nullptr) const override |
| InstructionCost |
getVectorInstrCost (unsigned Opcode, Type *Val, TTI::TargetCostKind CostKind, unsigned Index, const Value *Op0, const Value *Op1) const override |
| InstructionCost |
getVectorInstrCost (unsigned Opcode, Type *Val, TTI::TargetCostKind CostKind, unsigned Index, Value *Scalar, ArrayRef< std::tuple< Value *, User *, int > > ScalarUserAndIdx) const override |
| InstructionCost |
getVectorInstrCost (const Instruction &I, Type *Val, TTI::TargetCostKind CostKind, unsigned Index) const override |
| InstructionCost |
getIndexedVectorInstrCostFromEnd (unsigned Opcode, Type *Val, TTI::TargetCostKind CostKind, unsigned Index) const override |
| InstructionCost |
getReplicationShuffleCost (Type *EltTy, int ReplicationFactor, int VF, const APInt &DemandedDstElts, TTI::TargetCostKind CostKind) const override |
| InstructionCost |
getMemoryOpCost (unsigned Opcode, Type *Src, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, TTI::OperandValueInfo OpInfo={TTI::OK_AnyValue, TTI::OP_None}, const Instruction *I=nullptr) const override |
| InstructionCost |
getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind, bool UseMaskForCond=false, bool UseMaskForGaps=false) const override |
| InstructionCost |
getIntrinsicInstrCost (const IntrinsicCostAttributes &ICA, TTI::TargetCostKind CostKind) const override |
|
Get intrinsic cost based on arguments. |
| InstructionCost |
getTypeBasedIntrinsicInstrCost (const IntrinsicCostAttributes &ICA, TTI::TargetCostKind CostKind) const |
|
Get intrinsic cost based on argument types. |
| InstructionCost |
getMemIntrinsicInstrCost (const MemIntrinsicCostAttributes &MICA, TTI::TargetCostKind CostKind) const override |
|
Get memory intrinsic cost based on arguments. |
| InstructionCost |
getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type * > Tys, TTI::TargetCostKind CostKind) const override |
|
Compute a cost of the given call instruction. |
| unsigned |
getNumberOfParts (Type *Tp) const override |
| InstructionCost |
getAddressComputationCost (Type *PtrTy, ScalarEvolution *, const SCEV *, TTI::TargetCostKind) const override |
| InstructionCost |
getTreeReductionCost (unsigned Opcode, VectorType *Ty, TTI::TargetCostKind CostKind) const |
|
Try to calculate arithmetic and shuffle op costs for reduction intrinsics. |
| InstructionCost |
getOrderedReductionCost (unsigned Opcode, VectorType *Ty, TTI::TargetCostKind CostKind) const |
|
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. |
| InstructionCost |
getArithmeticReductionCost (unsigned Opcode, VectorType *Ty, std::optional< FastMathFlags > FMF, TTI::TargetCostKind CostKind) const override |
| InstructionCost |
getMinMaxReductionCost (Intrinsic::ID IID, VectorType *Ty, FastMathFlags FMF, TTI::TargetCostKind CostKind) const override |
|
Try to calculate op costs for min/max reduction operations. |
| InstructionCost |
getExtendedReductionCost (unsigned Opcode, bool IsUnsigned, Type *ResTy, VectorType *Ty, std::optional< FastMathFlags > FMF, TTI::TargetCostKind CostKind) const override |
| InstructionCost |
getMulAccReductionCost (bool IsUnsigned, unsigned RedOpcode, Type *ResTy, VectorType *Ty, TTI::TargetCostKind CostKind) const override |
| InstructionCost |
getVectorSplitCost () const |
| Public Member Functions inherited from llvm::TargetTransformInfoImplCRTPBase< T > |
|
| InstructionCost |
getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands, Type *AccessType, TTI::TargetCostKind CostKind) const override |
| InstructionCost |
getPointersChainCost (ArrayRef< const Value * > Ptrs, const Value *Base, const TTI::PointersChainInfo &Info, Type *AccessTy, TTI::TargetCostKind CostKind) const override |
| InstructionCost |
getInstructionCost (const User *U, ArrayRef< const Value * > Operands, TTI::TargetCostKind CostKind) const override |
| bool |
isExpensiveToSpeculativelyExecute (const Instruction *I) const override |
| bool |
supportsTailCallFor (const CallBase *CB) const override |
| Public Member Functions inherited from llvm::TargetTransformInfoImplBase |
|
| virtual |
~TargetTransformInfoImplBase () |
|
TargetTransformInfoImplBase (const TargetTransformInfoImplBase &Arg)=default |
|
TargetTransformInfoImplBase (TargetTransformInfoImplBase &&Arg) |
| virtual const DataLayout & |
getDataLayout () const |
| virtual unsigned |
getInliningCostBenefitAnalysisSavingsMultiplier () const |
| virtual unsigned |
getInliningCostBenefitAnalysisProfitableMultiplier () const |
| virtual int |
getInliningLastCallToStaticBonus () const |
| virtual InstructionCost |
getMemcpyCost (const Instruction *I) const |
| virtual uint64_t |
getMaxMemIntrinsicInlineSizeThreshold () const |
| virtual BranchProbability |
getPredictableBranchThreshold () const |
| virtual InstructionCost |
getBranchMispredictPenalty () const |
| virtual bool |
canHaveNonUndefGlobalInitializerInAddressSpace (unsigned AS) const |
| virtual bool |
isLoweredToCall (const Function *F) const |
| virtual bool |
canMacroFuseCmp () const |
| virtual bool |
canSaveCmp (Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI, DominatorTree *DT, AssumptionCache *AC, TargetLibraryInfo *LibInfo) const |
| virtual TTI::AddressingModeKind |
getPreferredAddressingMode (const Loop *L, ScalarEvolution *SE) const |
| virtual bool |
isLegalMaskedStore (Type *DataType, Align Alignment, unsigned AddressSpace, TTI::MaskKind MaskKind) const |
| virtual bool |
isLegalMaskedLoad (Type *DataType, Align Alignment, unsigned AddressSpace, TTI::MaskKind MaskKind) const |
| virtual bool |
isLegalNTStore (Type *DataType, Align Alignment) const |
| virtual bool |
isLegalNTLoad (Type *DataType, Align Alignment) const |
| virtual bool |
isLegalBroadcastLoad (Type *ElementTy, ElementCount NumElements) const |
| virtual bool |
isLegalMaskedScatter (Type *DataType, Align Alignment) const |
| virtual bool |
isLegalMaskedGather (Type *DataType, Align Alignment) const |
| virtual bool |
forceScalarizeMaskedGather (VectorType *DataType, Align Alignment) const |
| virtual bool |
forceScalarizeMaskedScatter (VectorType *DataType, Align Alignment) const |
| virtual bool |
isLegalMaskedCompressStore (Type *DataType, Align Alignment) const |
| virtual bool |
isLegalAltInstr (VectorType *VecTy, unsigned Opcode0, unsigned Opcode1, const SmallBitVector &OpcodeMask) const |
| virtual bool |
isLegalMaskedExpandLoad (Type *DataType, Align Alignment) const |
| virtual bool |
isLegalStridedLoadStore (Type *DataType, Align Alignment) const |
| virtual bool |
isLegalInterleavedAccessType (VectorType *VTy, unsigned Factor, Align Alignment, unsigned AddrSpace) const |
| virtual bool |
isLegalMaskedVectorHistogram (Type *AddrType, Type *DataType) const |
| virtual bool |
enableOrderedReductions () const |
| virtual bool |
hasDivRemOp (Type *DataType, bool IsSigned) const |
| virtual bool |
hasVolatileVariant (Instruction *I, unsigned AddrSpace) const |
| virtual bool |
prefersVectorizedAddressing () const |
| virtual bool |
LSRWithInstrQueries () const |
| virtual bool |
shouldBuildLookupTablesForConstant (Constant *C) const |
| virtual bool |
useColdCCForColdCall (Function &F) const |
| virtual bool |
useFastCCForInternalCall (Function &F) const |
| virtual bool |
supportsEfficientVectorElementLoadStore () const |
| virtual bool |
supportsTailCalls () const |
| virtual bool |
enableAggressiveInterleaving (bool LoopHasReductions) const |
| virtual bool |
enableSelectOptimize () const |
| virtual bool |
shouldTreatInstructionLikeSelect (const Instruction *I) const |
| virtual bool |
enableInterleavedAccessVectorization () const |
| virtual bool |
enableMaskedInterleavedAccessVectorization () const |
| virtual bool |
isFPVectorizationPotentiallyUnsafe () const |
| virtual InstructionCost |
getIntImmCodeSizeCost (unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty) const |
| virtual InstructionCost |
getIntImmCost (const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind) const |
| virtual InstructionCost |
getIntImmCostInst (unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind, Instruction *Inst=nullptr) const |
| virtual InstructionCost |
getIntImmCostIntrin (Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind) const |
| virtual bool |
hasConditionalLoadStoreForType (Type *Ty, bool IsStore) const |
| virtual unsigned |
getMinVectorRegisterBitWidth () const |
| virtual bool |
shouldMaximizeVectorBandwidth (TargetTransformInfo::RegisterKind K) const |
| virtual ElementCount |
getMinimumVF (unsigned ElemWidth, bool IsScalable) const |
| virtual unsigned |
getMaximumVF (unsigned ElemWidth, unsigned Opcode) const |
| virtual bool |
shouldConsiderAddressTypePromotion (const Instruction &I, bool &AllowPromotionWithoutCommonHeader) const |
| virtual std::optional< unsigned > |
getMinPageSize () const |
| virtual InstructionCost |
getPartialReductionCost (unsigned Opcode, Type *InputTypeA, Type *InputTypeB, Type *AccumType, ElementCount VF, TTI::PartialReductionExtendKind OpAExtend, TTI::PartialReductionExtendKind OpBExtend, std::optional< unsigned > BinOp, TTI::TargetCostKind CostKind) const |
| virtual InstructionCost |
getAltInstrCost (VectorType *VecTy, unsigned Opcode0, unsigned Opcode1, const SmallBitVector &OpcodeMask, TTI::TargetCostKind CostKind) const |
| virtual InstructionCost |
getInsertExtractValueCost (unsigned Opcode, TTI::TargetCostKind CostKind) const |
| virtual InstructionCost |
getCostOfKeepingLiveOverCall (ArrayRef< Type * > Tys) const |
| virtual bool |
getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info) const |
| virtual unsigned |
getAtomicMemIntrinsicMaxElementSize () const |
| virtual Value * |
getOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType, bool CanCreate=true) const |
| virtual Type * |
getMemcpyLoopLoweringType (LLVMContext &Context, Value *Length, unsigned SrcAddrSpace, unsigned DestAddrSpace, Align SrcAlign, Align DestAlign, std::optional< uint32_t > AtomicElementSize) const |
| virtual void |
getMemcpyLoopResidualLoweringType (SmallVectorImpl< Type * > &OpsOut, LLVMContext &Context, unsigned RemainingBytes, unsigned SrcAddrSpace, unsigned DestAddrSpace, Align SrcAlign, Align DestAlign, std::optional< uint32_t > AtomicCpySize) const |
| virtual unsigned |
getInlineCallPenalty (const Function *F, const CallBase &Call, unsigned DefaultCallPenalty) const |
| virtual bool |
areTypesABICompatible (const Function *Caller, const Function *Callee, ArrayRef< Type * > Types) const |
| virtual unsigned |
getLoadStoreVecRegBitWidth (unsigned AddrSpace) const |
| virtual bool |
isLegalToVectorizeLoad (LoadInst *LI) const |
| virtual bool |
isLegalToVectorizeStore (StoreInst *SI) const |
| virtual bool |
isLegalToVectorizeLoadChain (unsigned ChainSizeInBytes, Align Alignment, unsigned AddrSpace) const |
| virtual bool |
isLegalToVectorizeStoreChain (unsigned ChainSizeInBytes, Align Alignment, unsigned AddrSpace) const |
| virtual bool |
isLegalToVectorizeReduction (const RecurrenceDescriptor &RdxDesc, ElementCount VF) const |
| virtual bool |
isElementTypeLegalForScalableVector (Type *Ty) const |
| virtual unsigned |
getLoadVectorFactor (unsigned VF, unsigned LoadSize, unsigned ChainSizeInBytes, VectorType *VecTy) const |
| virtual unsigned |
getStoreVectorFactor (unsigned VF, unsigned StoreSize, unsigned ChainSizeInBytes, VectorType *VecTy) const |
| virtual bool |
preferFixedOverScalableIfEqualCost (bool IsEpilogue) const |
| virtual bool |
preferInLoopReduction (RecurKind Kind, Type *Ty) const |
| virtual bool |
preferAlternateOpcodeVectorization () const |
| virtual bool |
preferPredicatedReductionSelect () const |
| virtual bool |
preferEpilogueVectorization () const |
| virtual bool |
shouldConsiderVectorizationRegPressure () const |
| virtual TTI::ReductionShuffle |
getPreferredExpandedReductionShuffle (const IntrinsicInst *II) const |
| virtual unsigned |
getGISelRematGlobalCost () const |
| virtual unsigned |
getMinTripCountTailFoldingThreshold () const |
| virtual bool |
supportsScalableVectors () const |
| virtual bool |
enableScalableVectorization () const |
| virtual bool |
hasActiveVectorLength () const |
| virtual bool |
isProfitableToSinkOperands (Instruction *I, SmallVectorImpl< Use * > &Ops) const |
| virtual bool |
isVectorShiftByScalarCheap (Type *Ty) const |
| virtual TargetTransformInfo::VPLegalization |
getVPLegalizationStrategy (const VPIntrinsic &PI) const |
| virtual bool |
hasArmWideBranch (bool) const |
| virtual APInt |
getFeatureMask (const Function &F) const |
| virtual bool |
isMultiversionedFunction (const Function &F) const |
| virtual unsigned |
getMaxNumArgs () const |
| virtual unsigned |
getNumBytesToPadGlobalArray (unsigned Size, Type *ArrayType) const |
| virtual void |
collectKernelLaunchBounds (const Function &F, SmallVectorImpl< std::pair< StringRef, int64_t > > &LB) const |
| virtual bool |
allowVectorElementIndexingUsingGEP () const |