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:31

Member Variables

protected const llvm::DataLayout& DL

Method Overview

Methods

bool LSRWithInstrQueries()

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

TargetTransformInfoImplBase(
    const llvm::TargetTransformInfoImplBase& Arg)

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

Parameters

const llvm::TargetTransformInfoImplBase& Arg

TargetTransformInfoImplBase(
    const llvm::DataLayout& DL)

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

Parameters

const llvm::DataLayout& DL

TargetTransformInfoImplBase(
    llvm::TargetTransformInfoImplBase&& Arg)

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

Parameters

llvm::TargetTransformInfoImplBase&& Arg

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

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

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/TargetTransformInfoImpl.h:558

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/TargetTransformInfoImpl.h:550

Parameters

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

bool canMacroFuseCmp()

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

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/TargetTransformInfoImpl.h:247

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:163

Parameters

SmallVectorImpl<int>& OpIndexes
Intrinsic::ID IID

bool enableAggressiveInterleaving(
    bool LoopHasReductions)

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

Parameters

bool LoopHasReductions

bool enableInterleavedAccessVectorization()

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

bool enableMaskedInterleavedAccessVectorization()

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

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

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

Parameters

bool OptSize
bool IsZeroCmp

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

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

Parameters

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

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

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

Parameters

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

unsigned int getArithmeticReductionCost(
    unsigned int,
    llvm::Type*,
    bool)

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

Parameters

unsigned int
llvm::Type*
bool

unsigned int getAtomicMemIntrinsicMaxElementSize()
    const

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

unsigned int getCFInstrCost(unsigned int Opcode)

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

Parameters

unsigned int Opcode

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

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

Parameters

TargetTransformInfo::CacheLevel Level

unsigned int getCacheLineSize() const

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

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

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

Parameters

TargetTransformInfo::CacheLevel Level

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

ArrayRef<llvm::Type*> Tys

const llvm::DataLayout& getDataLayout() const

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

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

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

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/TargetTransformInfoImpl.h:126

Parameters

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

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

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

Parameters

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

unsigned int getFPOpCost(llvm::Type* Ty)

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

Parameters

llvm::Type* Ty

unsigned int getFlatAddressSpace()

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

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

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

Parameters

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

unsigned int getGISelRematGlobalCost() const

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

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

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

Parameters

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

int getInlinerVectorBonusPercent()

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

unsigned int getInliningThresholdMultiplier()

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

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/TargetTransformInfoImpl.h:576

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:594

Parameters

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

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

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

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/TargetTransformInfoImpl.h:430

Parameters

unsigned int VF

unsigned int getMaxPrefetchIterationsAhead() const

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

unsigned int getMemcpyCost(
    const llvm::Instruction* I)

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

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/TargetTransformInfoImpl.h:536

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/TargetTransformInfoImpl.h:541

Parameters

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

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

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

Parameters

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

unsigned int getMinMaxReductionCost(llvm::Type*,
                                    llvm::Type*,
                                    bool,
                                    bool)

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

Parameters

llvm::Type*
llvm::Type*
bool
bool

unsigned int getMinPrefetchStride() const

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

unsigned int getMinVectorRegisterBitWidth()

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

unsigned int getMinimumVF(
    unsigned int ElemWidth) const

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

Parameters

unsigned int ElemWidth

unsigned int getNumberOfParts(llvm::Type* Tp)

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

Parameters

llvm::Type* Tp

unsigned int getNumberOfRegisters(
    unsigned int ClassID) const

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

Parameters

unsigned int ClassID

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

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

Parameters

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

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

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

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/TargetTransformInfoImpl.h:531

Parameters

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

TTI::PopcntSupportKind getPopcntSupport(
    unsigned int IntTyWidthInBit)

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

Parameters

unsigned int IntTyWidthInBit

unsigned int getPrefetchDistance() const

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

unsigned int getRegisterBitWidth(
    bool Vector) const

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

Parameters

bool Vector

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

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

Parameters

bool Vector
llvm::Type* Ty = nullptr

const char* getRegisterClassName(
    unsigned int ClassID) const

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

Parameters

unsigned int ClassID

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

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

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/TargetTransformInfoImpl.h:293

Parameters

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

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

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

Parameters

TTI::ShuffleKind Kind
llvm::Type* Ty
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/TargetTransformInfoImpl.h:600

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/TargetTransformInfoImpl.h:518

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

bool hasBranchDivergence()

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

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

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

Parameters

llvm::Type* DataType
bool IsSigned

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

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

Parameters

llvm::Instruction* I
unsigned int AddrSpace

bool haveFastSqrt(llvm::Type* Ty)

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

Parameters

llvm::Type* Ty

bool isAlwaysUniform(const llvm::Value* V)

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

Parameters

const llvm::Value* V

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

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

Parameters

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

bool isFCmpOrdCheaperThanFCmpZero(llvm::Type* Ty)

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

Parameters

llvm::Type* Ty

bool isFPVectorizationPotentiallyUnsafe()

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

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

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

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:566

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:571

Parameters

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

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

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

Parameters

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

bool isLegalAddImmediate(int64_t Imm)

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

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)

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

Parameters

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

bool isLegalICmpImmediate(int64_t Imm)

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

Parameters

int64_t Imm

bool isLegalMaskedCompressStore(
    llvm::Type* DataType)

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

Parameters

llvm::Type* DataType

bool isLegalMaskedExpandLoad(llvm::Type* DataType)

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

Parameters

llvm::Type* DataType

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

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

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

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

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

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

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

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

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

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

Parameters

llvm::Type* DataType
llvm::Align Alignment

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

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

Parameters

llvm::Type* DataType
llvm::Align Alignment

bool isLegalToVectorizeLoad(
    llvm::LoadInst* LI) const

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

Parameters

llvm::LoadInst* LI

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

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

Parameters

unsigned int ChainSizeInBytes
unsigned int Alignment
unsigned int AddrSpace

bool isLegalToVectorizeStore(
    llvm::StoreInst* SI) const

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

Parameters

llvm::StoreInst* SI

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

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

Parameters

unsigned int ChainSizeInBytes
unsigned int Alignment
unsigned int AddrSpace

bool isLoweredToCall(const llvm::Function* F)

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

Parameters

const llvm::Function* F

bool isProfitableToHoist(llvm::Instruction* I)

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

Parameters

llvm::Instruction* I

bool isSourceOfDivergence(const llvm::Value* V)

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

Parameters

const llvm::Value* V

bool isStridedAccess(const llvm::SCEV* Ptr)

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

Parameters

const llvm::SCEV* Ptr

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

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

Parameters

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

bool isTypeLegal(llvm::Type* Ty)

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

Parameters

llvm::Type* Ty

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

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

Parameters

const llvm::Value* Val
bool& isSigned

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

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

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/TargetTransformInfoImpl.h:291

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

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

Parameters

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

bool shouldBuildLookupTables()

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

bool shouldBuildLookupTablesForConstant(
    llvm::Constant* C)

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

Parameters

llvm::Constant* C

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

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

Parameters

const llvm::Instruction& I
bool& AllowPromotionWithoutCommonHeader

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

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

Parameters

const llvm::IntrinsicInst* II

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

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

Parameters

const llvm::Loop* L

bool shouldFavorPostInc() const

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

bool shouldMaximizeVectorBandwidth(
    bool OptSize) const

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

Parameters

bool OptSize

bool supportsEfficientVectorElementLoadStore()

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

bool useAA()

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

bool useColdCCForColdCall(llvm::Function& F)

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

Parameters

llvm::Function& F

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

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

Parameters

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