|
virtual | ~Concept ()=0 |
|
virtual const DataLayout & | getDataLayout () const =0 |
|
virtual int | getOperationCost (unsigned Opcode, Type *Ty, Type *OpTy)=0 |
|
virtual int | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value *> Operands)=0 |
|
virtual int | getExtCost (const Instruction *I, const Value *Src)=0 |
|
virtual int | getCallCost (FunctionType *FTy, int NumArgs)=0 |
|
virtual int | getCallCost (const Function *F, int NumArgs)=0 |
|
virtual int | getCallCost (const Function *F, ArrayRef< const Value *> Arguments)=0 |
|
virtual unsigned | getInliningThresholdMultiplier ()=0 |
|
virtual int | getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< Type *> ParamTys)=0 |
|
virtual int | getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< const Value *> Arguments)=0 |
|
virtual unsigned | getEstimatedNumberOfCaseClusters (const SwitchInst &SI, unsigned &JTSize)=0 |
|
virtual int | getUserCost (const User *U, ArrayRef< const Value *> Operands)=0 |
|
virtual bool | hasBranchDivergence ()=0 |
|
virtual bool | isSourceOfDivergence (const Value *V)=0 |
|
virtual bool | isAlwaysUniform (const Value *V)=0 |
|
virtual unsigned | getFlatAddressSpace ()=0 |
|
virtual bool | isLoweredToCall (const Function *F)=0 |
|
virtual void | getUnrollingPreferences (Loop *L, ScalarEvolution &, UnrollingPreferences &UP)=0 |
|
virtual bool | isLegalAddImmediate (int64_t Imm)=0 |
|
virtual bool | isLegalICmpImmediate (int64_t Imm)=0 |
|
virtual bool | isLegalAddressingMode (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace, Instruction *I)=0 |
|
virtual bool | isLSRCostLess (TargetTransformInfo::LSRCost &C1, TargetTransformInfo::LSRCost &C2)=0 |
|
virtual bool | canMacroFuseCmp ()=0 |
|
virtual bool | shouldFavorPostInc () const =0 |
|
virtual bool | isLegalMaskedStore (Type *DataType)=0 |
|
virtual bool | isLegalMaskedLoad (Type *DataType)=0 |
|
virtual bool | isLegalMaskedScatter (Type *DataType)=0 |
|
virtual bool | isLegalMaskedGather (Type *DataType)=0 |
|
virtual bool | hasDivRemOp (Type *DataType, bool IsSigned)=0 |
|
virtual bool | hasVolatileVariant (Instruction *I, unsigned AddrSpace)=0 |
|
virtual bool | prefersVectorizedAddressing ()=0 |
|
virtual int | getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace)=0 |
|
virtual bool | LSRWithInstrQueries ()=0 |
|
virtual bool | isTruncateFree (Type *Ty1, Type *Ty2)=0 |
|
virtual bool | isProfitableToHoist (Instruction *I)=0 |
|
virtual bool | useAA ()=0 |
|
virtual bool | isTypeLegal (Type *Ty)=0 |
|
virtual unsigned | getJumpBufAlignment ()=0 |
|
virtual unsigned | getJumpBufSize ()=0 |
|
virtual bool | shouldBuildLookupTables ()=0 |
|
virtual bool | shouldBuildLookupTablesForConstant (Constant *C)=0 |
|
virtual bool | useColdCCForColdCall (Function &F)=0 |
|
virtual unsigned | getScalarizationOverhead (Type *Ty, bool Insert, bool Extract)=0 |
|
virtual unsigned | getOperandsScalarizationOverhead (ArrayRef< const Value *> Args, unsigned VF)=0 |
|
virtual bool | supportsEfficientVectorElementLoadStore ()=0 |
|
virtual bool | enableAggressiveInterleaving (bool LoopHasReductions)=0 |
|
virtual const MemCmpExpansionOptions * | enableMemCmpExpansion (bool IsZeroCmp) const =0 |
|
virtual bool | enableInterleavedAccessVectorization ()=0 |
|
virtual bool | enableMaskedInterleavedAccessVectorization ()=0 |
|
virtual bool | isFPVectorizationPotentiallyUnsafe ()=0 |
|
virtual bool | allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, unsigned Alignment, bool *Fast)=0 |
|
virtual PopcntSupportKind | getPopcntSupport (unsigned IntTyWidthInBit)=0 |
|
virtual bool | haveFastSqrt (Type *Ty)=0 |
|
virtual bool | isFCmpOrdCheaperThanFCmpZero (Type *Ty)=0 |
|
virtual int | getFPOpCost (Type *Ty)=0 |
|
virtual int | getIntImmCodeSizeCost (unsigned Opc, unsigned Idx, const APInt &Imm, Type *Ty)=0 |
|
virtual int | getIntImmCost (const APInt &Imm, Type *Ty)=0 |
|
virtual int | getIntImmCost (unsigned Opc, unsigned Idx, const APInt &Imm, Type *Ty)=0 |
|
virtual int | getIntImmCost (Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty)=0 |
|
virtual unsigned | getNumberOfRegisters (bool Vector)=0 |
|
virtual unsigned | getRegisterBitWidth (bool Vector) const =0 |
|
virtual unsigned | getMinVectorRegisterBitWidth ()=0 |
|
virtual bool | shouldMaximizeVectorBandwidth (bool OptSize) const =0 |
|
virtual unsigned | getMinimumVF (unsigned ElemWidth) const =0 |
|
virtual bool | shouldConsiderAddressTypePromotion (const Instruction &I, bool &AllowPromotionWithoutCommonHeader)=0 |
|
virtual unsigned | getCacheLineSize ()=0 |
|
virtual llvm::Optional< unsigned > | getCacheSize (CacheLevel Level)=0 |
|
virtual llvm::Optional< unsigned > | getCacheAssociativity (CacheLevel Level)=0 |
|
virtual unsigned | getPrefetchDistance ()=0 |
|
virtual unsigned | getMinPrefetchStride ()=0 |
|
virtual unsigned | getMaxPrefetchIterationsAhead ()=0 |
|
virtual unsigned | getMaxInterleaveFactor (unsigned VF)=0 |
|
virtual unsigned | getArithmeticInstrCost (unsigned Opcode, Type *Ty, OperandValueKind Opd1Info, OperandValueKind Opd2Info, OperandValueProperties Opd1PropInfo, OperandValueProperties Opd2PropInfo, ArrayRef< const Value *> Args)=0 |
|
virtual int | getShuffleCost (ShuffleKind Kind, Type *Tp, int Index, Type *SubTp)=0 |
|
virtual int | getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src, const Instruction *I)=0 |
|
virtual int | getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index)=0 |
|
virtual int | getCFInstrCost (unsigned Opcode)=0 |
|
virtual int | getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy, const Instruction *I)=0 |
|
virtual int | getVectorInstrCost (unsigned Opcode, Type *Val, unsigned Index)=0 |
|
virtual int | getMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace, const Instruction *I)=0 |
|
virtual int | getMaskedMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace)=0 |
|
virtual int | getGatherScatterOpCost (unsigned Opcode, Type *DataTy, Value *Ptr, bool VariableMask, unsigned Alignment)=0 |
|
virtual int | getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, unsigned Alignment, unsigned AddressSpace, bool UseMaskForCond=false, bool UseMaskForGaps=false)=0 |
|
virtual int | getArithmeticReductionCost (unsigned Opcode, Type *Ty, bool IsPairwiseForm)=0 |
|
virtual int | getMinMaxReductionCost (Type *Ty, Type *CondTy, bool IsPairwiseForm, bool IsUnsigned)=0 |
|
virtual int | getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Type *> Tys, FastMathFlags FMF, unsigned ScalarizationCostPassed)=0 |
|
virtual int | getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Value *> Args, FastMathFlags FMF, unsigned VF)=0 |
|
virtual int | getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type *> Tys)=0 |
|
virtual unsigned | getNumberOfParts (Type *Tp)=0 |
|
virtual int | getAddressComputationCost (Type *Ty, ScalarEvolution *SE, const SCEV *Ptr)=0 |
|
virtual unsigned | getCostOfKeepingLiveOverCall (ArrayRef< Type *> Tys)=0 |
|
virtual bool | getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info)=0 |
|
virtual unsigned | getAtomicMemIntrinsicMaxElementSize () const =0 |
|
virtual Value * | getOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType)=0 |
|
virtual Type * | getMemcpyLoopLoweringType (LLVMContext &Context, Value *Length, unsigned SrcAlign, unsigned DestAlign) const =0 |
|
virtual void | getMemcpyLoopResidualLoweringType (SmallVectorImpl< Type *> &OpsOut, LLVMContext &Context, unsigned RemainingBytes, unsigned SrcAlign, unsigned DestAlign) const =0 |
|
virtual bool | areInlineCompatible (const Function *Caller, const Function *Callee) const =0 |
|
virtual bool | areFunctionArgsABICompatible (const Function *Caller, const Function *Callee, SmallPtrSetImpl< Argument *> &Args) const =0 |
|
virtual bool | isIndexedLoadLegal (MemIndexedMode Mode, Type *Ty) const =0 |
|
virtual bool | isIndexedStoreLegal (MemIndexedMode Mode, Type *Ty) const =0 |
|
virtual unsigned | getLoadStoreVecRegBitWidth (unsigned AddrSpace) const =0 |
|
virtual bool | isLegalToVectorizeLoad (LoadInst *LI) const =0 |
|
virtual bool | isLegalToVectorizeStore (StoreInst *SI) const =0 |
|
virtual bool | isLegalToVectorizeLoadChain (unsigned ChainSizeInBytes, unsigned Alignment, unsigned AddrSpace) const =0 |
|
virtual bool | isLegalToVectorizeStoreChain (unsigned ChainSizeInBytes, unsigned Alignment, unsigned AddrSpace) const =0 |
|
virtual unsigned | getLoadVectorFactor (unsigned VF, unsigned LoadSize, unsigned ChainSizeInBytes, VectorType *VecTy) const =0 |
|
virtual unsigned | getStoreVectorFactor (unsigned VF, unsigned StoreSize, unsigned ChainSizeInBytes, VectorType *VecTy) const =0 |
|
virtual bool | useReductionIntrinsic (unsigned Opcode, Type *Ty, ReductionFlags) const =0 |
|
virtual bool | shouldExpandReduction (const IntrinsicInst *II) const =0 |
|
virtual int | getInstructionLatency (const Instruction *I)=0 |
|
Definition at line 1030 of file TargetTransformInfo.h.