class TargetTransformInfoImplBase

Declaration

class TargetTransformInfoImplBase { /* full declaration omitted */ };

Description

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:33

Member Variables

protected const llvm::DataLayout& DL

Method Overview

Methods

bool LSRWithInstrQueries() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:310

TargetTransformInfoImplBase(
    const llvm::TargetTransformInfoImplBase& Arg)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:43

Parameters

const llvm::TargetTransformInfoImplBase& Arg

TargetTransformInfoImplBase(
    llvm::TargetTransformInfoImplBase&& Arg)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:44

Parameters

llvm::TargetTransformInfoImplBase&& Arg

TargetTransformInfoImplBase(
    const llvm::DataLayout& DL)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:39

Parameters

const llvm::DataLayout& DL

unsigned int adjustInliningThreshold(
    const llvm::CallBase* CB) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:71

Parameters

const llvm::CallBase* CB

bool allowsMisalignedMemoryAccesses(
    llvm::LLVMContext& Context,
    unsigned int BitWidth,
    unsigned int AddressSpace,
    llvm::Align Alignment,
    bool* Fast) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:360

Parameters

llvm::LLVMContext& Context
unsigned int BitWidth
unsigned int AddressSpace
llvm::Align Alignment
bool* Fast

bool areInlineCompatible(
    const llvm::Function* Caller,
    const llvm::Function* Callee) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:731

Parameters

const llvm::Function* Caller
const llvm::Function* Callee

bool areTypesABICompatible(
    const llvm::Function* Caller,
    const llvm::Function* Callee,
    const ArrayRef<llvm::Type*>& Types) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:739

Parameters

const llvm::Function* Caller
const llvm::Function* Callee
const ArrayRef<llvm::Type*>& Types

bool canHaveNonUndefGlobalInitializerInAddressSpace(
    unsigned int AS) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:105

Parameters

unsigned int AS

bool canMacroFuseCmp() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:224

bool canSaveCmp(
    llvm::Loop* L,
    llvm::BranchInst** BI,
    llvm::ScalarEvolution* SE,
    llvm::LoopInfo* LI,
    llvm::DominatorTree* DT,
    llvm::AssumptionCache* AC,
    llvm::TargetLibraryInfo* LibInfo) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:226

Parameters

llvm::Loop* L
llvm::BranchInst** BI
llvm::ScalarEvolution* SE
llvm::LoopInfo* LI
llvm::DominatorTree* DT
llvm::AssumptionCache* AC
llvm::TargetLibraryInfo* LibInfo

bool collectFlatAddressOperands(
    SmallVectorImpl<int>& OpIndexes,
    Intrinsic::ID IID) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:99

Parameters

SmallVectorImpl<int>& OpIndexes
Intrinsic::ID IID

llvm::PredicationStyle emitGetActiveLaneMask()
    const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:170

bool enableAggressiveInterleaving(
    bool LoopHasReductions) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:345

Parameters

bool LoopHasReductions

bool enableInterleavedAccessVectorization() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:354

bool enableMaskedInterleavedAccessVectorization()
    const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:356

TTI::MemCmpExpansionOptions enableMemCmpExpansion(
    bool OptSize,
    bool IsZeroCmp) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:349

Parameters

bool OptSize
bool IsZeroCmp

bool enableOrderedReductions() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:289

bool enableScalableVectorization() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:810

bool enableWritePrefetching() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:477

bool forceScalarizeMaskedGather(
    llvm::VectorType* DataType,
    llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:271

Parameters

llvm::VectorType* DataType
llvm::Align Alignment

bool forceScalarizeMaskedScatter(
    llvm::VectorType* DataType,
    llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:275

Parameters

llvm::VectorType* DataType
llvm::Align Alignment

llvm::InstructionCost getAddressComputationCost(
    llvm::Type* Tp,
    llvm::ScalarEvolution*,
    const llvm::SCEV*) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:667

Parameters

llvm::Type* Tp
llvm::ScalarEvolution*
const llvm::SCEV*

llvm::InstructionCost getArithmeticInstrCost(
    unsigned int Opcode,
    llvm::Type* Ty,
    TTI::TargetCostKind CostKind,
    TTI::OperandValueKind Opd1Info,
    TTI::OperandValueKind Opd2Info,
    TTI::OperandValueProperties Opd1PropInfo,
    TTI::OperandValueProperties Opd2PropInfo,
    ArrayRef<const llvm::Value*> Args,
    const llvm::Instruction* CxtI = nullptr) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:481

Parameters

unsigned int Opcode
llvm::Type* Ty
TTI::TargetCostKind CostKind
TTI::OperandValueKind Opd1Info
TTI::OperandValueKind Opd2Info
TTI::OperandValueProperties Opd1PropInfo
TTI::OperandValueProperties Opd2PropInfo
ArrayRef<const llvm::Value*> Args
const llvm::Instruction* CxtI = nullptr

llvm::InstructionCost getArithmeticReductionCost(
    unsigned int,
    llvm::VectorType*,
    Optional<llvm::FastMathFlags> FMF,
    TTI::TargetCostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:672

Parameters

unsigned int
llvm::VectorType*
Optional<llvm::FastMathFlags> FMF
TTI::TargetCostKind

unsigned int getAssumedAddrSpace(
    const llvm::Value* V) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:109

Parameters

const llvm::Value* V

unsigned int getAtomicMemIntrinsicMaxElementSize()
    const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:698

llvm::InstructionCost getCFInstrCost(
    unsigned int Opcode,
    TTI::TargetCostKind CostKind,
    const llvm::Instruction* I = nullptr) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:555

Parameters

unsigned int Opcode
TTI::TargetCostKind CostKind
const llvm::Instruction* I = nullptr

llvm::Optional<unsigned int>
getCacheAssociativity(
    TargetTransformInfo::CacheLevel Level) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:459

Parameters

TargetTransformInfo::CacheLevel Level

unsigned int getCacheLineSize() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:445

llvm::Optional<unsigned int> getCacheSize(
    TargetTransformInfo::CacheLevel Level) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:448

Parameters

TargetTransformInfo::CacheLevel Level

llvm::InstructionCost getCallInstrCost(
    llvm::Function* F,
    llvm::Type* RetTy,
    ArrayRef<llvm::Type*> Tys,
    TTI::TargetCostKind CostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:658

Parameters

llvm::Function* F
llvm::Type* RetTy
ArrayRef<llvm::Type*> Tys
TTI::TargetCostKind CostKind

llvm::InstructionCost getCastInstrCost(
    unsigned int Opcode,
    llvm::Type* Dst,
    llvm::Type* Src,
    TTI::CastContextHint CCH,
    TTI::TargetCostKind CostKind,
    const llvm::Instruction* I) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:511

Parameters

unsigned int Opcode
llvm::Type* Dst
llvm::Type* Src
TTI::CastContextHint CCH
TTI::TargetCostKind CostKind
const llvm::Instruction* I

llvm::InstructionCost getCmpSelInstrCost(
    unsigned int Opcode,
    llvm::Type* ValTy,
    llvm::Type* CondTy,
    CmpInst::Predicate VecPred,
    TTI::TargetCostKind CostKind,
    const llvm::Instruction* I) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:564

Parameters

unsigned int Opcode
llvm::Type* ValTy
llvm::Type* CondTy
CmpInst::Predicate VecPred
TTI::TargetCostKind CostKind
const llvm::Instruction* I

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:885

Parameters

llvm::ScalarEvolution* SE
const llvm::SCEV* Ptr

llvm::InstructionCost
getCostOfKeepingLiveOverCall(
    ArrayRef<llvm::Type*> Tys) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:690

Parameters

ArrayRef<llvm::Type*> Tys

const llvm::DataLayout& getDataLayout() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:46

unsigned int getEstimatedNumberOfCaseClusters(
    const llvm::SwitchInst& SI,
    unsigned int& JTSize,
    llvm::ProfileSummaryInfo* PSI,
    llvm::BlockFrequencyInfo* BFI) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:60

Parameters

const llvm::SwitchInst& SI
unsigned int& JTSize
llvm::ProfileSummaryInfo* PSI
llvm::BlockFrequencyInfo* BFI

llvm::InstructionCost getExtendedAddReductionCost(
    bool IsMLA,
    bool IsUnsigned,
    llvm::Type* ResTy,
    llvm::VectorType* Ty,
    TTI::TargetCostKind CostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:684

Parameters

bool IsMLA
bool IsUnsigned
llvm::Type* ResTy
llvm::VectorType* Ty
TTI::TargetCostKind CostKind

llvm::InstructionCost getExtractWithExtendCost(
    unsigned int Opcode,
    llvm::Type* Dst,
    llvm::VectorType* VecTy,
    unsigned int Index) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:549

Parameters

unsigned int Opcode
llvm::Type* Dst
llvm::VectorType* VecTy
unsigned int Index

llvm::InstructionCost getFPOpCost(
    llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:374

Parameters

llvm::Type* Ty

unsigned int getFlatAddressSpace() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:97

llvm::InstructionCost getGEPCost(
    llvm::Type* PointeeType,
    const llvm::Value* Ptr,
    ArrayRef<const llvm::Value*> Operands,
    TTI::TargetCostKind CostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:48

Parameters

llvm::Type* PointeeType
const llvm::Value* Ptr
ArrayRef<const llvm::Value*> Operands
TTI::TargetCostKind CostKind

unsigned int getGISelRematGlobalCost() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:804

llvm::InstructionCost getGatherScatterOpCost(
    unsigned int Opcode,
    llvm::Type* DataTy,
    const llvm::Value* Ptr,
    bool VariableMask,
    llvm::Align Alignment,
    TTI::TargetCostKind CostKind,
    const llvm::Instruction* I = nullptr) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:602

Parameters

unsigned int Opcode
llvm::Type* DataTy
const llvm::Value* Ptr
bool VariableMask
llvm::Align Alignment
TTI::TargetCostKind CostKind
const llvm::Instruction* I = nullptr

int getInlinerVectorBonusPercent() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:73

unsigned int getInliningThresholdMultiplier()
    const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:70

llvm::InstructionCost getIntImmCodeSizeCost(
    unsigned int Opcode,
    unsigned int Idx,
    const llvm::APInt& Imm,
    llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:378

Parameters

unsigned int Opcode
unsigned int Idx
const llvm::APInt& Imm
llvm::Type* Ty

llvm::InstructionCost getIntImmCost(
    const llvm::APInt& Imm,
    llvm::Type* Ty,
    TTI::TargetCostKind CostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:383

Parameters

const llvm::APInt& Imm
llvm::Type* Ty
TTI::TargetCostKind CostKind

llvm::InstructionCost getIntImmCostInst(
    unsigned int Opcode,
    unsigned int Idx,
    const llvm::APInt& Imm,
    llvm::Type* Ty,
    TTI::TargetCostKind CostKind,
    llvm::Instruction* Inst = nullptr) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:388

Parameters

unsigned int Opcode
unsigned int Idx
const llvm::APInt& Imm
llvm::Type* Ty
TTI::TargetCostKind CostKind
llvm::Instruction* Inst = nullptr

llvm::InstructionCost getIntImmCostIntrin(
    Intrinsic::ID IID,
    unsigned int Idx,
    const llvm::APInt& Imm,
    llvm::Type* Ty,
    TTI::TargetCostKind CostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:395

Parameters

Intrinsic::ID IID
unsigned int Idx
const llvm::APInt& Imm
llvm::Type* Ty
TTI::TargetCostKind CostKind

unsigned int getInterleavedMemoryOpCost(
    unsigned int Opcode,
    llvm::Type* VecTy,
    unsigned int Factor,
    ArrayRef<unsigned int> Indices,
    llvm::Align Alignment,
    unsigned int AddressSpace,
    TTI::TargetCostKind CostKind,
    bool UseMaskForCond,
    bool UseMaskForGaps) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:610

Parameters

unsigned int Opcode
llvm::Type* VecTy
unsigned int Factor
ArrayRef<unsigned int> Indices
llvm::Align Alignment
unsigned int AddressSpace
TTI::TargetCostKind CostKind
bool UseMaskForCond
bool UseMaskForGaps

llvm::InstructionCost getIntrinsicInstrCost(
    const llvm::IntrinsicCostAttributes& ICA,
    TTI::TargetCostKind CostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:617

Parameters

const llvm::IntrinsicCostAttributes& ICA
TTI::TargetCostKind CostKind

unsigned int getLoadStoreVecRegBitWidth(
    unsigned int AddrSpace) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:757

Parameters

unsigned int AddrSpace

unsigned int getLoadVectorFactor(
    unsigned int VF,
    unsigned int LoadSize,
    unsigned int ChainSizeInBytes,
    llvm::VectorType* VecTy) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:780

Parameters

unsigned int VF
unsigned int LoadSize
unsigned int ChainSizeInBytes
llvm::VectorType* VecTy

llvm::InstructionCost getMaskedMemoryOpCost(
    unsigned int Opcode,
    llvm::Type* Src,
    llvm::Align Alignment,
    unsigned int AddressSpace,
    TTI::TargetCostKind CostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:596

Parameters

unsigned int Opcode
llvm::Type* Src
llvm::Align Alignment
unsigned int AddressSpace
TTI::TargetCostKind CostKind

unsigned int getMaxInterleaveFactor(
    unsigned int VF) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:479

Parameters

unsigned int VF

unsigned int getMaxPrefetchIterationsAhead() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:476

Optional<unsigned int> getMaxVScale() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:424

unsigned int getMaximumVF(
    unsigned int ElemWidth,
    unsigned int Opcode) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:436

Parameters

unsigned int ElemWidth
unsigned int Opcode

llvm::InstructionCost getMemcpyCost(
    const llvm::Instruction* I) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:75

Parameters

const llvm::Instruction* I

llvm::Type* getMemcpyLoopLoweringType(
    llvm::LLVMContext& Context,
    llvm::Value* Length,
    unsigned int SrcAddrSpace,
    unsigned int DestAddrSpace,
    unsigned int SrcAlign,
    unsigned int DestAlign,
    Optional<uint32_t> AtomicElementSize) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:712

Parameters

llvm::LLVMContext& Context
llvm::Value* Length
unsigned int SrcAddrSpace
unsigned int DestAddrSpace
unsigned int SrcAlign
unsigned int DestAlign
Optional<uint32_t> AtomicElementSize

void getMemcpyLoopResidualLoweringType(
    SmallVectorImpl<llvm::Type*>& OpsOut,
    llvm::LLVMContext& Context,
    unsigned int RemainingBytes,
    unsigned int SrcAddrSpace,
    unsigned int DestAddrSpace,
    unsigned int SrcAlign,
    unsigned int DestAlign,
    Optional<uint32_t> AtomicCpySize) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:720

Parameters

SmallVectorImpl<llvm::Type*>& OpsOut
llvm::LLVMContext& Context
unsigned int RemainingBytes
unsigned int SrcAddrSpace
unsigned int DestAddrSpace
unsigned int SrcAlign
unsigned int DestAlign
Optional<uint32_t> AtomicCpySize

llvm::InstructionCost getMemoryOpCost(
    unsigned int Opcode,
    llvm::Type* Src,
    llvm::Align Alignment,
    unsigned int AddressSpace,
    TTI::TargetCostKind CostKind,
    const llvm::Instruction* I) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:582

Parameters

unsigned int Opcode
llvm::Type* Src
llvm::Align Alignment
unsigned int AddressSpace
TTI::TargetCostKind CostKind
const llvm::Instruction* I

llvm::InstructionCost getMinMaxReductionCost(
    llvm::VectorType*,
    llvm::VectorType*,
    bool,
    TTI::TargetCostKind) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:678

Parameters

llvm::VectorType*
llvm::VectorType*
bool
TTI::TargetCostKind

unsigned int getMinPrefetchStride(
    unsigned int NumMemAccesses,
    unsigned int NumStridedMemAccesses,
    unsigned int NumPrefetches,
    bool HasCall) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:471

Parameters

unsigned int NumMemAccesses
unsigned int NumStridedMemAccesses
unsigned int NumPrefetches
bool HasCall

unsigned int getMinTripCountTailFoldingThreshold()
    const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:806

unsigned int getMinVectorRegisterBitWidth() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:422

llvm::ElementCount getMinimumVF(
    unsigned int ElemWidth,
    bool IsScalable) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:432

Parameters

unsigned int ElemWidth
bool IsScalable

unsigned int getNumberOfParts(
    llvm::Type* Tp) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:665

Parameters

llvm::Type* Tp

unsigned int getNumberOfRegisters(
    unsigned int ClassID) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:401

Parameters

unsigned int ClassID

llvm::InstructionCost
getOperandsScalarizationOverhead(
    ArrayRef<const llvm::Value*> Args,
    ArrayRef<llvm::Type*> Tys) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:336

Parameters

ArrayRef<const llvm::Value*> Args
ArrayRef<llvm::Type*> Tys

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:707

Parameters

llvm::IntrinsicInst* Inst
llvm::Type* ExpectedType

void getPeelingPreferences(
    llvm::Loop*,
    llvm::ScalarEvolution&,
    TTI::PeelingPreferences&) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:198

Parameters

llvm::Loop*
llvm::ScalarEvolution&
TTI::PeelingPreferences&

TTI::PopcntSupportKind getPopcntSupport(
    unsigned int IntTyWidthInBit) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:366

Parameters

unsigned int IntTyWidthInBit

std::pair<const Value*, unsigned int>
getPredicatedAddrSpace(const llvm::Value* V) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:112

Parameters

const llvm::Value* V

llvm::BranchProbability
getPredictableBranchThreshold() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:85

TTI::AddressingModeKind
getPreferredAddressingMode(
    const llvm::Loop* L,
    llvm::ScalarEvolution* SE) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:233

Parameters

const llvm::Loop* L
llvm::ScalarEvolution* SE

unsigned int getPrefetchDistance() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:470

unsigned int getRegUsageForType(
    llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:320

Parameters

llvm::Type* Ty

llvm::TypeSize getRegisterBitWidth(
    TargetTransformInfo::RegisterKind K) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:418

Parameters

TargetTransformInfo::RegisterKind K

unsigned int getRegisterClassForType(
    bool Vector,
    llvm::Type* Ty = nullptr) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:403

Parameters

bool Vector
llvm::Type* Ty = nullptr

const char* getRegisterClassName(
    unsigned int ClassID) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:407

Parameters

unsigned int ClassID

unsigned int getReplicationShuffleCost(
    llvm::Type* EltTy,
    int ReplicationFactor,
    int VF,
    const llvm::APInt& DemandedDstElts,
    TTI::TargetCostKind CostKind)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:576

Parameters

llvm::Type* EltTy
int ReplicationFactor
int VF
const llvm::APInt& DemandedDstElts
TTI::TargetCostKind CostKind

llvm::InstructionCost getScalarizationOverhead(
    llvm::VectorType* Ty,
    const llvm::APInt& DemandedElts,
    bool Insert,
    bool Extract) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:330

Parameters

llvm::VectorType* Ty
const llvm::APInt& DemandedElts
bool Insert
bool Extract

llvm::InstructionCost getScalingFactorCost(
    llvm::Type* Ty,
    llvm::GlobalValue* BaseGV,
    int64_t BaseOffset,
    bool HasBaseReg,
    int64_t Scale,
    unsigned int AddrSpace) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:299

Parameters

llvm::Type* Ty
llvm::GlobalValue* BaseGV
int64_t BaseOffset
bool HasBaseReg
int64_t Scale
unsigned int AddrSpace

llvm::InstructionCost getShuffleCost(
    TTI::ShuffleKind Kind,
    llvm::VectorType* Ty,
    ArrayRef<int> Mask,
    int Index,
    llvm::VectorType* SubTp,
    ArrayRef<const llvm::Value*> Args =
        None) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:504

Parameters

TTI::ShuffleKind Kind
llvm::VectorType* Ty
ArrayRef<int> Mask
int Index
llvm::VectorType* SubTp
ArrayRef<const llvm::Value*> Args = None

unsigned int getStoreMinimumVF(unsigned int VF,
                               llvm::Type*,
                               llvm::Type*) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:437

Parameters

unsigned int VF
llvm::Type*
llvm::Type*

unsigned int getStoreVectorFactor(
    unsigned int VF,
    unsigned int StoreSize,
    unsigned int ChainSizeInBytes,
    llvm::VectorType* VecTy) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:786

Parameters

unsigned int VF
unsigned int StoreSize
unsigned int ChainSizeInBytes
llvm::VectorType* VecTy

bool getTgtMemIntrinsic(
    llvm::IntrinsicInst* Inst,
    llvm::MemIntrinsicInfo& Info) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:694

Parameters

llvm::IntrinsicInst* Inst
llvm::MemIntrinsicInfo& Info

void getUnrollingPreferences(
    llvm::Loop*,
    llvm::ScalarEvolution&,
    TTI::UnrollingPreferences&,
    llvm::OptimizationRemarkEmitter*) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:194

Parameters

llvm::Loop*
llvm::ScalarEvolution&
TTI::UnrollingPreferences&
llvm::OptimizationRemarkEmitter*

TargetTransformInfo::VPLegalization
getVPLegalizationStrategy(
    const llvm::VPIntrinsic& PI) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:818

Parameters

const llvm::VPIntrinsic& PI

llvm::InstructionCost getVPMemoryOpCost(
    unsigned int Opcode,
    llvm::Type* Src,
    llvm::Align Alignment,
    unsigned int AddressSpace,
    TTI::TargetCostKind CostKind,
    const llvm::Instruction* I) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:589

Parameters

unsigned int Opcode
llvm::Type* Src
llvm::Align Alignment
unsigned int AddressSpace
TTI::TargetCostKind CostKind
const llvm::Instruction* I

Optional<unsigned int> getVScaleForTuning() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:425

llvm::InstructionCost getVectorInstrCost(
    unsigned int Opcode,
    llvm::Type* Val,
    unsigned int Index) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:571

Parameters

unsigned int Opcode
llvm::Type* Val
unsigned int Index

bool hasActiveVectorLength(
    unsigned int Opcode,
    llvm::Type* DataType,
    llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:812

Parameters

unsigned int Opcode
llvm::Type* DataType
llvm::Align Alignment

bool hasBranchDivergence() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:89

bool hasDivRemOp(llvm::Type* DataType,
                 bool IsSigned) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:291

Parameters

llvm::Type* DataType
bool IsSigned

bool hasVolatileVariant(
    llvm::Instruction* I,
    unsigned int AddrSpace) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:293

Parameters

llvm::Instruction* I
unsigned int AddrSpace

bool haveFastSqrt(llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:370

Parameters

llvm::Type* Ty

Optional<llvm::Instruction*> instCombineIntrinsic(
    llvm::InstCombiner& IC,
    llvm::IntrinsicInst& II) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:174

Parameters

llvm::InstCombiner& IC
llvm::IntrinsicInst& II

bool isAlwaysUniform(const llvm::Value* V) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:95

Parameters

const llvm::Value* V

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:893

Parameters

llvm::ScalarEvolution* SE
const llvm::SCEV* Ptr
int64_t MergeDistance

bool isElementTypeLegalForScalableVector(
    llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:778

Parameters

llvm::Type* Ty

bool isFCmpOrdCheaperThanFCmpZero(
    llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:372

Parameters

llvm::Type* Ty

bool isFPVectorizationPotentiallyUnsafe() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:358

bool isHardwareLoopProfitable(
    llvm::Loop* L,
    llvm::ScalarEvolution& SE,
    llvm::AssumptionCache& AC,
    llvm::TargetLibraryInfo* LibInfo,
    llvm::HardwareLoopInfo& HWLoopInfo) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:157

Parameters

llvm::Loop* L
llvm::ScalarEvolution& SE
llvm::AssumptionCache& AC
llvm::TargetLibraryInfo* LibInfo
llvm::HardwareLoopInfo& HWLoopInfo

bool isIndexedLoadLegal(
    TTI::MemIndexedMode Mode,
    llvm::Type* Ty,
    const llvm::DataLayout& DL) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:747

Parameters

TTI::MemIndexedMode Mode
llvm::Type* Ty
const llvm::DataLayout& DL

bool isIndexedStoreLegal(
    TTI::MemIndexedMode Mode,
    llvm::Type* Ty,
    const llvm::DataLayout& DL) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:752

Parameters

TTI::MemIndexedMode Mode
llvm::Type* Ty
const llvm::DataLayout& DL

bool isLSRCostLess(const TTI::LSRCost& C1,
                   const TTI::LSRCost& C2) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:213

Parameters

const TTI::LSRCost& C1
const TTI::LSRCost& C2

bool isLegalAddImmediate(int64_t Imm) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:201

Parameters

int64_t Imm

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:205

Parameters

llvm::Type* Ty
llvm::GlobalValue* BaseGV
int64_t BaseOffset
bool HasBaseReg
int64_t Scale
unsigned int AddrSpace
llvm::Instruction* I = nullptr

bool isLegalAltInstr(
    llvm::VectorType* VecTy,
    unsigned int Opcode0,
    unsigned int Opcode1,
    const llvm::SmallBitVector& OpcodeMask) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:282

Parameters

llvm::VectorType* VecTy
unsigned int Opcode0
unsigned int Opcode1
const llvm::SmallBitVector& OpcodeMask

bool isLegalBroadcastLoad(
    llvm::Type* ElementTy,
    llvm::ElementCount NumElements) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:259

Parameters

llvm::Type* ElementTy
llvm::ElementCount NumElements

bool isLegalICmpImmediate(int64_t Imm) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:203

Parameters

int64_t Imm

bool isLegalMaskedCompressStore(
    llvm::Type* DataType) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:280

Parameters

llvm::Type* DataType

bool isLegalMaskedExpandLoad(
    llvm::Type* DataType) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:287

Parameters

llvm::Type* DataType

bool isLegalMaskedGather(
    llvm::Type* DataType,
    llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:267

Parameters

llvm::Type* DataType
llvm::Align Alignment

bool isLegalMaskedLoad(
    llvm::Type* DataType,
    llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:241

Parameters

llvm::Type* DataType
llvm::Align Alignment

bool isLegalMaskedScatter(
    llvm::Type* DataType,
    llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:263

Parameters

llvm::Type* DataType
llvm::Align Alignment

bool isLegalMaskedStore(
    llvm::Type* DataType,
    llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:237

Parameters

llvm::Type* DataType
llvm::Align Alignment

bool isLegalNTLoad(llvm::Type* DataType,
                   llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:252

Parameters

llvm::Type* DataType
llvm::Align Alignment

bool isLegalNTStore(llvm::Type* DataType,
                    llvm::Align Alignment) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:245

Parameters

llvm::Type* DataType
llvm::Align Alignment

bool isLegalToVectorizeLoad(
    llvm::LoadInst* LI) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:759

Parameters

llvm::LoadInst* LI

bool isLegalToVectorizeLoadChain(
    unsigned int ChainSizeInBytes,
    llvm::Align Alignment,
    unsigned int AddrSpace) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:763

Parameters

unsigned int ChainSizeInBytes
llvm::Align Alignment
unsigned int AddrSpace

bool isLegalToVectorizeReduction(
    const llvm::RecurrenceDescriptor& RdxDesc,
    llvm::ElementCount VF) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:773

Parameters

const llvm::RecurrenceDescriptor& RdxDesc
llvm::ElementCount VF

bool isLegalToVectorizeStore(
    llvm::StoreInst* SI) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:761

Parameters

llvm::StoreInst* SI

bool isLegalToVectorizeStoreChain(
    unsigned int ChainSizeInBytes,
    llvm::Align Alignment,
    unsigned int AddrSpace) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:768

Parameters

unsigned int ChainSizeInBytes
llvm::Align Alignment
unsigned int AddrSpace

bool isLoweredToCall(
    const llvm::Function* F) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:121

Parameters

const llvm::Function* F

bool isNoopAddrSpaceCast(unsigned int,
                         unsigned int) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:104

Parameters

unsigned int
unsigned int

bool isNumRegsMajorCostOfLSR() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:220

bool isProfitableLSRChainElement(
    llvm::Instruction* I) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:222

Parameters

llvm::Instruction* I

bool isProfitableToHoist(
    llvm::Instruction* I) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:314

Parameters

llvm::Instruction* I

bool isSourceOfDivergence(
    const llvm::Value* V) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:93

Parameters

const llvm::Value* V

bool isStridedAccess(const llvm::SCEV* Ptr) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:881

Parameters

const llvm::SCEV* Ptr

bool isTruncateFree(llvm::Type* Ty1,
                    llvm::Type* Ty2) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:312

Parameters

llvm::Type* Ty1
llvm::Type* Ty2

bool isTypeLegal(llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:318

Parameters

llvm::Type* Ty

unsigned int minRequiredElementSize(
    const llvm::Value* Val,
    bool& isSigned) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:827

Parameters

const llvm::Value* Val
bool& isSigned

bool preferInLoopReduction(
    unsigned int Opcode,
    llvm::Type* Ty,
    TTI::ReductionFlags Flags) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:792

Parameters

unsigned int Opcode
llvm::Type* Ty
TTI::ReductionFlags Flags

bool preferPredicateOverEpilogue(
    llvm::Loop* L,
    llvm::LoopInfo* LI,
    llvm::ScalarEvolution& SE,
    llvm::AssumptionCache& AC,
    llvm::TargetLibraryInfo* TLI,
    llvm::DominatorTree* DT,
    llvm::LoopVectorizationLegality* LVL) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:163

Parameters

llvm::Loop* L
llvm::LoopInfo* LI
llvm::ScalarEvolution& SE
llvm::AssumptionCache& AC
llvm::TargetLibraryInfo* TLI
llvm::DominatorTree* DT
llvm::LoopVectorizationLegality* LVL

bool preferPredicatedReductionSelect(
    unsigned int Opcode,
    llvm::Type* Ty,
    TTI::ReductionFlags Flags) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:797

Parameters

unsigned int Opcode
llvm::Type* Ty
TTI::ReductionFlags Flags

bool prefersVectorizedAddressing() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:297

llvm::Value* rewriteIntrinsicWithAddressSpace(
    llvm::IntrinsicInst* II,
    llvm::Value* OldV,
    llvm::Value* NewV) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:116

Parameters

llvm::IntrinsicInst* II
llvm::Value* OldV
llvm::Value* NewV

bool shouldBuildLookupTables() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:322

bool shouldBuildLookupTablesForConstant(
    llvm::Constant* C) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:324

Parameters

llvm::Constant* C

bool shouldBuildRelLookupTables() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:326

bool shouldConsiderAddressTypePromotion(
    const llvm::Instruction& I,
    bool& AllowPromotionWithoutCommonHeader) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:439

Parameters

const llvm::Instruction& I
bool& AllowPromotionWithoutCommonHeader

bool shouldExpandReduction(
    const llvm::IntrinsicInst* II) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:802

Parameters

const llvm::IntrinsicInst* II

bool shouldMaximizeVectorBandwidth(
    TargetTransformInfo::RegisterKind K) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:428

Parameters

TargetTransformInfo::RegisterKind K

Optional<llvm::Value*>
simplifyDemandedUseBitsIntrinsic(
    llvm::InstCombiner& IC,
    llvm::IntrinsicInst& II,
    llvm::APInt DemandedMask,
    llvm::KnownBits& Known,
    bool& KnownBitsComputed) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:180

Parameters

llvm::InstCombiner& IC
llvm::IntrinsicInst& II
llvm::APInt DemandedMask
llvm::KnownBits& Known
bool& KnownBitsComputed

Optional<llvm::Value*>
simplifyDemandedVectorEltsIntrinsic(
    llvm::InstCombiner& IC,
    llvm::IntrinsicInst& II,
    llvm::APInt DemandedElts,
    llvm::APInt& UndefElts,
    llvm::APInt& UndefElts2,
    llvm::APInt& UndefElts3,
    std::function<void(Instruction*,
                       unsigned int,
                       APInt,
                       APInt&)> SimplifyAndSetOp)
    const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:186

Parameters

llvm::InstCombiner& IC
llvm::IntrinsicInst& II
llvm::APInt DemandedElts
llvm::APInt& UndefElts
llvm::APInt& UndefElts2
llvm::APInt& UndefElts3
std::function<void(Instruction*, unsigned int, APInt, APInt&)> SimplifyAndSetOp

bool supportsEfficientVectorElementLoadStore()
    const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:341

bool supportsScalableVectors() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:808

bool supportsTailCalls() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:343

bool useAA() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:316

bool useColdCCForColdCall(llvm::Function& F) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:328

Parameters

llvm::Function& F

bool useGPUDivergenceAnalysis() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:91