class TargetTransformInfo::Model

Declaration

template <typename T>
class TargetTransformInfo::Model : public Concept { /* full declaration omitted */ };

Description

The template model for the base class which wraps a concrete implementation in a type erased interface.

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1402

Inherits from: TargetTransformInfo::Concept

Templates

T

Method Overview

Inherited from TargetTransformInfo::Concept:

Methods

bool LSRWithInstrQueries()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1567

Model<T>(T Impl)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1406

Parameters

T Impl

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1617

Parameters

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

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1827

Parameters

const llvm::Function* Caller
const llvm::Function* Callee
SmallPtrSetImpl<llvm::Argument*>& Args

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1823

Parameters

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

bool canMacroFuseCmp()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1513

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1516

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/TargetTransformInfo.h:1467

Parameters

SmallVectorImpl<int>& OpIndexes
Intrinsic::ID IID

bool enableAggressiveInterleaving(
    bool LoopHasReductions)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1601

Parameters

bool LoopHasReductions

bool enableInterleavedAccessVectorization()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1608

bool enableMaskedInterleavedAccessVectorization()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1611

llvm::TargetTransformInfo::MemCmpExpansionOptions
enableMemCmpExpansion(bool OptSize,
                      bool IsZeroCmp) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1604

Parameters

bool OptSize
bool IsZeroCmp

int getAddressComputationCost(
    llvm::Type* Ty,
    llvm::ScalarEvolution* SE,
    const llvm::SCEV* Ptr)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1792

Parameters

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

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1714

Parameters

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

int getArithmeticReductionCost(
    unsigned int Opcode,
    llvm::Type* Ty,
    bool IsPairwiseForm)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1768

Parameters

unsigned int Opcode
llvm::Type* Ty
bool IsPairwiseForm

unsigned int getAtomicMemIntrinsicMaxElementSize()
    const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1803

int getCFInstrCost(unsigned int Opcode)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1736

Parameters

unsigned int Opcode

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1681

Parameters

llvm::TargetTransformInfo::CacheLevel Level

unsigned int getCacheLineSize() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1675

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1678

Parameters

llvm::TargetTransformInfo::CacheLevel Level

int getCallCost(
    const llvm::Function* F,
    ArrayRef<const llvm::Value*> Arguments,
    const llvm::User* U)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1429

Parameters

const llvm::Function* F
ArrayRef<const llvm::Value*> Arguments
const llvm::User* U

int getCallCost(const llvm::Function* F,
                int NumArgs,
                const llvm::User* U)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1426

Parameters

const llvm::Function* F
int NumArgs
const llvm::User* U

int getCallCost(llvm::FunctionType* FTy,
                int NumArgs,
                const llvm::User* U)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1423

Parameters

llvm::FunctionType* FTy
int NumArgs
const llvm::User* U

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1785

Parameters

llvm::Function* F
llvm::Type* RetTy
ArrayRef<llvm::Type*> Tys

int getCastInstrCost(unsigned int Opcode,
                     llvm::Type* Dst,
                     llvm::Type* Src,
                     const llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1728

Parameters

unsigned int Opcode
llvm::Type* Dst
llvm::Type* Src
const llvm::Instruction* I

int getCmpSelInstrCost(unsigned int Opcode,
                       llvm::Type* ValTy,
                       llvm::Type* CondTy,
                       const llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1739

Parameters

unsigned int Opcode
llvm::Type* ValTy
llvm::Type* CondTy
const llvm::Instruction* I

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1796

Parameters

ArrayRef<llvm::Type*> Tys

const llvm::DataLayout& getDataLayout() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1409

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1708

Parameters

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

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1420

Parameters

const llvm::Instruction* I
const llvm::Value* Src

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1732

Parameters

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

int getFPOpCost(llvm::Type* Ty)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1632

Parameters

llvm::Type* Ty

unsigned int getFlatAddressSpace()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1463

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1416

Parameters

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

unsigned int getGISelRematGlobalCost() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1877

int getGatherScatterOpCost(unsigned int Opcode,
                           llvm::Type* DataTy,
                           llvm::Value* Ptr,
                           bool VariableMask,
                           unsigned int Alignment)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1754

Parameters

unsigned int Opcode
llvm::Type* DataTy
llvm::Value* Ptr
bool VariableMask
unsigned int Alignment

int getInlinerVectorBonusPercent()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1436

unsigned int getInliningThresholdMultiplier()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1433

int getInstructionLatency(
    const llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1881

Parameters

const llvm::Instruction* I

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1634

Parameters

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

int getIntImmCost(const llvm::APInt& Imm,
                  llvm::Type* Ty)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1638

Parameters

const llvm::APInt& Imm
llvm::Type* Ty

int getIntImmCostInst(unsigned int Opc,
                      unsigned int Idx,
                      const llvm::APInt& Imm,
                      llvm::Type* Ty)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1641

Parameters

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

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1645

Parameters

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

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1760

Parameters

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

int getIntrinsicCost(
    Intrinsic::ID IID,
    llvm::Type* RetTy,
    ArrayRef<const llvm::Value*> Arguments,
    const llvm::User* U = nullptr)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1443

Parameters

Intrinsic::ID IID
llvm::Type* RetTy
ArrayRef<const llvm::Value*> Arguments
const llvm::User* U = nullptr

int getIntrinsicCost(
    Intrinsic::ID IID,
    llvm::Type* RetTy,
    ArrayRef<llvm::Type*> ParamTys,
    const llvm::User* U = nullptr)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1439

Parameters

Intrinsic::ID IID
llvm::Type* RetTy
ArrayRef<llvm::Type*> ParamTys
const llvm::User* U = nullptr

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1776

Parameters

Intrinsic::ID ID
llvm::Type* RetTy
ArrayRef<llvm::Type*> Tys
llvm::FastMathFlags FMF
unsigned int ScalarizationCostPassed

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1781

Parameters

Intrinsic::ID ID
llvm::Type* RetTy
ArrayRef<llvm::Value*> Args
llvm::FastMathFlags FMF
unsigned int VF

unsigned int getLoadStoreVecRegBitWidth(
    unsigned int AddrSpace) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1838

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/TargetTransformInfo.h:1859

Parameters

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

int getMaskedMemoryOpCost(
    unsigned int Opcode,
    llvm::Type* Src,
    unsigned int Alignment,
    unsigned int AddressSpace)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1750

Parameters

unsigned int Opcode
llvm::Type* Src
unsigned int Alignment
unsigned int AddressSpace

unsigned int getMaxInterleaveFactor(
    unsigned int VF)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1705

Parameters

unsigned int VF

unsigned int getMaxPrefetchIterationsAhead() const

Description

Return the maximum prefetch distance in terms of loop iterations.

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1701

int getMemcpyCost(const llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1448

Parameters

const llvm::Instruction* I

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1810

Parameters

llvm::LLVMContext& Context
llvm::Value* Length
unsigned int SrcAlign
unsigned int DestAlign

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1815

Parameters

SmallVectorImpl<llvm::Type*>& OpsOut
llvm::LLVMContext& Context
unsigned int RemainingBytes
unsigned int SrcAlign
unsigned int DestAlign

int getMemoryOpCost(unsigned int Opcode,
                    llvm::Type* Src,
                    llvm::MaybeAlign Alignment,
                    unsigned int AddressSpace,
                    const llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1746

Parameters

unsigned int Opcode
llvm::Type* Src
llvm::MaybeAlign Alignment
unsigned int AddressSpace
const llvm::Instruction* I

int getMinMaxReductionCost(llvm::Type* Ty,
                           llvm::Type* CondTy,
                           bool IsPairwiseForm,
                           bool IsUnsigned)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1772

Parameters

llvm::Type* Ty
llvm::Type* CondTy
bool IsPairwiseForm
bool IsUnsigned

unsigned int getMinPrefetchStride() const

Description

Return the minimum stride necessary to trigger software prefetching.

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1694

unsigned int getMinVectorRegisterBitWidth()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1661

unsigned int getMinimumVF(
    unsigned int ElemWidth) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1667

Parameters

unsigned int ElemWidth

unsigned int getNumberOfParts(llvm::Type* Tp)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1789

Parameters

llvm::Type* Tp

unsigned int getNumberOfRegisters(
    unsigned int ClassID) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1649

Parameters

unsigned int ClassID

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1592

Parameters

ArrayRef<const llvm::Value*> Args
unsigned int VF

int getOperationCost(unsigned int Opcode,
                     llvm::Type* Ty,
                     llvm::Type* OpTy)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1413

Parameters

unsigned int Opcode
llvm::Type* Ty
llvm::Type* OpTy

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1806

Parameters

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

llvm::TargetTransformInfo::PopcntSupportKind
getPopcntSupport(unsigned int IntTyWidthInBit)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1623

Parameters

unsigned int IntTyWidthInBit

unsigned int getPrefetchDistance() const

Description

Return the preferred prefetch distance in terms of instructions.

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1687

unsigned int getRegisterBitWidth(
    bool Vector) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1658

Parameters

bool Vector

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1652

Parameters

bool Vector
llvm::Type* Ty = nullptr

const char* getRegisterClassName(
    unsigned int ClassID) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1655

Parameters

unsigned int ClassID

unsigned int getScalarizationOverhead(
    llvm::Type* Ty,
    bool Insert,
    bool Extract)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1588

Parameters

llvm::Type* Ty
bool Insert
bool Extract

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1561

Parameters

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

int getShuffleCost(
    llvm::TargetTransformInfo::ShuffleKind Kind,
    llvm::Type* Tp,
    int Index,
    llvm::Type* SubTp)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1724

Parameters

llvm::TargetTransformInfo::ShuffleKind Kind
llvm::Type* Tp
int Index
llvm::Type* SubTp

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1864

Parameters

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

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1799

Parameters

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

void getUnrollingPreferences(
    llvm::Loop* L,
    llvm::ScalarEvolution& SE,
    llvm::TargetTransformInfo::
        UnrollingPreferences& UP)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1480

Parameters

llvm::Loop* L
llvm::ScalarEvolution& SE
llvm::TargetTransformInfo::UnrollingPreferences& UP

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1451

Parameters

const llvm::User* U
ArrayRef<const llvm::Value*> Operands

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1743

Parameters

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

bool hasBranchDivergence()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1454

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1552

Parameters

llvm::Type* DataType
bool IsSigned

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1555

Parameters

llvm::Instruction* I
unsigned int AddrSpace

bool haveFastSqrt(llvm::Type* Ty)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1626

Parameters

llvm::Type* Ty

bool isAlwaysUniform(const llvm::Value* V)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1459

Parameters

const llvm::Value* V

bool isFCmpOrdCheaperThanFCmpZero(llvm::Type* Ty)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1628

Parameters

llvm::Type* Ty

bool isFPVectorizationPotentiallyUnsafe()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1614

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1484

Parameters

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

bool isIndexedLoadLegal(
    llvm::TargetTransformInfo::MemIndexedMode
        Mode,
    llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1832

Parameters

llvm::TargetTransformInfo::MemIndexedMode Mode
llvm::Type* Ty

bool isIndexedStoreLegal(
    llvm::TargetTransformInfo::MemIndexedMode
        Mode,
    llvm::Type* Ty) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1835

Parameters

llvm::TargetTransformInfo::MemIndexedMode Mode
llvm::Type* Ty

bool isLSRCostLess(
    TargetTransformInfo::LSRCost& C1,
    TargetTransformInfo::LSRCost& C2)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1509

Parameters

TargetTransformInfo::LSRCost& C1
TargetTransformInfo::LSRCost& C2

bool isLegalAddImmediate(int64_t Imm)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1496

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)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1502

Parameters

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

bool isLegalICmpImmediate(int64_t Imm)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1499

Parameters

int64_t Imm

bool isLegalMaskedCompressStore(
    llvm::Type* DataType)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1546

Parameters

llvm::Type* DataType

bool isLegalMaskedExpandLoad(llvm::Type* DataType)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1549

Parameters

llvm::Type* DataType

bool isLegalMaskedGather(
    llvm::Type* DataType,
    llvm::MaybeAlign Alignment)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1543

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

bool isLegalMaskedLoad(llvm::Type* DataType,
                       llvm::MaybeAlign Alignment)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1531

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

bool isLegalMaskedScatter(
    llvm::Type* DataType,
    llvm::MaybeAlign Alignment)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1540

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

bool isLegalMaskedStore(
    llvm::Type* DataType,
    llvm::MaybeAlign Alignment)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1528

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1537

Parameters

llvm::Type* DataType
llvm::Align Alignment

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1534

Parameters

llvm::Type* DataType
llvm::Align Alignment

bool isLegalToVectorizeLoad(
    llvm::LoadInst* LI) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1841

Parameters

llvm::LoadInst* LI

bool isLegalToVectorizeLoadChain(
    unsigned int ChainSizeInBytes,
    unsigned int Alignment,
    unsigned int AddrSpace) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1847

Parameters

unsigned int ChainSizeInBytes
unsigned int Alignment
unsigned int AddrSpace

bool isLegalToVectorizeStore(
    llvm::StoreInst* SI) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1844

Parameters

llvm::StoreInst* SI

bool isLegalToVectorizeStoreChain(
    unsigned int ChainSizeInBytes,
    unsigned int Alignment,
    unsigned int AddrSpace) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1853

Parameters

unsigned int ChainSizeInBytes
unsigned int Alignment
unsigned int AddrSpace

bool isLoweredToCall(const llvm::Function* F)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1477

Parameters

const llvm::Function* F

bool isProfitableToHoist(llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1573

Parameters

llvm::Instruction* I

bool isSourceOfDivergence(const llvm::Value* V)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1455

Parameters

const llvm::Value* V

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1570

Parameters

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

bool isTypeLegal(llvm::Type* Ty)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1577

Parameters

llvm::Type* Ty

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1490

Parameters

llvm::Loop* L
llvm::LoopInfo* LI
llvm::ScalarEvolution& SE
llvm::AssumptionCache& AC
llvm::TargetLibraryInfo* TLI
llvm::DominatorTree* DT
const llvm::LoopAccessInfo* LAI

bool prefersVectorizedAddressing()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1558

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1472

Parameters

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

bool shouldBuildLookupTables()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1578

bool shouldBuildLookupTablesForConstant(
    llvm::Constant* C)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1581

Parameters

llvm::Constant* C

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1670

Parameters

const llvm::Instruction& I
bool& AllowPromotionWithoutCommonHeader

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

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1873

Parameters

const llvm::IntrinsicInst* II

bool shouldFavorBackedgeIndex(
    const llvm::Loop* L) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1525

Parameters

const llvm::Loop* L

bool shouldFavorPostInc() const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1522

bool shouldMaximizeVectorBandwidth(
    bool OptSize) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1664

Parameters

bool OptSize

bool supportsEfficientVectorElementLoadStore()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1597

bool useAA()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1576

bool useColdCCForColdCall(llvm::Function& F)

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1584

Parameters

llvm::Function& F

bool useReductionIntrinsic(
    unsigned int Opcode,
    llvm::Type* Ty,
    llvm::TargetTransformInfo::ReductionFlags
        Flags) const

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1869

Parameters

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

~Model<T>()

Declared at: llvm/include/llvm/Analysis/TargetTransformInfo.h:1407