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

#include "llvm/Analysis/TargetTransformInfo.h"

Public Member Functions

virtual ~Concept ()=0
 
virtual const DataLayoutgetDataLayout () const =0
 
virtual int getOperationCost (unsigned Opcode, Type *Ty, Type *OpTy)=0
 
virtual int getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value *> Operands)=0
 
virtual int getExtCost (const Instruction *I, const Value *Src)=0
 
virtual int getCallCost (FunctionType *FTy, int NumArgs)=0
 
virtual int getCallCost (const Function *F, int NumArgs)=0
 
virtual int getCallCost (const Function *F, ArrayRef< const Value *> Arguments)=0
 
virtual unsigned getInliningThresholdMultiplier ()=0
 
virtual int getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< Type *> ParamTys)=0
 
virtual int getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< const Value *> Arguments)=0
 
virtual unsigned getEstimatedNumberOfCaseClusters (const SwitchInst &SI, unsigned &JTSize)=0
 
virtual int getUserCost (const User *U, ArrayRef< const Value *> Operands)=0
 
virtual bool hasBranchDivergence ()=0
 
virtual bool isSourceOfDivergence (const Value *V)=0
 
virtual bool isAlwaysUniform (const Value *V)=0
 
virtual unsigned getFlatAddressSpace ()=0
 
virtual bool isLoweredToCall (const Function *F)=0
 
virtual void getUnrollingPreferences (Loop *L, ScalarEvolution &, 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, Instruction *I)=0
 
virtual bool isLSRCostLess (TargetTransformInfo::LSRCost &C1, TargetTransformInfo::LSRCost &C2)=0
 
virtual bool canMacroFuseCmp ()=0
 
virtual bool shouldFavorPostInc () const =0
 
virtual bool isLegalMaskedStore (Type *DataType)=0
 
virtual bool isLegalMaskedLoad (Type *DataType)=0
 
virtual bool isLegalMaskedScatter (Type *DataType)=0
 
virtual bool isLegalMaskedGather (Type *DataType)=0
 
virtual bool hasDivRemOp (Type *DataType, bool IsSigned)=0
 
virtual bool hasVolatileVariant (Instruction *I, unsigned AddrSpace)=0
 
virtual bool prefersVectorizedAddressing ()=0
 
virtual int getScalingFactorCost (Type *Ty, GlobalValue *BaseGV, int64_t BaseOffset, bool HasBaseReg, int64_t Scale, unsigned AddrSpace)=0
 
virtual bool LSRWithInstrQueries ()=0
 
virtual bool isTruncateFree (Type *Ty1, Type *Ty2)=0
 
virtual bool isProfitableToHoist (Instruction *I)=0
 
virtual bool useAA ()=0
 
virtual bool isTypeLegal (Type *Ty)=0
 
virtual unsigned getJumpBufAlignment ()=0
 
virtual unsigned getJumpBufSize ()=0
 
virtual bool shouldBuildLookupTables ()=0
 
virtual bool shouldBuildLookupTablesForConstant (Constant *C)=0
 
virtual bool useColdCCForColdCall (Function &F)=0
 
virtual unsigned getScalarizationOverhead (Type *Ty, bool Insert, bool Extract)=0
 
virtual unsigned getOperandsScalarizationOverhead (ArrayRef< const Value *> Args, unsigned VF)=0
 
virtual bool supportsEfficientVectorElementLoadStore ()=0
 
virtual bool enableAggressiveInterleaving (bool LoopHasReductions)=0
 
virtual const MemCmpExpansionOptionsenableMemCmpExpansion (bool IsZeroCmp) const =0
 
virtual bool enableInterleavedAccessVectorization ()=0
 
virtual bool enableMaskedInterleavedAccessVectorization ()=0
 
virtual bool isFPVectorizationPotentiallyUnsafe ()=0
 
virtual bool allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, unsigned Alignment, bool *Fast)=0
 
virtual PopcntSupportKind getPopcntSupport (unsigned IntTyWidthInBit)=0
 
virtual bool haveFastSqrt (Type *Ty)=0
 
virtual bool isFCmpOrdCheaperThanFCmpZero (Type *Ty)=0
 
virtual int getFPOpCost (Type *Ty)=0
 
virtual int getIntImmCodeSizeCost (unsigned Opc, unsigned Idx, const APInt &Imm, Type *Ty)=0
 
virtual int getIntImmCost (const APInt &Imm, Type *Ty)=0
 
virtual int getIntImmCost (unsigned Opc, unsigned Idx, const APInt &Imm, Type *Ty)=0
 
virtual int getIntImmCost (Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty)=0
 
virtual unsigned getNumberOfRegisters (bool Vector)=0
 
virtual unsigned getRegisterBitWidth (bool Vector) const =0
 
virtual unsigned getMinVectorRegisterBitWidth ()=0
 
virtual bool shouldMaximizeVectorBandwidth (bool OptSize) const =0
 
virtual unsigned getMinimumVF (unsigned ElemWidth) const =0
 
virtual bool shouldConsiderAddressTypePromotion (const Instruction &I, bool &AllowPromotionWithoutCommonHeader)=0
 
virtual unsigned getCacheLineSize ()=0
 
virtual llvm::Optional< unsignedgetCacheSize (CacheLevel Level)=0
 
virtual llvm::Optional< unsignedgetCacheAssociativity (CacheLevel Level)=0
 
virtual unsigned getPrefetchDistance ()=0
 
virtual unsigned getMinPrefetchStride ()=0
 
virtual unsigned getMaxPrefetchIterationsAhead ()=0
 
virtual unsigned getMaxInterleaveFactor (unsigned VF)=0
 
virtual unsigned getArithmeticInstrCost (unsigned Opcode, Type *Ty, OperandValueKind Opd1Info, OperandValueKind Opd2Info, OperandValueProperties Opd1PropInfo, OperandValueProperties Opd2PropInfo, ArrayRef< const Value *> Args)=0
 
virtual int getShuffleCost (ShuffleKind Kind, Type *Tp, int Index, Type *SubTp)=0
 
virtual int getCastInstrCost (unsigned Opcode, Type *Dst, Type *Src, const Instruction *I)=0
 
virtual int getExtractWithExtendCost (unsigned Opcode, Type *Dst, VectorType *VecTy, unsigned Index)=0
 
virtual int getCFInstrCost (unsigned Opcode)=0
 
virtual int getCmpSelInstrCost (unsigned Opcode, Type *ValTy, Type *CondTy, const Instruction *I)=0
 
virtual int getVectorInstrCost (unsigned Opcode, Type *Val, unsigned Index)=0
 
virtual int getMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace, const Instruction *I)=0
 
virtual int getMaskedMemoryOpCost (unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace)=0
 
virtual int getGatherScatterOpCost (unsigned Opcode, Type *DataTy, Value *Ptr, bool VariableMask, unsigned Alignment)=0
 
virtual int getInterleavedMemoryOpCost (unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, unsigned Alignment, unsigned AddressSpace, bool UseMaskForCond=false, bool UseMaskForGaps=false)=0
 
virtual int getArithmeticReductionCost (unsigned Opcode, Type *Ty, bool IsPairwiseForm)=0
 
virtual int getMinMaxReductionCost (Type *Ty, Type *CondTy, bool IsPairwiseForm, bool IsUnsigned)=0
 
virtual int getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Type *> Tys, FastMathFlags FMF, unsigned ScalarizationCostPassed)=0
 
virtual int getIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, ArrayRef< Value *> Args, FastMathFlags FMF, unsigned VF)=0
 
virtual int getCallInstrCost (Function *F, Type *RetTy, ArrayRef< Type *> Tys)=0
 
virtual unsigned getNumberOfParts (Type *Tp)=0
 
virtual int getAddressComputationCost (Type *Ty, ScalarEvolution *SE, const SCEV *Ptr)=0
 
virtual unsigned getCostOfKeepingLiveOverCall (ArrayRef< Type *> Tys)=0
 
virtual bool getTgtMemIntrinsic (IntrinsicInst *Inst, MemIntrinsicInfo &Info)=0
 
virtual unsigned getAtomicMemIntrinsicMaxElementSize () const =0
 
virtual ValuegetOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType)=0
 
virtual TypegetMemcpyLoopLoweringType (LLVMContext &Context, Value *Length, unsigned SrcAlign, unsigned DestAlign) const =0
 
virtual void getMemcpyLoopResidualLoweringType (SmallVectorImpl< Type *> &OpsOut, LLVMContext &Context, unsigned RemainingBytes, unsigned SrcAlign, unsigned DestAlign) const =0
 
virtual bool areInlineCompatible (const Function *Caller, const Function *Callee) const =0
 
virtual bool areFunctionArgsABICompatible (const Function *Caller, const Function *Callee, SmallPtrSetImpl< Argument *> &Args) const =0
 
virtual bool isIndexedLoadLegal (MemIndexedMode Mode, Type *Ty) const =0
 
virtual bool isIndexedStoreLegal (MemIndexedMode Mode, Type *Ty) const =0
 
virtual unsigned getLoadStoreVecRegBitWidth (unsigned AddrSpace) const =0
 
virtual bool isLegalToVectorizeLoad (LoadInst *LI) const =0
 
virtual bool isLegalToVectorizeStore (StoreInst *SI) const =0
 
virtual bool isLegalToVectorizeLoadChain (unsigned ChainSizeInBytes, unsigned Alignment, unsigned AddrSpace) const =0
 
virtual bool isLegalToVectorizeStoreChain (unsigned ChainSizeInBytes, unsigned Alignment, unsigned AddrSpace) const =0
 
virtual unsigned getLoadVectorFactor (unsigned VF, unsigned LoadSize, unsigned ChainSizeInBytes, VectorType *VecTy) const =0
 
virtual unsigned getStoreVectorFactor (unsigned VF, unsigned StoreSize, unsigned ChainSizeInBytes, VectorType *VecTy) const =0
 
virtual bool useReductionIntrinsic (unsigned Opcode, Type *Ty, ReductionFlags) const =0
 
virtual bool shouldExpandReduction (const IntrinsicInst *II) const =0
 
virtual int getInstructionLatency (const Instruction *I)=0
 

Detailed Description

Definition at line 1030 of file TargetTransformInfo.h.

Constructor & Destructor Documentation

◆ ~Concept()

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

Definition at line 1172 of file TargetTransformInfo.cpp.

Member Function Documentation

◆ allowsMisalignedMemoryAccesses()

virtual bool llvm::TargetTransformInfo::Concept::allowsMisalignedMemoryAccesses ( LLVMContext Context,
unsigned  BitWidth,
unsigned  AddressSpace,
unsigned  Alignment,
bool Fast 
)
pure virtual

◆ areFunctionArgsABICompatible()

virtual bool llvm::TargetTransformInfo::Concept::areFunctionArgsABICompatible ( const Function Caller,
const Function Callee,
SmallPtrSetImpl< Argument *> &  Args 
) const
pure virtual

◆ areInlineCompatible()

virtual bool llvm::TargetTransformInfo::Concept::areInlineCompatible ( const Function Caller,
const Function Callee 
) const
pure virtual

◆ canMacroFuseCmp()

virtual bool llvm::TargetTransformInfo::Concept::canMacroFuseCmp ( )
pure virtual

◆ enableAggressiveInterleaving()

virtual bool llvm::TargetTransformInfo::Concept::enableAggressiveInterleaving ( bool  LoopHasReductions)
pure virtual

◆ enableInterleavedAccessVectorization()

virtual bool llvm::TargetTransformInfo::Concept::enableInterleavedAccessVectorization ( )
pure virtual

◆ enableMaskedInterleavedAccessVectorization()

virtual bool llvm::TargetTransformInfo::Concept::enableMaskedInterleavedAccessVectorization ( )
pure virtual

◆ enableMemCmpExpansion()

virtual const MemCmpExpansionOptions* llvm::TargetTransformInfo::Concept::enableMemCmpExpansion ( bool  IsZeroCmp) const
pure virtual

◆ getAddressComputationCost()

virtual int llvm::TargetTransformInfo::Concept::getAddressComputationCost ( Type Ty,
ScalarEvolution SE,
const SCEV Ptr 
)
pure virtual

◆ getArithmeticInstrCost()

virtual unsigned llvm::TargetTransformInfo::Concept::getArithmeticInstrCost ( unsigned  Opcode,
Type Ty,
OperandValueKind  Opd1Info,
OperandValueKind  Opd2Info,
OperandValueProperties  Opd1PropInfo,
OperandValueProperties  Opd2PropInfo,
ArrayRef< const Value *>  Args 
)
pure virtual

◆ getArithmeticReductionCost()

virtual int llvm::TargetTransformInfo::Concept::getArithmeticReductionCost ( unsigned  Opcode,
Type Ty,
bool  IsPairwiseForm 
)
pure virtual

◆ getAtomicMemIntrinsicMaxElementSize()

virtual unsigned llvm::TargetTransformInfo::Concept::getAtomicMemIntrinsicMaxElementSize ( ) const
pure virtual

◆ getCacheAssociativity()

virtual llvm::Optional<unsigned> llvm::TargetTransformInfo::Concept::getCacheAssociativity ( CacheLevel  Level)
pure virtual

◆ getCacheLineSize()

virtual unsigned llvm::TargetTransformInfo::Concept::getCacheLineSize ( )
pure virtual

◆ getCacheSize()

virtual llvm::Optional<unsigned> llvm::TargetTransformInfo::Concept::getCacheSize ( CacheLevel  Level)
pure virtual

◆ getCallCost() [1/3]

virtual int llvm::TargetTransformInfo::Concept::getCallCost ( FunctionType FTy,
int  NumArgs 
)
pure virtual

◆ getCallCost() [2/3]

virtual int llvm::TargetTransformInfo::Concept::getCallCost ( const Function F,
int  NumArgs 
)
pure virtual

◆ getCallCost() [3/3]

virtual int llvm::TargetTransformInfo::Concept::getCallCost ( const Function F,
ArrayRef< const Value *>  Arguments 
)
pure virtual

◆ getCallInstrCost()

virtual int llvm::TargetTransformInfo::Concept::getCallInstrCost ( Function F,
Type RetTy,
ArrayRef< Type *>  Tys 
)
pure virtual

◆ getCastInstrCost()

virtual int llvm::TargetTransformInfo::Concept::getCastInstrCost ( unsigned  Opcode,
Type Dst,
Type Src,
const Instruction I 
)
pure virtual

◆ getCFInstrCost()

virtual int llvm::TargetTransformInfo::Concept::getCFInstrCost ( unsigned  Opcode)
pure virtual

◆ getCmpSelInstrCost()

virtual int llvm::TargetTransformInfo::Concept::getCmpSelInstrCost ( unsigned  Opcode,
Type ValTy,
Type CondTy,
const Instruction I 
)
pure virtual

◆ getCostOfKeepingLiveOverCall()

virtual unsigned llvm::TargetTransformInfo::Concept::getCostOfKeepingLiveOverCall ( ArrayRef< Type *>  Tys)
pure virtual

◆ getDataLayout()

virtual const DataLayout& llvm::TargetTransformInfo::Concept::getDataLayout ( ) const
pure virtual

◆ getEstimatedNumberOfCaseClusters()

virtual unsigned llvm::TargetTransformInfo::Concept::getEstimatedNumberOfCaseClusters ( const SwitchInst SI,
unsigned JTSize 
)
pure virtual

◆ getExtCost()

virtual int llvm::TargetTransformInfo::Concept::getExtCost ( const Instruction I,
const Value Src 
)
pure virtual

◆ getExtractWithExtendCost()

virtual int llvm::TargetTransformInfo::Concept::getExtractWithExtendCost ( unsigned  Opcode,
Type Dst,
VectorType VecTy,
unsigned  Index 
)
pure virtual

◆ getFlatAddressSpace()

virtual unsigned llvm::TargetTransformInfo::Concept::getFlatAddressSpace ( )
pure virtual

◆ getFPOpCost()

virtual int llvm::TargetTransformInfo::Concept::getFPOpCost ( Type Ty)
pure virtual

◆ getGatherScatterOpCost()

virtual int llvm::TargetTransformInfo::Concept::getGatherScatterOpCost ( unsigned  Opcode,
Type DataTy,
Value Ptr,
bool  VariableMask,
unsigned  Alignment 
)
pure virtual

◆ getGEPCost()

virtual int llvm::TargetTransformInfo::Concept::getGEPCost ( Type PointeeType,
const Value Ptr,
ArrayRef< const Value *>  Operands 
)
pure virtual

◆ getInliningThresholdMultiplier()

virtual unsigned llvm::TargetTransformInfo::Concept::getInliningThresholdMultiplier ( )
pure virtual

◆ getInstructionLatency()

virtual int llvm::TargetTransformInfo::Concept::getInstructionLatency ( const Instruction I)
pure virtual

◆ getInterleavedMemoryOpCost()

virtual int llvm::TargetTransformInfo::Concept::getInterleavedMemoryOpCost ( unsigned  Opcode,
Type VecTy,
unsigned  Factor,
ArrayRef< unsigned Indices,
unsigned  Alignment,
unsigned  AddressSpace,
bool  UseMaskForCond = false,
bool  UseMaskForGaps = false 
)
pure virtual

◆ getIntImmCodeSizeCost()

virtual int llvm::TargetTransformInfo::Concept::getIntImmCodeSizeCost ( unsigned  Opc,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
pure virtual

◆ getIntImmCost() [1/3]

virtual int llvm::TargetTransformInfo::Concept::getIntImmCost ( const APInt Imm,
Type Ty 
)
pure virtual

◆ getIntImmCost() [2/3]

virtual int llvm::TargetTransformInfo::Concept::getIntImmCost ( unsigned  Opc,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
pure virtual

◆ getIntImmCost() [3/3]

virtual int llvm::TargetTransformInfo::Concept::getIntImmCost ( Intrinsic::ID  IID,
unsigned  Idx,
const APInt Imm,
Type Ty 
)
pure virtual

◆ getIntrinsicCost() [1/2]

virtual int llvm::TargetTransformInfo::Concept::getIntrinsicCost ( Intrinsic::ID  IID,
Type RetTy,
ArrayRef< Type *>  ParamTys 
)
pure virtual

◆ getIntrinsicCost() [2/2]

virtual int llvm::TargetTransformInfo::Concept::getIntrinsicCost ( Intrinsic::ID  IID,
Type RetTy,
ArrayRef< const Value *>  Arguments 
)
pure virtual

◆ getIntrinsicInstrCost() [1/2]

virtual int llvm::TargetTransformInfo::Concept::getIntrinsicInstrCost ( Intrinsic::ID  ID,
Type RetTy,
ArrayRef< Type *>  Tys,
FastMathFlags  FMF,
unsigned  ScalarizationCostPassed 
)
pure virtual

◆ getIntrinsicInstrCost() [2/2]

virtual int llvm::TargetTransformInfo::Concept::getIntrinsicInstrCost ( Intrinsic::ID  ID,
Type RetTy,
ArrayRef< Value *>  Args,
FastMathFlags  FMF,
unsigned  VF 
)
pure virtual

◆ getJumpBufAlignment()

virtual unsigned llvm::TargetTransformInfo::Concept::getJumpBufAlignment ( )
pure virtual

◆ getJumpBufSize()

virtual unsigned llvm::TargetTransformInfo::Concept::getJumpBufSize ( )
pure virtual

◆ getLoadStoreVecRegBitWidth()

virtual unsigned llvm::TargetTransformInfo::Concept::getLoadStoreVecRegBitWidth ( unsigned  AddrSpace) const
pure virtual

◆ getLoadVectorFactor()

virtual unsigned llvm::TargetTransformInfo::Concept::getLoadVectorFactor ( unsigned  VF,
unsigned  LoadSize,
unsigned  ChainSizeInBytes,
VectorType VecTy 
) const
pure virtual

◆ getMaskedMemoryOpCost()

virtual int llvm::TargetTransformInfo::Concept::getMaskedMemoryOpCost ( unsigned  Opcode,
Type Src,
unsigned  Alignment,
unsigned  AddressSpace 
)
pure virtual

◆ getMaxInterleaveFactor()

virtual unsigned llvm::TargetTransformInfo::Concept::getMaxInterleaveFactor ( unsigned  VF)
pure virtual

◆ getMaxPrefetchIterationsAhead()

virtual unsigned llvm::TargetTransformInfo::Concept::getMaxPrefetchIterationsAhead ( )
pure virtual

◆ getMemcpyLoopLoweringType()

virtual Type* llvm::TargetTransformInfo::Concept::getMemcpyLoopLoweringType ( LLVMContext Context,
Value Length,
unsigned  SrcAlign,
unsigned  DestAlign 
) const
pure virtual

◆ getMemcpyLoopResidualLoweringType()

virtual void llvm::TargetTransformInfo::Concept::getMemcpyLoopResidualLoweringType ( SmallVectorImpl< Type *> &  OpsOut,
LLVMContext Context,
unsigned  RemainingBytes,
unsigned  SrcAlign,
unsigned  DestAlign 
) const
pure virtual

◆ getMemoryOpCost()

virtual int llvm::TargetTransformInfo::Concept::getMemoryOpCost ( unsigned  Opcode,
Type Src,
unsigned  Alignment,
unsigned  AddressSpace,
const Instruction I 
)
pure virtual

◆ getMinimumVF()

virtual unsigned llvm::TargetTransformInfo::Concept::getMinimumVF ( unsigned  ElemWidth) const
pure virtual

◆ getMinMaxReductionCost()

virtual int llvm::TargetTransformInfo::Concept::getMinMaxReductionCost ( Type Ty,
Type CondTy,
bool  IsPairwiseForm,
bool  IsUnsigned 
)
pure virtual

◆ getMinPrefetchStride()

virtual unsigned llvm::TargetTransformInfo::Concept::getMinPrefetchStride ( )
pure virtual

◆ getMinVectorRegisterBitWidth()

virtual unsigned llvm::TargetTransformInfo::Concept::getMinVectorRegisterBitWidth ( )
pure virtual

◆ getNumberOfParts()

virtual unsigned llvm::TargetTransformInfo::Concept::getNumberOfParts ( Type Tp)
pure virtual

◆ getNumberOfRegisters()

virtual unsigned llvm::TargetTransformInfo::Concept::getNumberOfRegisters ( bool  Vector)
pure virtual

◆ getOperandsScalarizationOverhead()

virtual unsigned llvm::TargetTransformInfo::Concept::getOperandsScalarizationOverhead ( ArrayRef< const Value *>  Args,
unsigned  VF 
)
pure virtual

◆ getOperationCost()

virtual int llvm::TargetTransformInfo::Concept::getOperationCost ( unsigned  Opcode,
Type Ty,
Type OpTy 
)
pure virtual

◆ getOrCreateResultFromMemIntrinsic()

virtual Value* llvm::TargetTransformInfo::Concept::getOrCreateResultFromMemIntrinsic ( IntrinsicInst Inst,
Type ExpectedType 
)
pure virtual

◆ getPopcntSupport()

virtual PopcntSupportKind llvm::TargetTransformInfo::Concept::getPopcntSupport ( unsigned  IntTyWidthInBit)
pure virtual

◆ getPrefetchDistance()

virtual unsigned llvm::TargetTransformInfo::Concept::getPrefetchDistance ( )
pure virtual

◆ getRegisterBitWidth()

virtual unsigned llvm::TargetTransformInfo::Concept::getRegisterBitWidth ( bool  Vector) const
pure virtual

◆ getScalarizationOverhead()

virtual unsigned llvm::TargetTransformInfo::Concept::getScalarizationOverhead ( Type Ty,
bool  Insert,
bool  Extract 
)
pure virtual

◆ getScalingFactorCost()

virtual int llvm::TargetTransformInfo::Concept::getScalingFactorCost ( Type Ty,
GlobalValue BaseGV,
int64_t  BaseOffset,
bool  HasBaseReg,
int64_t  Scale,
unsigned  AddrSpace 
)
pure virtual

◆ getShuffleCost()

virtual int llvm::TargetTransformInfo::Concept::getShuffleCost ( ShuffleKind  Kind,
Type Tp,
int  Index,
Type SubTp 
)
pure virtual

◆ getStoreVectorFactor()

virtual unsigned llvm::TargetTransformInfo::Concept::getStoreVectorFactor ( unsigned  VF,
unsigned  StoreSize,
unsigned  ChainSizeInBytes,
VectorType VecTy 
) const
pure virtual

◆ getTgtMemIntrinsic()

virtual bool llvm::TargetTransformInfo::Concept::getTgtMemIntrinsic ( IntrinsicInst Inst,
MemIntrinsicInfo Info 
)
pure virtual

◆ getUnrollingPreferences()

virtual void llvm::TargetTransformInfo::Concept::getUnrollingPreferences ( Loop L,
ScalarEvolution ,
UnrollingPreferences UP 
)
pure virtual

◆ getUserCost()

virtual int llvm::TargetTransformInfo::Concept::getUserCost ( const User U,
ArrayRef< const Value *>  Operands 
)
pure virtual

◆ getVectorInstrCost()

virtual int llvm::TargetTransformInfo::Concept::getVectorInstrCost ( unsigned  Opcode,
Type Val,
unsigned  Index 
)
pure virtual

◆ hasBranchDivergence()

virtual bool llvm::TargetTransformInfo::Concept::hasBranchDivergence ( )
pure virtual

◆ hasDivRemOp()

virtual bool llvm::TargetTransformInfo::Concept::hasDivRemOp ( Type DataType,
bool  IsSigned 
)
pure virtual

◆ hasVolatileVariant()

virtual bool llvm::TargetTransformInfo::Concept::hasVolatileVariant ( Instruction I,
unsigned  AddrSpace 
)
pure virtual

◆ haveFastSqrt()

virtual bool llvm::TargetTransformInfo::Concept::haveFastSqrt ( Type Ty)
pure virtual

◆ isAlwaysUniform()

virtual bool llvm::TargetTransformInfo::Concept::isAlwaysUniform ( const Value V)
pure virtual

◆ isFCmpOrdCheaperThanFCmpZero()

virtual bool llvm::TargetTransformInfo::Concept::isFCmpOrdCheaperThanFCmpZero ( Type Ty)
pure virtual

◆ isFPVectorizationPotentiallyUnsafe()

virtual bool llvm::TargetTransformInfo::Concept::isFPVectorizationPotentiallyUnsafe ( )
pure virtual

◆ isIndexedLoadLegal()

virtual bool llvm::TargetTransformInfo::Concept::isIndexedLoadLegal ( MemIndexedMode  Mode,
Type Ty 
) const
pure virtual

◆ isIndexedStoreLegal()

virtual bool llvm::TargetTransformInfo::Concept::isIndexedStoreLegal ( MemIndexedMode  Mode,
Type Ty 
) const
pure virtual

◆ isLegalAddImmediate()

virtual bool llvm::TargetTransformInfo::Concept::isLegalAddImmediate ( int64_t  Imm)
pure virtual

◆ isLegalAddressingMode()

virtual bool llvm::TargetTransformInfo::Concept::isLegalAddressingMode ( Type Ty,
GlobalValue BaseGV,
int64_t  BaseOffset,
bool  HasBaseReg,
int64_t  Scale,
unsigned  AddrSpace,
Instruction I 
)
pure virtual

◆ isLegalICmpImmediate()

virtual bool llvm::TargetTransformInfo::Concept::isLegalICmpImmediate ( int64_t  Imm)
pure virtual

◆ isLegalMaskedGather()

virtual bool llvm::TargetTransformInfo::Concept::isLegalMaskedGather ( Type DataType)
pure virtual

◆ isLegalMaskedLoad()

virtual bool llvm::TargetTransformInfo::Concept::isLegalMaskedLoad ( Type DataType)
pure virtual

◆ isLegalMaskedScatter()

virtual bool llvm::TargetTransformInfo::Concept::isLegalMaskedScatter ( Type DataType)
pure virtual

◆ isLegalMaskedStore()

virtual bool llvm::TargetTransformInfo::Concept::isLegalMaskedStore ( Type DataType)
pure virtual

◆ isLegalToVectorizeLoad()

virtual bool llvm::TargetTransformInfo::Concept::isLegalToVectorizeLoad ( LoadInst LI) const
pure virtual

◆ isLegalToVectorizeLoadChain()

virtual bool llvm::TargetTransformInfo::Concept::isLegalToVectorizeLoadChain ( unsigned  ChainSizeInBytes,
unsigned  Alignment,
unsigned  AddrSpace 
) const
pure virtual

◆ isLegalToVectorizeStore()

virtual bool llvm::TargetTransformInfo::Concept::isLegalToVectorizeStore ( StoreInst SI) const
pure virtual

◆ isLegalToVectorizeStoreChain()

virtual bool llvm::TargetTransformInfo::Concept::isLegalToVectorizeStoreChain ( unsigned  ChainSizeInBytes,
unsigned  Alignment,
unsigned  AddrSpace 
) const
pure virtual

◆ isLoweredToCall()

virtual bool llvm::TargetTransformInfo::Concept::isLoweredToCall ( const Function F)
pure virtual

◆ isLSRCostLess()

virtual bool llvm::TargetTransformInfo::Concept::isLSRCostLess ( TargetTransformInfo::LSRCost C1,
TargetTransformInfo::LSRCost C2 
)
pure virtual

◆ isProfitableToHoist()

virtual bool llvm::TargetTransformInfo::Concept::isProfitableToHoist ( Instruction I)
pure virtual

◆ isSourceOfDivergence()

virtual bool llvm::TargetTransformInfo::Concept::isSourceOfDivergence ( const Value V)
pure virtual

◆ isTruncateFree()

virtual bool llvm::TargetTransformInfo::Concept::isTruncateFree ( Type Ty1,
Type Ty2 
)
pure virtual

◆ isTypeLegal()

virtual bool llvm::TargetTransformInfo::Concept::isTypeLegal ( Type Ty)
pure virtual

◆ LSRWithInstrQueries()

virtual bool llvm::TargetTransformInfo::Concept::LSRWithInstrQueries ( )
pure virtual

◆ prefersVectorizedAddressing()

virtual bool llvm::TargetTransformInfo::Concept::prefersVectorizedAddressing ( )
pure virtual

◆ shouldBuildLookupTables()

virtual bool llvm::TargetTransformInfo::Concept::shouldBuildLookupTables ( )
pure virtual

◆ shouldBuildLookupTablesForConstant()

virtual bool llvm::TargetTransformInfo::Concept::shouldBuildLookupTablesForConstant ( Constant C)
pure virtual

◆ shouldConsiderAddressTypePromotion()

virtual bool llvm::TargetTransformInfo::Concept::shouldConsiderAddressTypePromotion ( const Instruction I,
bool AllowPromotionWithoutCommonHeader 
)
pure virtual

◆ shouldExpandReduction()

virtual bool llvm::TargetTransformInfo::Concept::shouldExpandReduction ( const IntrinsicInst II) const
pure virtual

◆ shouldFavorPostInc()

virtual bool llvm::TargetTransformInfo::Concept::shouldFavorPostInc ( ) const
pure virtual

◆ shouldMaximizeVectorBandwidth()

virtual bool llvm::TargetTransformInfo::Concept::shouldMaximizeVectorBandwidth ( bool  OptSize) const
pure virtual

◆ supportsEfficientVectorElementLoadStore()

virtual bool llvm::TargetTransformInfo::Concept::supportsEfficientVectorElementLoadStore ( )
pure virtual

◆ useAA()

virtual bool llvm::TargetTransformInfo::Concept::useAA ( )
pure virtual

◆ useColdCCForColdCall()

virtual bool llvm::TargetTransformInfo::Concept::useColdCCForColdCall ( Function F)
pure virtual

◆ useReductionIntrinsic()

virtual bool llvm::TargetTransformInfo::Concept::useReductionIntrinsic ( unsigned  Opcode,
Type Ty,
ReductionFlags   
) const
pure virtual

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