|
| | BasicTTIImplBase (const BasicTTIImplBase &Arg) |
| |
| | BasicTTIImplBase (BasicTTIImplBase &&Arg) |
| |
|
| 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 | isTruncateFree (Type *Ty1, Type *Ty2) |
| |
| bool | isProfitableToHoist (Instruction *I) |
| |
| bool | isTypeLegal (Type *Ty) |
| |
| 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) |
| |
| 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) |
| |
| unsigned | getShuffleCost (TTI::ShuffleKind Kind, Type *Tp, int Index, Type *SubTp) |
| |
| unsigned | getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src) |
| |
| 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< Type * > Tys) |
| |
| 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, bool IsComplex) |
| |
| unsigned | getReductionCost (unsigned Opcode, Type *Ty, bool IsPairwise) |
| |
| | TargetTransformInfoImplCRTPBase (const TargetTransformInfoImplCRTPBase &Arg) |
| |
| | TargetTransformInfoImplCRTPBase (TargetTransformInfoImplCRTPBase &&Arg) |
| |
| unsigned | getCallCost (const Function *F, int NumArgs) |
| |
| unsigned | getCallCost (const Function *F, ArrayRef< const Value * > Arguments) |
| |
| 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) |
| |
| unsigned | getGEPCost (const Value *Ptr, ArrayRef< const Value * > Operands) |
| |
| unsigned | getCallCost (FunctionType *FTy, int NumArgs) |
| |
| 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, int Consecutive) |
| |
| bool | isLegalMaskedLoad (Type *DataType, int Consecutive) |
| |
| int | 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 | isTypeLegal (Type *Ty) |
| |
| unsigned | getJumpBufAlignment () |
| |
| unsigned | getJumpBufSize () |
| |
| bool | shouldBuildLookupTables () |
| |
| bool | enableAggressiveInterleaving (bool LoopHasReductions) |
| |
| TTI::PopcntSupportKind | getPopcntSupport (unsigned IntTyWidthInBit) |
| |
| bool | haveFastSqrt (Type *Ty) |
| |
| unsigned | getFPOpCost (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 | getMaxInterleaveFactor (unsigned VF) |
| |
| unsigned | getArithmeticInstrCost (unsigned Opcode, Type *Ty, TTI::OperandValueKind Opd1Info, TTI::OperandValueKind Opd2Info, TTI::OperandValueProperties Opd1PropInfo, TTI::OperandValueProperties Opd2PropInfo) |
| |
| unsigned | getShuffleCost (TTI::ShuffleKind Kind, Type *Ty, int Index, Type *SubTp) |
| |
| unsigned | getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src) |
| |
| 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 | getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, unsigned Alignment, unsigned AddressSpace) |
| |
| unsigned | getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Type * > Tys) |
| |
| unsigned | getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type * > Tys) |
| |
| unsigned | getNumberOfParts (Type *Tp) |
| |
| unsigned | getAddressComputationCost (Type *Tp, bool) |
| |
| unsigned | getReductionCost (unsigned, Type *, bool) |
| |
| unsigned | getCostOfKeepingLiveOverCall (ArrayRef< Type * > Tys) |
| |
| bool | getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info) |
| |
| Value * | getOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType) |
| |
| bool | hasCompatibleFunctionAttributes (const Function *Caller, const Function *Callee) 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.