LLVM  3.7.0
Public Member Functions | List of all members
llvm::TargetTransformInfo::Concept Class Referenceabstract

#include <TargetTransformInfo.h>

Public Member Functions

virtual ~Concept ()=0
 
virtual const DataLayoutgetDataLayout () const =0
 
virtual unsigned getOperationCost (unsigned Opcode, Type *Ty, Type *OpTy)=0
 
virtual unsigned getGEPCost (const Value *Ptr, ArrayRef< const Value * > Operands)=0
 
virtual unsigned getCallCost (FunctionType *FTy, int NumArgs)=0
 
virtual unsigned getCallCost (const Function *F, int NumArgs)=0
 
virtual unsigned getCallCost (const Function *F, ArrayRef< const Value * > Arguments)=0
 
virtual unsigned getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< Type * > ParamTys)=0
 
virtual unsigned getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< const Value * > Arguments)=0
 
virtual unsigned getUserCost (const User *U)=0
 
virtual bool hasBranchDivergence ()=0
 
virtual bool isSourceOfDivergence (const Value *V)=0
 
virtual bool isLoweredToCall (const Function *F)=0
 
virtual void getUnrollingPreferences (Loop *L, 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)=0
 
virtual bool isLegalMaskedStore (Type *DataType, int Consecutive)=0
 
virtual bool isLegalMaskedLoad (Type *DataType, int Consecutive)=0
 
virtual int getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace)=0
 
virtual bool isTruncateFree (Type *Ty1, Type *Ty2)=0
 
virtual bool isProfitableToHoist (Instruction *I)=0
 
virtual bool isTypeLegal (Type *Ty)=0
 
virtual unsigned getJumpBufAlignment ()=0
 
virtual unsigned getJumpBufSize ()=0
 
virtual bool shouldBuildLookupTables ()=0
 
virtual bool enableAggressiveInterleaving (bool LoopHasReductions)=0
 
virtual PopcntSupportKind getPopcntSupport (unsigned IntTyWidthInBit)=0
 
virtual bool haveFastSqrt (Type *Ty)=0
 
virtual unsigned getFPOpCost (Type *Ty)=0
 
virtual unsigned getIntImmCost (const APInt &Imm, Type *Ty)=0
 
virtual unsigned getIntImmCost (unsigned Opc, unsigned Idx, const APInt &Imm, Type *Ty)=0
 
virtual unsigned getIntImmCost (Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty)=0
 
virtual unsigned getNumberOfRegisters (bool Vector)=0
 
virtual unsigned getRegisterBitWidth (bool Vector)=0
 
virtual unsigned getMaxInterleaveFactor (unsigned VF)=0
 
virtual unsigned getArithmeticInstrCost (unsigned Opcode, Type *Ty, OperandValueKind Opd1Info, OperandValueKind Opd2Info, OperandValueProperties Opd1PropInfo, OperandValueProperties Opd2PropInfo)=0
 
virtual unsigned getShuffleCost (ShuffleKind Kind, Type *Tp, int Index, Type *SubTp)=0
 
virtual unsigned getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src)=0
 
virtual unsigned getCFInstrCost (unsigned Opcode)=0
 
virtual unsigned getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy)=0
 
virtual unsigned getVectorInstrCost (unsigned Opcode, Type *Val, unsigned Index)=0
 
virtual unsigned getMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace)=0
 
virtual unsigned getMaskedMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace)=0
 
virtual unsigned getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, unsigned Alignment, unsigned AddressSpace)=0
 
virtual unsigned getReductionCost (unsigned Opcode, Type *Ty, bool IsPairwiseForm)=0
 
virtual unsigned getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Type * > Tys)=0
 
virtual unsigned getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type * > Tys)=0
 
virtual unsigned getNumberOfParts (Type *Tp)=0
 
virtual unsigned getAddressComputationCost (Type *Ty, bool IsComplex)=0
 
virtual unsigned getCostOfKeepingLiveOverCall (ArrayRef< Type * > Tys)=0
 
virtual bool getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info)=0
 
virtual ValuegetOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType)=0
 
virtual bool hasCompatibleFunctionAttributes (const Function *Caller, const Function *Callee) const =0
 

Detailed Description

Definition at line 541 of file TargetTransformInfo.h.

Constructor & Destructor Documentation

TargetTransformInfo::Concept::~Concept ( )
pure virtual

Definition at line 292 of file TargetTransformInfo.cpp.

Member Function Documentation

virtual bool llvm::TargetTransformInfo::Concept::enableAggressiveInterleaving ( bool  LoopHasReductions)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getAddressComputationCost ( Type Ty,
bool  IsComplex 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getArithmeticInstrCost ( unsigned  Opcode,
Type Ty,
OperandValueKind  Opd1Info,
OperandValueKind  Opd2Info,
OperandValueProperties  Opd1PropInfo,
OperandValueProperties  Opd2PropInfo 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getCallCost ( FunctionType FTy,
int  NumArgs 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getCallCost ( const Function F,
int  NumArgs 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getCallCost ( const Function F,
ArrayRef< const Value * >  Arguments 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getCallInstrCost ( Function F,
Type RetTy,
ArrayRef< Type * >  Tys 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getCastInstrCost ( unsigned  Opcode,
Type Dst,
Type Src 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getCFInstrCost ( unsigned  Opcode)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getCmpSelInstrCost ( unsigned  Opcode,
Type ValTy,
Type CondTy 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getCostOfKeepingLiveOverCall ( ArrayRef< Type * >  Tys)
pure virtual
virtual const DataLayout& llvm::TargetTransformInfo::Concept::getDataLayout ( ) const
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getFPOpCost ( Type Ty)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getGEPCost ( const Value Ptr,
ArrayRef< const Value * >  Operands 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getInterleavedMemoryOpCost ( unsigned  Opcode,
Type VecTy,
unsigned  Factor,
ArrayRef< unsigned Indices,
unsigned  Alignment,
unsigned  AddressSpace 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getIntImmCost ( const APInt Imm,
Type Ty 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getIntImmCost ( unsigned  Opc,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getIntImmCost ( Intrinsic::ID  IID,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getIntrinsicCost ( Intrinsic::ID  IID,
Type RetTy,
ArrayRef< Type * >  ParamTys 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getIntrinsicCost ( Intrinsic::ID  IID,
Type RetTy,
ArrayRef< const Value * >  Arguments 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getIntrinsicInstrCost ( Intrinsic::ID  ID,
Type RetTy,
ArrayRef< Type * >  Tys 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getJumpBufAlignment ( )
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getJumpBufSize ( )
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getMaskedMemoryOpCost ( unsigned  Opcode,
Type Src,
unsigned  Alignment,
unsigned  AddressSpace 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getMaxInterleaveFactor ( unsigned  VF)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getMemoryOpCost ( unsigned  Opcode,
Type Src,
unsigned  Alignment,
unsigned  AddressSpace 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getNumberOfParts ( Type Tp)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getNumberOfRegisters ( bool  Vector)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getOperationCost ( unsigned  Opcode,
Type Ty,
Type OpTy 
)
pure virtual
virtual Value* llvm::TargetTransformInfo::Concept::getOrCreateResultFromMemIntrinsic ( IntrinsicInst Inst,
Type ExpectedType 
)
pure virtual
virtual PopcntSupportKind llvm::TargetTransformInfo::Concept::getPopcntSupport ( unsigned  IntTyWidthInBit)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getReductionCost ( unsigned  Opcode,
Type Ty,
bool  IsPairwiseForm 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getRegisterBitWidth ( bool  Vector)
pure virtual
virtual int llvm::TargetTransformInfo::Concept::getScalingFactorCost ( Type Ty,
GlobalValue BaseGV,
int64_t  BaseOffset,
bool  HasBaseReg,
int64_t  Scale,
unsigned  AddrSpace 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getShuffleCost ( ShuffleKind  Kind,
Type Tp,
int  Index,
Type SubTp 
)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::getTgtMemIntrinsic ( IntrinsicInst Inst,
MemIntrinsicInfo Info 
)
pure virtual
virtual void llvm::TargetTransformInfo::Concept::getUnrollingPreferences ( Loop L,
UnrollingPreferences UP 
)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getUserCost ( const User U)
pure virtual
virtual unsigned llvm::TargetTransformInfo::Concept::getVectorInstrCost ( unsigned  Opcode,
Type Val,
unsigned  Index 
)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::hasBranchDivergence ( )
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::hasCompatibleFunctionAttributes ( const Function Caller,
const Function Callee 
) const
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::haveFastSqrt ( Type Ty)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isLegalAddImmediate ( int64_t  Imm)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isLegalAddressingMode ( Type Ty,
GlobalValue BaseGV,
int64_t  BaseOffset,
bool  HasBaseReg,
int64_t  Scale,
unsigned  AddrSpace 
)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isLegalICmpImmediate ( int64_t  Imm)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isLegalMaskedLoad ( Type DataType,
int  Consecutive 
)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isLegalMaskedStore ( Type DataType,
int  Consecutive 
)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isLoweredToCall ( const Function F)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isProfitableToHoist ( Instruction I)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isSourceOfDivergence ( const Value V)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isTruncateFree ( Type Ty1,
Type Ty2 
)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::isTypeLegal ( Type Ty)
pure virtual
virtual bool llvm::TargetTransformInfo::Concept::shouldBuildLookupTables ( )
pure virtual

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