|
|
| bool | allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, unsigned Alignment, bool *Fast) const |
| |
| bool | hasBranchDivergence () |
| |
| bool | isSourceOfDivergence (const Value *V) |
| |
| 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) |
| |
| int | getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace) |
| |
| bool | isFoldableMemAccessOffset (Instruction *I, int64_t Offset) |
| |
| bool | isTruncateFree (Type *Ty1, Type *Ty2) |
| |
| bool | isProfitableToHoist (Instruction *I) |
| |
| bool | isTypeLegal (Type *Ty) |
| |
| int | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands) |
| |
| unsigned | getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< const Value * > Arguments) |
| |
| unsigned | getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< Type * > ParamTys) |
| |
| unsigned | getJumpBufAlignment () |
| |
| unsigned | getJumpBufSize () |
| |
| bool | shouldBuildLookupTables () |
| |
| bool | haveFastSqrt (Type *Ty) |
| |
| unsigned | getFPOpCost (Type *Ty) |
| |
| unsigned | getOperationCost (unsigned Opcode, Type *Ty, Type *OpTy) |
| |
| unsigned | getInliningThresholdMultiplier () |
| |
| void | getUnrollingPreferences (Loop *L, TTI::UnrollingPreferences &UP) |
| |
|
| unsigned | getNumberOfRegisters (bool Vector) |
| |
| unsigned | getRegisterBitWidth (bool Vector) |
| |
| unsigned | getMaxInterleaveFactor (unsigned VF) |
| |
| unsigned | getArithmeticInstrCost (unsigned Opcode, Type *Ty, 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 * >()) |
| |
| unsigned | getShuffleCost (TTI::ShuffleKind Kind, Type *Tp, int Index, Type *SubTp) |
| |
| unsigned | getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src) |
| |
| unsigned | getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index) |
| |
| unsigned | getCFInstrCost (unsigned Opcode) |
| |
| unsigned | getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy) |
| |
| unsigned | getVectorInstrCost (unsigned Opcode, Type *Val, unsigned Index) |
| |
| unsigned | getMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace) |
| |
| unsigned | getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, unsigned Alignment, unsigned AddressSpace) |
| |
| unsigned | getIntrinsicInstrCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< Value * > Args, FastMathFlags FMF) |
| | Get intrinsic cost based on arguments. More...
|
| |
| unsigned | getIntrinsicInstrCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< Type * > Tys, FastMathFlags FMF) |
| | Get intrinsic cost based on argument types. More...
|
| |
| unsigned | getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type * > Tys) |
| | Compute a cost of the given call instruction. More...
|
| |
| unsigned | getNumberOfParts (Type *Tp) |
| |
| unsigned | getAddressComputationCost (Type *Ty, ScalarEvolution *, const SCEV *) |
| |
| unsigned | getReductionCost (unsigned Opcode, Type *Ty, bool IsPairwise) |
| |
| unsigned | getVectorSplitCost () |
| |
| unsigned | getCallCost (const Function *F, int NumArgs) |
| |
| unsigned | getCallCost (const Function *F, ArrayRef< const Value * > Arguments) |
| |
| int | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands) |
| |
| unsigned | getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< const Value * > Arguments) |
| |
| unsigned | getUserCost (const User *U) |
| |
| | TargetTransformInfoImplBase (const TargetTransformInfoImplBase &Arg) |
| |
| | TargetTransformInfoImplBase (TargetTransformInfoImplBase &&Arg) |
| |
| const DataLayout & | getDataLayout () const |
| |
| unsigned | getOperationCost (unsigned Opcode, Type *Ty, Type *OpTy) |
| |
| int | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value * > Operands) |
| |
| unsigned | getCallCost (FunctionType *FTy, int NumArgs) |
| |
| unsigned | getInliningThresholdMultiplier () |
| |
| unsigned | getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< Type * > ParamTys) |
| |
| bool | hasBranchDivergence () |
| |
| bool | isSourceOfDivergence (const Value *V) |
| |
| bool | isLoweredToCall (const Function *F) |
| |
| void | getUnrollingPreferences (Loop *, TTI::UnrollingPreferences &) |
| |
| 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) |
| |
| bool | isLegalMaskedStore (Type *DataType) |
| |
| bool | isLegalMaskedLoad (Type *DataType) |
| |
| bool | isLegalMaskedScatter (Type *DataType) |
| |
| bool | isLegalMaskedGather (Type *DataType) |
| |
| int | getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace) |
| |
| bool | isFoldableMemAccessOffset (Instruction *I, int64_t Offset) |
| |
| bool | isTruncateFree (Type *Ty1, Type *Ty2) |
| |
| bool | isProfitableToHoist (Instruction *I) |
| |
| bool | isTypeLegal (Type *Ty) |
| |
| unsigned | getJumpBufAlignment () |
| |
| unsigned | getJumpBufSize () |
| |
| bool | shouldBuildLookupTables () |
| |
| bool | shouldBuildLookupTablesForConstant (Constant *C) |
| |
| bool | enableAggressiveInterleaving (bool LoopHasReductions) |
| |
| bool | enableInterleavedAccessVectorization () |
| |
| bool | isFPVectorizationPotentiallyUnsafe () |
| |
| bool | allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, unsigned Alignment, bool *Fast) |
| |
| TTI::PopcntSupportKind | getPopcntSupport (unsigned IntTyWidthInBit) |
| |
| bool | haveFastSqrt (Type *Ty) |
| |
| unsigned | getFPOpCost (Type *Ty) |
| |
| int | getIntImmCodeSizeCost (unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty) |
| |
| unsigned | getIntImmCost (const APInt &Imm, Type *Ty) |
| |
| unsigned | getIntImmCost (unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty) |
| |
| unsigned | getIntImmCost (Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty) |
| |
| unsigned | getNumberOfRegisters (bool Vector) |
| |
| unsigned | getRegisterBitWidth (bool Vector) |
| |
| unsigned | getCacheLineSize () |
| |
| unsigned | getPrefetchDistance () |
| |
| unsigned | getMinPrefetchStride () |
| |
| unsigned | getMaxPrefetchIterationsAhead () |
| |
| unsigned | getMaxInterleaveFactor (unsigned VF) |
| |
| unsigned | getArithmeticInstrCost (unsigned Opcode, Type *Ty, TTI::OperandValueKind Opd1Info, TTI::OperandValueKind Opd2Info, TTI::OperandValueProperties Opd1PropInfo, TTI::OperandValueProperties Opd2PropInfo, ArrayRef< const Value * > Args) |
| |
| unsigned | getShuffleCost (TTI::ShuffleKind Kind, Type *Ty, int Index, Type *SubTp) |
| |
| unsigned | getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src) |
| |
| unsigned | getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index) |
| |
| unsigned | getCFInstrCost (unsigned Opcode) |
| |
| unsigned | getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy) |
| |
| unsigned | getVectorInstrCost (unsigned Opcode, Type *Val, unsigned Index) |
| |
| unsigned | getMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace) |
| |
| unsigned | getMaskedMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace) |
| |
| unsigned | getGatherScatterOpCost (unsigned Opcode, Type *DataTy, Value *Ptr, bool VariableMask, unsigned Alignment) |
| |
| unsigned | getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, unsigned Alignment, unsigned AddressSpace) |
| |
| unsigned | getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Type * > Tys, FastMathFlags FMF) |
| |
| unsigned | getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Value * > Args, FastMathFlags FMF) |
| |
| unsigned | getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type * > Tys) |
| |
| unsigned | getNumberOfParts (Type *Tp) |
| |
| unsigned | getAddressComputationCost (Type *Tp, ScalarEvolution *, const SCEV *) |
| |
| unsigned | getReductionCost (unsigned, Type *, bool) |
| |
| unsigned | getCostOfKeepingLiveOverCall (ArrayRef< Type * > Tys) |
| |
| bool | getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info) |
| |
| Value * | getOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType) |
| |
| bool | areInlineCompatible (const Function *Caller, const Function *Callee) const |
| |
| unsigned | getLoadStoreVecRegBitWidth (unsigned AddrSpace) const |
| |
| bool | isLegalToVectorizeLoad (LoadInst *LI) const |
| |
| bool | isLegalToVectorizeStore (StoreInst *SI) const |
| |
| bool | isLegalToVectorizeLoadChain (unsigned ChainSizeInBytes, unsigned Alignment, unsigned AddrSpace) const |
| |
| bool | isLegalToVectorizeStoreChain (unsigned ChainSizeInBytes, unsigned Alignment, unsigned AddrSpace) const |
| |
| unsigned | getLoadVectorFactor (unsigned VF, unsigned LoadSize, unsigned ChainSizeInBytes, VectorType *VecTy) const |
| |
| unsigned | getStoreVectorFactor (unsigned VF, unsigned StoreSize, unsigned ChainSizeInBytes, VectorType *VecTy) 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 40 of file BasicTTIImpl.h.