LLVM  3.7.0
Public Member Functions | List of all members
llvm::X86TTIImpl Class Reference

#include <X86TargetTransformInfo.h>

Inheritance diagram for llvm::X86TTIImpl:
[legend]
Collaboration diagram for llvm::X86TTIImpl:
[legend]

Public Member Functions

 X86TTIImpl (const X86TargetMachine *TM, Function &F)
 
 X86TTIImpl (const X86TTIImpl &Arg)
 
 X86TTIImpl (X86TTIImpl &&Arg)
 
Scalar TTI Implementations
TTI::PopcntSupportKind getPopcntSupport (unsigned TyWidth)
 
Vector TTI Implementations
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 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 getAddressComputationCost (Type *PtrTy, bool IsComplex)
 
unsigned getReductionCost (unsigned Opcode, Type *Ty, bool IsPairwiseForm)
 
unsigned getIntImmCost (int64_t)
 Calculate the cost of materializing a 64-bit value. More...
 
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)
 
bool isLegalMaskedLoad (Type *DataType, int Consecutive)
 
bool isLegalMaskedStore (Type *DataType, int Consecutive)
 
bool hasCompatibleFunctionAttributes (const Function *Caller, const Function *Callee) const
 
- Public Member Functions inherited from llvm::BasicTTIImplBase< X86TTIImpl >
 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)
 
- Public Member Functions inherited from llvm::TargetTransformInfoImplCRTPBase< X86TTIImpl >
 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)
 
- Public Member Functions inherited from llvm::TargetTransformInfoImplBase
 TargetTransformInfoImplBase (const TargetTransformInfoImplBase &Arg)
 
 TargetTransformInfoImplBase (TargetTransformInfoImplBase &&Arg)
 
const DataLayoutgetDataLayout () 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)
 
ValuegetOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType)
 
bool hasCompatibleFunctionAttributes (const Function *Caller, const Function *Callee) const
 

Additional Inherited Members

- Protected Types inherited from llvm::TargetTransformInfoImplBase
typedef TargetTransformInfo TTI
 
- Protected Member Functions inherited from llvm::BasicTTIImplBase< X86TTIImpl >
 BasicTTIImplBase (const TargetMachine *TM, const DataLayout &DL)
 
- Protected Member Functions inherited from llvm::TargetTransformInfoImplCRTPBase< X86TTIImpl >
 TargetTransformInfoImplCRTPBase (const DataLayout &DL)
 
- Protected Member Functions inherited from llvm::TargetTransformInfoImplBase
 TargetTransformInfoImplBase (const DataLayout &DL)
 
- Protected Attributes inherited from llvm::TargetTransformInfoImplBase
const DataLayoutDL
 

Detailed Description

Definition at line 28 of file X86TargetTransformInfo.h.

Constructor & Destructor Documentation

llvm::X86TTIImpl::X86TTIImpl ( const X86TargetMachine TM,
Function F 
)
inlineexplicit

Definition at line 42 of file X86TargetTransformInfo.h.

llvm::X86TTIImpl::X86TTIImpl ( const X86TTIImpl Arg)
inline

Definition at line 47 of file X86TargetTransformInfo.h.

llvm::X86TTIImpl::X86TTIImpl ( X86TTIImpl &&  Arg)
inline

Definition at line 49 of file X86TargetTransformInfo.h.

Member Function Documentation

unsigned X86TTIImpl::getAddressComputationCost ( Type PtrTy,
bool  IsComplex 
)
unsigned X86TTIImpl::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 X86TTIImpl::getCastInstrCost ( unsigned  Opcode,
Type Dst,
Type Src 
)
unsigned X86TTIImpl::getCmpSelInstrCost ( unsigned  Opcode,
Type ValTy,
Type CondTy 
)
unsigned X86TTIImpl::getIntImmCost ( int64_t  Val)

Calculate the cost of materializing a 64-bit value.

This helper method might only calculate a fraction of a larger immediate. Therefore it is valid to return a cost of ZERO.

Definition at line 973 of file X86TargetTransformInfo.cpp.

References llvm::isInt< 32 >(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.

Referenced by getIntImmCost().

unsigned X86TTIImpl::getIntImmCost ( const APInt Imm,
Type Ty 
)
unsigned X86TTIImpl::getIntImmCost ( unsigned  Opcode,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
unsigned X86TTIImpl::getIntImmCost ( Intrinsic::ID  IID,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
unsigned X86TTIImpl::getMaskedMemoryOpCost ( unsigned  Opcode,
Type Src,
unsigned  Alignment,
unsigned  AddressSpace 
)
unsigned X86TTIImpl::getMaxInterleaveFactor ( unsigned  VF)
unsigned X86TTIImpl::getMemoryOpCost ( unsigned  Opcode,
Type Src,
unsigned  Alignment,
unsigned  AddressSpace 
)
unsigned X86TTIImpl::getNumberOfRegisters ( bool  Vector)
TargetTransformInfo::PopcntSupportKind X86TTIImpl::getPopcntSupport ( unsigned  TyWidth)
unsigned X86TTIImpl::getReductionCost ( unsigned  Opcode,
Type Ty,
bool  IsPairwiseForm 
)
unsigned X86TTIImpl::getRegisterBitWidth ( bool  Vector)
unsigned X86TTIImpl::getShuffleCost ( TTI::ShuffleKind  Kind,
Type Tp,
int  Index,
Type SubTp 
)
unsigned X86TTIImpl::getVectorInstrCost ( unsigned  Opcode,
Type Val,
unsigned  Index 
)
bool X86TTIImpl::hasCompatibleFunctionAttributes ( const Function Caller,
const Function Callee 
) const
bool X86TTIImpl::isLegalMaskedLoad ( Type DataType,
int  Consecutive 
)
bool X86TTIImpl::isLegalMaskedStore ( Type DataType,
int  Consecutive 
)

Definition at line 1132 of file X86TargetTransformInfo.cpp.

References isLegalMaskedLoad().

Referenced by getMaskedMemoryOpCost().


The documentation for this class was generated from the following files: