LLVM  6.0.0svn
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
llvm::TargetTransformInfoImplBase Class Reference

Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class. More...

#include "llvm/Analysis/TargetTransformInfoImpl.h"

Inheritance diagram for llvm::TargetTransformInfoImplBase:
Inheritance graph
[legend]
Collaboration diagram for llvm::TargetTransformInfoImplBase:
Collaboration graph
[legend]

Public Member Functions

 TargetTransformInfoImplBase (const TargetTransformInfoImplBase &Arg)
 
 TargetTransformInfoImplBase (TargetTransformInfoImplBase &&Arg)
 
const DataLayoutgetDataLayout () const
 
unsigned getOperationCost (unsigned Opcode, Type *Ty, Type *OpTy)
 
int getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value *> Operands)
 
unsigned getEstimatedNumberOfCaseClusters (const SwitchInst &SI, unsigned &JTSize)
 
int getExtCost (const Instruction *I, const Value *Src)
 
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 isAlwaysUniform (const Value *V)
 
unsigned getFlatAddressSpace ()
 
bool isLoweredToCall (const Function *F)
 
void getUnrollingPreferences (Loop *, ScalarEvolution &, 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, Instruction *I=nullptr)
 
bool isLSRCostLess (TTI::LSRCost &C1, TTI::LSRCost &C2)
 
bool isLegalMaskedStore (Type *DataType)
 
bool isLegalMaskedLoad (Type *DataType)
 
bool isLegalMaskedScatter (Type *DataType)
 
bool isLegalMaskedGather (Type *DataType)
 
bool hasDivRemOp (Type *DataType, bool IsSigned)
 
bool hasVolatileVariant (Instruction *I, unsigned AddrSpace)
 
bool prefersVectorizedAddressing ()
 
int getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace)
 
bool LSRWithInstrQueries ()
 
bool isTruncateFree (Type *Ty1, Type *Ty2)
 
bool isProfitableToHoist (Instruction *I)
 
bool isTypeLegal (Type *Ty)
 
unsigned getJumpBufAlignment ()
 
unsigned getJumpBufSize ()
 
bool shouldBuildLookupTables ()
 
bool shouldBuildLookupTablesForConstant (Constant *C)
 
unsigned getScalarizationOverhead (Type *Ty, bool Insert, bool Extract)
 
unsigned getOperandsScalarizationOverhead (ArrayRef< const Value *> Args, unsigned VF)
 
bool supportsEfficientVectorElementLoadStore ()
 
bool enableAggressiveInterleaving (bool LoopHasReductions)
 
const TTI::MemCmpExpansionOptionsenableMemCmpExpansion (bool IsZeroCmp) const
 
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) const
 
unsigned getMinVectorRegisterBitWidth ()
 
bool shouldConsiderAddressTypePromotion (const Instruction &I, bool &AllowPromotionWithoutCommonHeader)
 
unsigned getCacheLineSize ()
 
llvm::Optional< unsignedgetCacheSize (TargetTransformInfo::CacheLevel Level)
 
llvm::Optional< unsignedgetCacheAssociativity (TargetTransformInfo::CacheLevel Level)
 
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, const Instruction *I)
 
unsigned getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index)
 
unsigned getCFInstrCost (unsigned Opcode)
 
unsigned getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy, const Instruction *I)
 
unsigned getVectorInstrCost (unsigned Opcode, Type *Val, unsigned Index)
 
unsigned getMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace, const Instruction *I)
 
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 ScalarizationCostPassed)
 
unsigned getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Value *> Args, FastMathFlags FMF, unsigned VF)
 
unsigned getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type *> Tys)
 
unsigned getNumberOfParts (Type *Tp)
 
unsigned getAddressComputationCost (Type *Tp, ScalarEvolution *, const SCEV *)
 
unsigned getArithmeticReductionCost (unsigned, Type *, bool)
 
unsigned getMinMaxReductionCost (Type *, Type *, bool, bool)
 
unsigned getCostOfKeepingLiveOverCall (ArrayRef< Type *> Tys)
 
bool getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info)
 
unsigned getAtomicMemIntrinsicMaxElementSize () const
 
ValuegetOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType)
 
TypegetMemcpyLoopLoweringType (LLVMContext &Context, Value *Length, unsigned SrcAlign, unsigned DestAlign) const
 
void getMemcpyLoopResidualLoweringType (SmallVectorImpl< Type *> &OpsOut, LLVMContext &Context, unsigned RemainingBytes, unsigned SrcAlign, unsigned DestAlign) const
 
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
 
bool useReductionIntrinsic (unsigned Opcode, Type *Ty, TTI::ReductionFlags Flags) const
 
bool shouldExpandReduction (const IntrinsicInst *II) const
 

Protected Types

typedef TargetTransformInfo TTI
 

Protected Member Functions

 TargetTransformInfoImplBase (const DataLayout &DL)
 
unsigned minRequiredElementSize (const Value *Val, bool &isSigned)
 
bool isStridedAccess (const SCEV *Ptr)
 
const SCEVConstantgetConstantStrideStep (ScalarEvolution *SE, const SCEV *Ptr)
 
bool isConstantStridedAccessLessThan (ScalarEvolution *SE, const SCEV *Ptr, int64_t MergeDistance)
 

Protected Attributes

const DataLayoutDL
 

Detailed Description

Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.

Definition at line 32 of file TargetTransformInfoImpl.h.

Member Typedef Documentation

◆ TTI

Definition at line 34 of file TargetTransformInfoImpl.h.

Constructor & Destructor Documentation

◆ TargetTransformInfoImplBase() [1/3]

llvm::TargetTransformInfoImplBase::TargetTransformInfoImplBase ( const DataLayout DL)
inlineexplicitprotected

Definition at line 38 of file TargetTransformInfoImpl.h.

◆ TargetTransformInfoImplBase() [2/3]

llvm::TargetTransformInfoImplBase::TargetTransformInfoImplBase ( const TargetTransformInfoImplBase Arg)
inline

Definition at line 42 of file TargetTransformInfoImpl.h.

◆ TargetTransformInfoImplBase() [3/3]

llvm::TargetTransformInfoImplBase::TargetTransformInfoImplBase ( TargetTransformInfoImplBase &&  Arg)
inline

Definition at line 44 of file TargetTransformInfoImpl.h.

Member Function Documentation

◆ allowsMisalignedMemoryAccesses()

bool llvm::TargetTransformInfoImplBase::allowsMisalignedMemoryAccesses ( LLVMContext Context,
unsigned  BitWidth,
unsigned  AddressSpace,
unsigned  Alignment,
bool Fast 
)
inline

Definition at line 307 of file TargetTransformInfoImpl.h.

◆ areInlineCompatible()

bool llvm::TargetTransformInfoImplBase::areInlineCompatible ( const Function Caller,
const Function Callee 
) const
inline

Definition at line 500 of file TargetTransformInfoImpl.h.

References llvm::Function::getFnAttribute().

◆ enableAggressiveInterleaving()

bool llvm::TargetTransformInfoImplBase::enableAggressiveInterleaving ( bool  LoopHasReductions)
inline

Definition at line 296 of file TargetTransformInfoImpl.h.

◆ enableInterleavedAccessVectorization()

bool llvm::TargetTransformInfoImplBase::enableInterleavedAccessVectorization ( )
inline

Definition at line 303 of file TargetTransformInfoImpl.h.

◆ enableMemCmpExpansion()

const TTI::MemCmpExpansionOptions* llvm::TargetTransformInfoImplBase::enableMemCmpExpansion ( bool  IsZeroCmp) const
inline

Definition at line 298 of file TargetTransformInfoImpl.h.

◆ getAddressComputationCost()

unsigned llvm::TargetTransformInfoImplBase::getAddressComputationCost ( Type Tp,
ScalarEvolution ,
const SCEV  
)
inline

Definition at line 457 of file TargetTransformInfoImpl.h.

◆ getArithmeticInstrCost()

unsigned llvm::TargetTransformInfoImplBase::getArithmeticInstrCost ( unsigned  Opcode,
Type Ty,
TTI::OperandValueKind  Opd1Info,
TTI::OperandValueKind  Opd2Info,
TTI::OperandValueProperties  Opd1PropInfo,
TTI::OperandValueProperties  Opd2PropInfo,
ArrayRef< const Value *>  Args 
)
inline

Definition at line 384 of file TargetTransformInfoImpl.h.

◆ getArithmeticReductionCost()

unsigned llvm::TargetTransformInfoImplBase::getArithmeticReductionCost ( unsigned  ,
Type ,
bool   
)
inline

Definition at line 462 of file TargetTransformInfoImpl.h.

◆ getAtomicMemIntrinsicMaxElementSize()

unsigned llvm::TargetTransformInfoImplBase::getAtomicMemIntrinsicMaxElementSize ( ) const
inline

Definition at line 472 of file TargetTransformInfoImpl.h.

◆ getCacheAssociativity()

llvm::Optional<unsigned> llvm::TargetTransformInfoImplBase::getCacheAssociativity ( TargetTransformInfo::CacheLevel  Level)
inline

◆ getCacheLineSize()

unsigned llvm::TargetTransformInfoImplBase::getCacheLineSize ( )
inline

Definition at line 351 of file TargetTransformInfoImpl.h.

◆ getCacheSize()

llvm::Optional<unsigned> llvm::TargetTransformInfoImplBase::getCacheSize ( TargetTransformInfo::CacheLevel  Level)
inline

◆ getCallCost()

unsigned llvm::TargetTransformInfoImplBase::getCallCost ( FunctionType FTy,
int  NumArgs 
)
inline

◆ getCallInstrCost()

unsigned llvm::TargetTransformInfoImplBase::getCallInstrCost ( Function F,
Type RetTy,
ArrayRef< Type *>  Tys 
)
inline

Definition at line 451 of file TargetTransformInfoImpl.h.

◆ getCastInstrCost()

unsigned llvm::TargetTransformInfoImplBase::getCastInstrCost ( unsigned  Opcode,
Type Dst,
Type Src,
const Instruction I 
)
inline

Definition at line 398 of file TargetTransformInfoImpl.h.

◆ getCFInstrCost()

unsigned llvm::TargetTransformInfoImplBase::getCFInstrCost ( unsigned  Opcode)
inline

Definition at line 406 of file TargetTransformInfoImpl.h.

◆ getCmpSelInstrCost()

unsigned llvm::TargetTransformInfoImplBase::getCmpSelInstrCost ( unsigned  Opcode,
Type ValTy,
Type CondTy,
const Instruction I 
)
inline

Definition at line 408 of file TargetTransformInfoImpl.h.

◆ getConstantStrideStep()

const SCEVConstant* llvm::TargetTransformInfoImplBase::getConstantStrideStep ( ScalarEvolution SE,
const SCEV Ptr 
)
inlineprotected

◆ getCostOfKeepingLiveOverCall()

unsigned llvm::TargetTransformInfoImplBase::getCostOfKeepingLiveOverCall ( ArrayRef< Type *>  Tys)
inline

Definition at line 466 of file TargetTransformInfoImpl.h.

◆ getDataLayout()

const DataLayout& llvm::TargetTransformInfoImplBase::getDataLayout ( ) const
inline

◆ getEstimatedNumberOfCaseClusters()

unsigned llvm::TargetTransformInfoImplBase::getEstimatedNumberOfCaseClusters ( const SwitchInst SI,
unsigned JTSize 
)
inline

Definition at line 117 of file TargetTransformInfoImpl.h.

References llvm::SwitchInst::getNumCases().

◆ getExtCost()

int llvm::TargetTransformInfoImplBase::getExtCost ( const Instruction I,
const Value Src 
)
inline

Definition at line 123 of file TargetTransformInfoImpl.h.

References llvm::TargetTransformInfo::TCC_Basic.

◆ getExtractWithExtendCost()

unsigned llvm::TargetTransformInfoImplBase::getExtractWithExtendCost ( unsigned  Opcode,
Type Dst,
VectorType VecTy,
unsigned  Index 
)
inline

Definition at line 401 of file TargetTransformInfoImpl.h.

◆ getFlatAddressSpace()

unsigned llvm::TargetTransformInfoImplBase::getFlatAddressSpace ( )
inline

Definition at line 187 of file TargetTransformInfoImpl.h.

◆ getFPOpCost()

unsigned llvm::TargetTransformInfoImplBase::getFPOpCost ( Type Ty)
inline

Definition at line 319 of file TargetTransformInfoImpl.h.

References llvm::TargetTransformInfo::TCC_Basic.

◆ getGatherScatterOpCost()

unsigned llvm::TargetTransformInfoImplBase::getGatherScatterOpCost ( unsigned  Opcode,
Type DataTy,
Value Ptr,
bool  VariableMask,
unsigned  Alignment 
)
inline

◆ getGEPCost()

int llvm::TargetTransformInfoImplBase::getGEPCost ( Type PointeeType,
const Value Ptr,
ArrayRef< const Value *>  Operands 
)
inline

◆ getInliningThresholdMultiplier()

unsigned llvm::TargetTransformInfoImplBase::getInliningThresholdMultiplier ( )
inline

Definition at line 142 of file TargetTransformInfoImpl.h.

◆ getInterleavedMemoryOpCost()

unsigned llvm::TargetTransformInfoImplBase::getInterleavedMemoryOpCost ( unsigned  Opcode,
Type VecTy,
unsigned  Factor,
ArrayRef< unsigned Indices,
unsigned  Alignment,
unsigned  AddressSpace 
)
inline

Definition at line 433 of file TargetTransformInfoImpl.h.

◆ getIntImmCodeSizeCost()

int llvm::TargetTransformInfoImplBase::getIntImmCodeSizeCost ( unsigned  Opcode,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
inline

Definition at line 321 of file TargetTransformInfoImpl.h.

◆ getIntImmCost() [1/3]

unsigned llvm::TargetTransformInfoImplBase::getIntImmCost ( const APInt Imm,
Type Ty 
)
inline

◆ getIntImmCost() [2/3]

unsigned llvm::TargetTransformInfoImplBase::getIntImmCost ( unsigned  Opcode,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
inline

Definition at line 328 of file TargetTransformInfoImpl.h.

References llvm::TargetTransformInfo::TCC_Free.

◆ getIntImmCost() [3/3]

unsigned llvm::TargetTransformInfoImplBase::getIntImmCost ( Intrinsic::ID  IID,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
inline

Definition at line 333 of file TargetTransformInfoImpl.h.

References llvm::TargetTransformInfo::TCC_Free.

◆ getIntrinsicCost()

unsigned llvm::TargetTransformInfoImplBase::getIntrinsicCost ( Intrinsic::ID  IID,
Type RetTy,
ArrayRef< Type *>  ParamTys 
)
inline

◆ getIntrinsicInstrCost() [1/2]

unsigned llvm::TargetTransformInfoImplBase::getIntrinsicInstrCost ( Intrinsic::ID  ID,
Type RetTy,
ArrayRef< Type *>  Tys,
FastMathFlags  FMF,
unsigned  ScalarizationCostPassed 
)
inline

Definition at line 441 of file TargetTransformInfoImpl.h.

◆ getIntrinsicInstrCost() [2/2]

unsigned llvm::TargetTransformInfoImplBase::getIntrinsicInstrCost ( Intrinsic::ID  ID,
Type RetTy,
ArrayRef< Value *>  Args,
FastMathFlags  FMF,
unsigned  VF 
)
inline

Definition at line 446 of file TargetTransformInfoImpl.h.

◆ getJumpBufAlignment()

unsigned llvm::TargetTransformInfoImplBase::getJumpBufAlignment ( )
inline

Definition at line 280 of file TargetTransformInfoImpl.h.

◆ getJumpBufSize()

unsigned llvm::TargetTransformInfoImplBase::getJumpBufSize ( )
inline

Definition at line 282 of file TargetTransformInfoImpl.h.

◆ getLoadStoreVecRegBitWidth()

unsigned llvm::TargetTransformInfoImplBase::getLoadStoreVecRegBitWidth ( unsigned  AddrSpace) const
inline

Definition at line 508 of file TargetTransformInfoImpl.h.

◆ getLoadVectorFactor()

unsigned llvm::TargetTransformInfoImplBase::getLoadVectorFactor ( unsigned  VF,
unsigned  LoadSize,
unsigned  ChainSizeInBytes,
VectorType VecTy 
) const
inline

Definition at line 526 of file TargetTransformInfoImpl.h.

◆ getMaskedMemoryOpCost()

unsigned llvm::TargetTransformInfoImplBase::getMaskedMemoryOpCost ( unsigned  Opcode,
Type Src,
unsigned  Alignment,
unsigned  AddressSpace 
)
inline

◆ getMaxInterleaveFactor()

unsigned llvm::TargetTransformInfoImplBase::getMaxInterleaveFactor ( unsigned  VF)
inline

Definition at line 382 of file TargetTransformInfoImpl.h.

◆ getMaxPrefetchIterationsAhead()

unsigned llvm::TargetTransformInfoImplBase::getMaxPrefetchIterationsAhead ( )
inline

Definition at line 380 of file TargetTransformInfoImpl.h.

◆ getMemcpyLoopLoweringType()

Type* llvm::TargetTransformInfoImplBase::getMemcpyLoopLoweringType ( LLVMContext Context,
Value Length,
unsigned  SrcAlign,
unsigned  DestAlign 
) const
inline

Definition at line 486 of file TargetTransformInfoImpl.h.

References llvm::Type::getInt8Ty().

◆ getMemcpyLoopResidualLoweringType()

void llvm::TargetTransformInfoImplBase::getMemcpyLoopResidualLoweringType ( SmallVectorImpl< Type *> &  OpsOut,
LLVMContext Context,
unsigned  RemainingBytes,
unsigned  SrcAlign,
unsigned  DestAlign 
) const
inline

◆ getMemoryOpCost()

unsigned llvm::TargetTransformInfoImplBase::getMemoryOpCost ( unsigned  Opcode,
Type Src,
unsigned  Alignment,
unsigned  AddressSpace,
const Instruction I 
)
inline

Definition at line 417 of file TargetTransformInfoImpl.h.

◆ getMinMaxReductionCost()

unsigned llvm::TargetTransformInfoImplBase::getMinMaxReductionCost ( Type ,
Type ,
bool  ,
bool   
)
inline

Definition at line 464 of file TargetTransformInfoImpl.h.

◆ getMinPrefetchStride()

unsigned llvm::TargetTransformInfoImplBase::getMinPrefetchStride ( )
inline

Definition at line 378 of file TargetTransformInfoImpl.h.

◆ getMinVectorRegisterBitWidth()

unsigned llvm::TargetTransformInfoImplBase::getMinVectorRegisterBitWidth ( )
inline

Definition at line 342 of file TargetTransformInfoImpl.h.

◆ getNumberOfParts()

unsigned llvm::TargetTransformInfoImplBase::getNumberOfParts ( Type Tp)
inline

Definition at line 455 of file TargetTransformInfoImpl.h.

◆ getNumberOfRegisters()

unsigned llvm::TargetTransformInfoImplBase::getNumberOfRegisters ( bool  Vector)
inline

Definition at line 338 of file TargetTransformInfoImpl.h.

◆ getOperandsScalarizationOverhead()

unsigned llvm::TargetTransformInfoImplBase::getOperandsScalarizationOverhead ( ArrayRef< const Value *>  Args,
unsigned  VF 
)
inline

Definition at line 291 of file TargetTransformInfoImpl.h.

◆ getOperationCost()

unsigned llvm::TargetTransformInfoImplBase::getOperationCost ( unsigned  Opcode,
Type Ty,
Type OpTy 
)
inline

◆ getOrCreateResultFromMemIntrinsic()

Value* llvm::TargetTransformInfoImplBase::getOrCreateResultFromMemIntrinsic ( IntrinsicInst Inst,
Type ExpectedType 
)
inline

Definition at line 481 of file TargetTransformInfoImpl.h.

◆ getPopcntSupport()

TTI::PopcntSupportKind llvm::TargetTransformInfoImplBase::getPopcntSupport ( unsigned  IntTyWidthInBit)
inline

◆ getPrefetchDistance()

unsigned llvm::TargetTransformInfoImplBase::getPrefetchDistance ( )
inline

Definition at line 376 of file TargetTransformInfoImpl.h.

◆ getRegisterBitWidth()

unsigned llvm::TargetTransformInfoImplBase::getRegisterBitWidth ( bool  Vector) const
inline

Definition at line 340 of file TargetTransformInfoImpl.h.

◆ getScalarizationOverhead()

unsigned llvm::TargetTransformInfoImplBase::getScalarizationOverhead ( Type Ty,
bool  Insert,
bool  Extract 
)
inline

Definition at line 287 of file TargetTransformInfoImpl.h.

◆ getScalingFactorCost()

int llvm::TargetTransformInfoImplBase::getScalingFactorCost ( Type Ty,
GlobalValue BaseGV,
int64_t  BaseOffset,
bool  HasBaseReg,
int64_t  Scale,
unsigned  AddrSpace 
)
inline

Definition at line 263 of file TargetTransformInfoImpl.h.

References isLegalAddressingMode().

◆ getShuffleCost()

unsigned llvm::TargetTransformInfoImplBase::getShuffleCost ( TTI::ShuffleKind  Kind,
Type Ty,
int  Index,
Type SubTp 
)
inline

Definition at line 393 of file TargetTransformInfoImpl.h.

◆ getStoreVectorFactor()

unsigned llvm::TargetTransformInfoImplBase::getStoreVectorFactor ( unsigned  VF,
unsigned  StoreSize,
unsigned  ChainSizeInBytes,
VectorType VecTy 
) const
inline

Definition at line 532 of file TargetTransformInfoImpl.h.

◆ getTgtMemIntrinsic()

bool llvm::TargetTransformInfoImplBase::getTgtMemIntrinsic ( IntrinsicInst Inst,
MemIntrinsicInfo Info 
)
inline

Definition at line 468 of file TargetTransformInfoImpl.h.

◆ getUnrollingPreferences()

void llvm::TargetTransformInfoImplBase::getUnrollingPreferences ( Loop ,
ScalarEvolution ,
TTI::UnrollingPreferences  
)
inline

Definition at line 227 of file TargetTransformInfoImpl.h.

◆ getVectorInstrCost()

unsigned llvm::TargetTransformInfoImplBase::getVectorInstrCost ( unsigned  Opcode,
Type Val,
unsigned  Index 
)
inline

Definition at line 413 of file TargetTransformInfoImpl.h.

◆ hasBranchDivergence()

bool llvm::TargetTransformInfoImplBase::hasBranchDivergence ( )
inline

Definition at line 181 of file TargetTransformInfoImpl.h.

◆ hasDivRemOp()

bool llvm::TargetTransformInfoImplBase::hasDivRemOp ( Type DataType,
bool  IsSigned 
)
inline

Definition at line 257 of file TargetTransformInfoImpl.h.

◆ hasVolatileVariant()

bool llvm::TargetTransformInfoImplBase::hasVolatileVariant ( Instruction I,
unsigned  AddrSpace 
)
inline

Definition at line 259 of file TargetTransformInfoImpl.h.

◆ haveFastSqrt()

bool llvm::TargetTransformInfoImplBase::haveFastSqrt ( Type Ty)
inline

Definition at line 317 of file TargetTransformInfoImpl.h.

◆ isAlwaysUniform()

bool llvm::TargetTransformInfoImplBase::isAlwaysUniform ( const Value V)
inline

Definition at line 185 of file TargetTransformInfoImpl.h.

◆ isConstantStridedAccessLessThan()

bool llvm::TargetTransformInfoImplBase::isConstantStridedAccessLessThan ( ScalarEvolution SE,
const SCEV Ptr,
int64_t  MergeDistance 
)
inlineprotected

◆ isFPVectorizationPotentiallyUnsafe()

bool llvm::TargetTransformInfoImplBase::isFPVectorizationPotentiallyUnsafe ( )
inline

Definition at line 305 of file TargetTransformInfoImpl.h.

◆ isLegalAddImmediate()

bool llvm::TargetTransformInfoImplBase::isLegalAddImmediate ( int64_t  Imm)
inline

Definition at line 230 of file TargetTransformInfoImpl.h.

◆ isLegalAddressingMode()

bool llvm::TargetTransformInfoImplBase::isLegalAddressingMode ( Type Ty,
GlobalValue BaseGV,
int64_t  BaseOffset,
bool  HasBaseReg,
int64_t  Scale,
unsigned  AddrSpace,
Instruction I = nullptr 
)
inline

Definition at line 234 of file TargetTransformInfoImpl.h.

Referenced by getScalingFactorCost().

◆ isLegalICmpImmediate()

bool llvm::TargetTransformInfoImplBase::isLegalICmpImmediate ( int64_t  Imm)
inline

Definition at line 232 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedGather()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedGather ( Type DataType)
inline

Definition at line 255 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedLoad()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedLoad ( Type DataType)
inline

Definition at line 251 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedScatter()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedScatter ( Type DataType)
inline

Definition at line 253 of file TargetTransformInfoImpl.h.

◆ isLegalMaskedStore()

bool llvm::TargetTransformInfoImplBase::isLegalMaskedStore ( Type DataType)
inline

Definition at line 249 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeLoad()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeLoad ( LoadInst LI) const
inline

Definition at line 510 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeLoadChain()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeLoadChain ( unsigned  ChainSizeInBytes,
unsigned  Alignment,
unsigned  AddrSpace 
) const
inline

Definition at line 514 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeStore()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeStore ( StoreInst SI) const
inline

Definition at line 512 of file TargetTransformInfoImpl.h.

◆ isLegalToVectorizeStoreChain()

bool llvm::TargetTransformInfoImplBase::isLegalToVectorizeStoreChain ( unsigned  ChainSizeInBytes,
unsigned  Alignment,
unsigned  AddrSpace 
) const
inline

Definition at line 520 of file TargetTransformInfoImpl.h.

◆ isLoweredToCall()

bool llvm::TargetTransformInfoImplBase::isLoweredToCall ( const Function F)
inline

◆ isLSRCostLess()

bool llvm::TargetTransformInfoImplBase::isLSRCostLess ( TTI::LSRCost C1,
TTI::LSRCost C2 
)
inline

◆ isProfitableToHoist()

bool llvm::TargetTransformInfoImplBase::isProfitableToHoist ( Instruction I)
inline

Definition at line 276 of file TargetTransformInfoImpl.h.

◆ isSourceOfDivergence()

bool llvm::TargetTransformInfoImplBase::isSourceOfDivergence ( const Value V)
inline

Definition at line 183 of file TargetTransformInfoImpl.h.

◆ isStridedAccess()

bool llvm::TargetTransformInfoImplBase::isStridedAccess ( const SCEV Ptr)
inlineprotected

◆ isTruncateFree()

bool llvm::TargetTransformInfoImplBase::isTruncateFree ( Type Ty1,
Type Ty2 
)
inline

Definition at line 274 of file TargetTransformInfoImpl.h.

◆ isTypeLegal()

bool llvm::TargetTransformInfoImplBase::isTypeLegal ( Type Ty)
inline

Definition at line 278 of file TargetTransformInfoImpl.h.

◆ LSRWithInstrQueries()

bool llvm::TargetTransformInfoImplBase::LSRWithInstrQueries ( )
inline

Definition at line 272 of file TargetTransformInfoImpl.h.

◆ minRequiredElementSize()

unsigned llvm::TargetTransformInfoImplBase::minRequiredElementSize ( const Value Val,
bool isSigned 
)
inlineprotected

◆ prefersVectorizedAddressing()

bool llvm::TargetTransformInfoImplBase::prefersVectorizedAddressing ( )
inline

Definition at line 261 of file TargetTransformInfoImpl.h.

◆ shouldBuildLookupTables()

bool llvm::TargetTransformInfoImplBase::shouldBuildLookupTables ( )
inline

Definition at line 284 of file TargetTransformInfoImpl.h.

◆ shouldBuildLookupTablesForConstant()

bool llvm::TargetTransformInfoImplBase::shouldBuildLookupTablesForConstant ( Constant C)
inline

Definition at line 285 of file TargetTransformInfoImpl.h.

◆ shouldConsiderAddressTypePromotion()

bool llvm::TargetTransformInfoImplBase::shouldConsiderAddressTypePromotion ( const Instruction I,
bool AllowPromotionWithoutCommonHeader 
)
inline

Definition at line 345 of file TargetTransformInfoImpl.h.

◆ shouldExpandReduction()

bool llvm::TargetTransformInfoImplBase::shouldExpandReduction ( const IntrinsicInst II) const
inline

Definition at line 543 of file TargetTransformInfoImpl.h.

◆ supportsEfficientVectorElementLoadStore()

bool llvm::TargetTransformInfoImplBase::supportsEfficientVectorElementLoadStore ( )
inline

Definition at line 294 of file TargetTransformInfoImpl.h.

◆ useReductionIntrinsic()

bool llvm::TargetTransformInfoImplBase::useReductionIntrinsic ( unsigned  Opcode,
Type Ty,
TTI::ReductionFlags  Flags 
) const
inline

Definition at line 538 of file TargetTransformInfoImpl.h.

Member Data Documentation

◆ DL

const DataLayout& llvm::TargetTransformInfoImplBase::DL
protected

Definition at line 36 of file TargetTransformInfoImpl.h.

Referenced by llvm::BasicTTIImplBase< AMDGPUTTIImpl >::BasicTTIImplBase(), llvm::NVPTXTTIImpl::getArithmeticInstrCost(), llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::AMDGPUTTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getArithmeticInstrCost(), llvm::X86TTIImpl::getArithmeticReductionCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getArithmeticReductionCost(), llvm::X86TTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getCastInstrCost(), llvm::X86TTIImpl::getCmpSelInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getCmpSelInstrCost(), getDataLayout(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getEstimatedNumberOfCaseClusters(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getExtCost(), llvm::AArch64TTIImpl::getExtractWithExtendCost(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::PPCTTIImpl::getInterleavedMemoryOpCost(), llvm::AArch64TTIImpl::getInterleavedMemoryOpCost(), llvm::ARMTTIImpl::getInterleavedMemoryOpCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX2(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX512(), llvm::X86TTIImpl::getIntrinsicInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), llvm::X86TTIImpl::getMemoryOpCost(), llvm::PPCTTIImpl::getMemoryOpCost(), llvm::AArch64TTIImpl::getMemoryOpCost(), llvm::ARMTTIImpl::getMemoryOpCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getMemoryOpCost(), llvm::X86TTIImpl::getMinMaxReductionCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getMinMaxReductionCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getNumberOfParts(), llvm::AArch64TTIImpl::getPopcntSupport(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getScalingFactorCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::PPCTTIImpl::getShuffleCost(), llvm::ARMTTIImpl::getShuffleCost(), llvm::AMDGPUTTIImpl::getShuffleCost(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::PPCTTIImpl::getUserCost(), llvm::X86TTIImpl::getUserCost(), llvm::X86TTIImpl::getVectorInstrCost(), llvm::AArch64TTIImpl::getVectorInstrCost(), llvm::AMDGPUTTIImpl::getVectorInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getVectorInstrCost(), llvm::SystemZTTIImpl::hasDivRemOp(), llvm::X86TTIImpl::hasDivRemOp(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::haveFastSqrt(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::isLegalAddressingMode(), llvm::X86TTIImpl::isLegalMaskedGather(), llvm::X86TTIImpl::isLegalMaskedLoad(), and llvm::BasicTTIImplBase< AMDGPUTTIImpl >::isTypeLegal().


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