CRTP base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.
More...
|
unsigned | getCallCost (const Function *F, int NumArgs) |
|
unsigned | getCallCost (const Function *F, ArrayRef< const Value *> Arguments) |
|
int | getGEPCost (Type *PointeeType, const Value *Ptr, ArrayRef< const Value *> Operands) |
|
unsigned | getIntrinsicCost (Intrinsic::ID IID, Type *RetTy, ArrayRef< const Value *> Arguments) |
|
unsigned | getUserCost (const User *U, ArrayRef< const Value *> Operands) |
|
int | getInstructionLatency (const Instruction *I) |
|
| TargetTransformInfoImplBase (const TargetTransformInfoImplBase &Arg) |
|
| TargetTransformInfoImplBase (TargetTransformInfoImplBase &&Arg) |
|
const DataLayout & | getDataLayout () 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 | canMacroFuseCmp () |
|
bool | shouldFavorPostInc () const |
|
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 | useAA () |
|
bool | isTypeLegal (Type *Ty) |
|
unsigned | getJumpBufAlignment () |
|
unsigned | getJumpBufSize () |
|
bool | shouldBuildLookupTables () |
|
bool | shouldBuildLookupTablesForConstant (Constant *C) |
|
bool | useColdCCForColdCall (Function &F) |
|
unsigned | getScalarizationOverhead (Type *Ty, bool Insert, bool Extract) |
|
unsigned | getOperandsScalarizationOverhead (ArrayRef< const Value *> Args, unsigned VF) |
|
bool | supportsEfficientVectorElementLoadStore () |
|
bool | enableAggressiveInterleaving (bool LoopHasReductions) |
|
const TTI::MemCmpExpansionOptions * | enableMemCmpExpansion (bool IsZeroCmp) const |
|
bool | enableInterleavedAccessVectorization () |
|
bool | enableMaskedInterleavedAccessVectorization () |
|
bool | isFPVectorizationPotentiallyUnsafe () |
|
bool | allowsMisalignedMemoryAccesses (LLVMContext &Context, unsigned BitWidth, unsigned AddressSpace, unsigned Alignment, bool *Fast) |
|
TTI::PopcntSupportKind | getPopcntSupport (unsigned IntTyWidthInBit) |
|
bool | haveFastSqrt (Type *Ty) |
|
bool | isFCmpOrdCheaperThanFCmpZero (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 | shouldMaximizeVectorBandwidth (bool OptSize) const |
|
unsigned | getMinimumVF (unsigned ElemWidth) const |
|
bool | shouldConsiderAddressTypePromotion (const Instruction &I, bool &AllowPromotionWithoutCommonHeader) |
|
unsigned | getCacheLineSize () |
|
llvm::Optional< unsigned > | getCacheSize (TargetTransformInfo::CacheLevel Level) |
|
llvm::Optional< unsigned > | getCacheAssociativity (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, bool UseMaskForCond=false, bool UseMaskForGaps=false) |
|
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 |
|
Value * | getOrCreateResultFromMemIntrinsic (IntrinsicInst *Inst, Type *ExpectedType) |
|
Type * | getMemcpyLoopLoweringType (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 |
|
bool | areFunctionArgsABICompatible (const Function *Caller, const Function *Callee, SmallPtrSetImpl< Argument *> &Args) const |
|
bool | isIndexedLoadLegal (TTI::MemIndexedMode Mode, Type *Ty, const DataLayout &DL) const |
|
bool | isIndexedStoreLegal (TTI::MemIndexedMode Mode, Type *Ty, const DataLayout &DL) 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 |
|
template<typename T>
class llvm::TargetTransformInfoImplCRTPBase< T >
CRTP base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.
Definition at line 672 of file TargetTransformInfoImpl.h.