class TargetTransformInfo::Concept

Declaration

class TargetTransformInfo::Concept { /* full declaration omitted */ };

Description

The abstract base class used to type erase specific TTI implementations.

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

Method Overview

Methods

virtual bool LSRWithInstrQueries()

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

virtual bool canMacroFuseCmp()

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

virtual 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:1231

Parameters

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

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

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

Parameters

SmallVectorImpl<int>& OpIndexes
Intrinsic::ID IID

virtual bool enableAggressiveInterleaving(
    bool LoopHasReductions)

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

Parameters

bool LoopHasReductions

virtual bool
enableInterleavedAccessVectorization()

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

virtual bool
enableMaskedInterleavedAccessVectorization()

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

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

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

Parameters

bool OptSize
bool IsZeroCmp

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

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

Parameters

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

virtual 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:1315

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

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

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

Parameters

unsigned int Opcode
llvm::Type* Ty
bool IsPairwiseForm

virtual unsigned int
getAtomicMemIntrinsicMaxElementSize() const

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

virtual int getCFInstrCost(unsigned int Opcode)

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

Parameters

unsigned int Opcode

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

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

Parameters

llvm::TargetTransformInfo::CacheLevel Level

virtual unsigned int getCacheLineSize() const

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

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

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

Parameters

llvm::TargetTransformInfo::CacheLevel Level

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

ArrayRef<llvm::Type*> Tys

virtual const llvm::DataLayout& getDataLayout()
    const

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

virtual int getFPOpCost(llvm::Type* Ty)

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

Parameters

llvm::Type* Ty

virtual unsigned int getFlatAddressSpace()

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

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

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

Parameters

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

virtual unsigned int getGISelRematGlobalCost()
    const

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

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

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

Parameters

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

virtual int getInlinerVectorBonusPercent()

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

virtual unsigned int
getInliningThresholdMultiplier()

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

virtual int getInstructionLatency(
    const llvm::Instruction* I)

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

Parameters

const llvm::Instruction* I

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

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

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

Parameters

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

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

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

Parameters

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

virtual 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:1353

Parameters

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

virtual 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:1350

Parameters

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

virtual unsigned int getLoadStoreVecRegBitWidth(
    unsigned int AddrSpace) const

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

Parameters

unsigned int AddrSpace

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

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

Parameters

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

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

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

Parameters

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

virtual unsigned int getMaxInterleaveFactor(
    unsigned int VF)

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

Parameters

unsigned int VF

virtual unsigned int
getMaxPrefetchIterationsAhead() const

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

Returns

The maximum number of iterations to prefetch ahead. If the required number of iterations is more than this number, no prefetching is performed.

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

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

Parameters

const llvm::Instruction* I

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

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

Parameters

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

virtual 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:1369

Parameters

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

virtual 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:1331

Parameters

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

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

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

Parameters

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

virtual unsigned int getMinPrefetchStride() const

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

Returns

Some HW prefetchers can handle accesses up to a certain constant stride. This is the minimum stride in bytes where it makes sense to start adding SW prefetches. The default is 1, i.e. prefetch with any stride.

virtual unsigned int
getMinVectorRegisterBitWidth()

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

virtual unsigned int getMinimumVF(
    unsigned int ElemWidth) const

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

Parameters

unsigned int ElemWidth

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

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

Parameters

llvm::Type* Tp

virtual unsigned int getNumberOfRegisters(
    unsigned int ClassID) const

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

Parameters

unsigned int ClassID

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

unsigned int IntTyWidthInBit

virtual unsigned int getPrefetchDistance() const

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

Returns

How much before a load we should place the prefetch instruction. This is currently measured in number of instructions.

virtual unsigned int getRegisterBitWidth(
    bool Vector) const

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

Parameters

bool Vector

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

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

Parameters

bool Vector
llvm::Type* Ty = nullptr

virtual const char* getRegisterClassName(
    unsigned int ClassID) const

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

Parameters

unsigned int ClassID

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

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

Parameters

llvm::Type* Ty
bool Insert
bool Extract

virtual 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:1247

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

virtual bool hasBranchDivergence()

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

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

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

Parameters

llvm::Type* DataType
bool IsSigned

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

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

Parameters

llvm::Instruction* I
unsigned int AddrSpace

virtual bool haveFastSqrt(llvm::Type* Ty)

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

Parameters

llvm::Type* Ty

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

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

Parameters

const llvm::Value* V

virtual bool isFCmpOrdCheaperThanFCmpZero(
    llvm::Type* Ty)

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

Parameters

llvm::Type* Ty

virtual bool isFPVectorizationPotentiallyUnsafe()

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

virtual 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:1211

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

virtual bool isLegalAddImmediate(int64_t Imm)

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

Parameters

int64_t Imm

virtual 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:1223

Parameters

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

virtual bool isLegalICmpImmediate(int64_t Imm)

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

Parameters

int64_t Imm

virtual bool isLegalMaskedCompressStore(
    llvm::Type* DataType)

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

Parameters

llvm::Type* DataType

virtual bool isLegalMaskedExpandLoad(
    llvm::Type* DataType)

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

Parameters

llvm::Type* DataType

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

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

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

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

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

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

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

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

Parameters

llvm::Type* DataType
llvm::MaybeAlign Alignment

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

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

Parameters

llvm::Type* DataType
llvm::Align Alignment

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

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

Parameters

llvm::Type* DataType
llvm::Align Alignment

virtual bool isLegalToVectorizeLoad(
    llvm::LoadInst* LI) const

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

Parameters

llvm::LoadInst* LI

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

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

Parameters

unsigned int ChainSizeInBytes
unsigned int Alignment
unsigned int AddrSpace

virtual bool isLegalToVectorizeStore(
    llvm::StoreInst* SI) const

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

Parameters

llvm::StoreInst* SI

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

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

Parameters

unsigned int ChainSizeInBytes
unsigned int Alignment
unsigned int AddrSpace

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

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

Parameters

const llvm::Function* F

virtual bool isProfitableToHoist(
    llvm::Instruction* I)

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

Parameters

llvm::Instruction* I

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

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

Parameters

const llvm::Value* V

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

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

Parameters

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

virtual bool isTypeLegal(llvm::Type* Ty)

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

Parameters

llvm::Type* Ty

virtual 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:1215

Parameters

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

virtual bool prefersVectorizedAddressing()

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

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

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

Parameters

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

virtual bool shouldBuildLookupTables()

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

virtual bool shouldBuildLookupTablesForConstant(
    llvm::Constant* C)

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

Parameters

llvm::Constant* C

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

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

Parameters

const llvm::Instruction& I
bool& AllowPromotionWithoutCommonHeader

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

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

Parameters

const llvm::IntrinsicInst* II

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

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

Parameters

const llvm::Loop* L

virtual bool shouldFavorPostInc() const

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

virtual bool shouldMaximizeVectorBandwidth(
    bool OptSize) const

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

Parameters

bool OptSize

virtual bool
supportsEfficientVectorElementLoadStore()

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

virtual bool useAA()

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

virtual bool useColdCCForColdCall(
    llvm::Function& F)

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

Parameters

llvm::Function& F

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

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

Parameters

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

virtual ~Concept()

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