class TargetLibraryInfo

Declaration

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

Description

Provides information about what library functions are available for the current target. This both allows optimizations to handle them specially and frontends to disable such optimizations through -fno-builtin etc.

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:212

Method Overview

Methods

TargetLibraryInfo(
    const llvm::TargetLibraryInfo& TLI)

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:248

Parameters

const llvm::TargetLibraryInfo& TLI

TargetLibraryInfo(llvm::TargetLibraryInfo&& TLI)

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:250

Parameters

llvm::TargetLibraryInfo&& TLI

TargetLibraryInfo(
    const llvm::TargetLibraryInfoImpl& Impl,
    Optional<const llvm::Function*> F = None)

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

Parameters

const llvm::TargetLibraryInfoImpl& Impl
Optional<const llvm::Function*> F = None

void disableAllFunctions()

Description

Disables all builtins. This can be used for options like -fno-builtin.

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

Attribute::AttrKind getExtAttrForI32Param(
    bool Signed = true) const

Description

Returns extension attribute kind to be used for i32 parameters corresponding to C-level int or unsigned int. May be zeroext, signext, or none.

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:359

Parameters

bool Signed = true

Attribute::AttrKind getExtAttrForI32Return(
    bool Signed = true) const

Description

Returns extension attribute kind to be used for i32 return values corresponding to C-level int or unsigned int. May be zeroext, signext, or none.

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

Parameters

bool Signed = true

bool getLibFunc(llvm::StringRef funcName,
                llvm::LibFunc& F) const

Description

Searches for a particular function name. If it is one of the known library functions, return true and set F to the corresponding value.

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

Parameters

llvm::StringRef funcName
llvm::LibFunc& F

bool getLibFunc(const llvm::Function& FDecl,
                llvm::LibFunc& F) const

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

Parameters

const llvm::Function& FDecl
llvm::LibFunc& F

bool getLibFunc(llvm::ImmutableCallSite CS,
                llvm::LibFunc& F) const

Description

If a callsite does not have the 'nobuiltin' attribute, return if the called function is a known library function and set F to that function.

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:277

Parameters

llvm::ImmutableCallSite CS
llvm::LibFunc& F

llvm::StringRef getName(llvm::LibFunc F) const

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:346

Parameters

llvm::LibFunc F

TargetLibraryInfoImpl::AvailabilityState getState(
    llvm::LibFunc F) const

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:294

Parameters

llvm::LibFunc F

llvm::StringRef getVectorizedFunction(
    llvm::StringRef F,
    unsigned int VF) const

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

Parameters

llvm::StringRef F
unsigned int VF

unsigned int getWCharSize(
    const llvm::Module& M) const

Description

\copydoc TargetLibraryInfoImpl::getWCharSize()

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:377

Parameters

const llvm::Module& M

unsigned int getWidestVF(
    llvm::StringRef ScalarF) const

Description

Returns the largest vectorization factor used in the list of vector functions.

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

Parameters

llvm::StringRef ScalarF

bool has(llvm::LibFunc F) const

Description

Tests whether a library function is available.

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:301

Parameters

llvm::LibFunc F

bool hasOptimizedCodeGen(llvm::LibFunc F) const

Description

Tests if the function is both available and a candidate for optimized code generation.

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

Parameters

llvm::LibFunc F

bool invalidate(
    llvm::Module&,
    const llvm::PreservedAnalyses&,
    ModuleAnalysisManager::Invalidator&)

Description

Handle invalidation from the pass manager. If we try to invalidate this info, just return false. It cannot become invalid even if the module or function changes.

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:385

Parameters

llvm::Module&
const llvm::PreservedAnalyses&
ModuleAnalysisManager::Invalidator&

bool invalidate(
    llvm::Function&,
    const llvm::PreservedAnalyses&,
    FunctionAnalysisManager::Invalidator&)

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

Parameters

llvm::Function&
const llvm::PreservedAnalyses&
FunctionAnalysisManager::Invalidator&

bool isFunctionVectorizable(
    llvm::StringRef F) const

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:307

Parameters

llvm::StringRef F

bool isFunctionVectorizable(llvm::StringRef F,
                            unsigned int VF) const

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

Parameters

llvm::StringRef F
unsigned int VF

void setUnavailable(llvm::LibFunc F)

Description

Forces a function to be marked as unavailable.

Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:290

Parameters

llvm::LibFunc F