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
- public TargetLibraryInfo(const llvm::TargetLibraryInfo & TLI)
- public TargetLibraryInfo(llvm::TargetLibraryInfo && TLI)
- public TargetLibraryInfo(const llvm::TargetLibraryInfoImpl & Impl, Optional<const llvm::Function *> F = None)
- public void disableAllFunctions()
- public Attribute::AttrKind getExtAttrForI32Param(bool Signed = true) const
- public Attribute::AttrKind getExtAttrForI32Return(bool Signed = true) const
- public bool getLibFunc(llvm::StringRef funcName, llvm::LibFunc & F) const
- public bool getLibFunc(const llvm::Function & FDecl, llvm::LibFunc & F) const
- public bool getLibFunc(llvm::ImmutableCallSite CS, llvm::LibFunc & F) const
- public llvm::StringRef getName(llvm::LibFunc F) const
- public TargetLibraryInfoImpl::AvailabilityState getState(llvm::LibFunc F) const
- public llvm::StringRef getVectorizedFunction(llvm::StringRef F, unsigned int VF) const
- public unsigned int getWCharSize(const llvm::Module & M) const
- public unsigned int getWidestVF(llvm::StringRef ScalarF) const
- public bool has(llvm::LibFunc F) const
- public bool hasOptimizedCodeGen(llvm::LibFunc F) const
- public bool invalidate(llvm::Module &, const llvm::PreservedAnalyses &, ModuleAnalysisManager::Invalidator &)
- public bool invalidate(llvm::Function &, const llvm::PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
- public bool isFunctionVectorizable(llvm::StringRef F) const
- public bool isFunctionVectorizable(llvm::StringRef F, unsigned int VF) const
- public void setUnavailable(llvm::LibFunc F)
Methods
¶TargetLibraryInfo(
const llvm::TargetLibraryInfo& TLI)
TargetLibraryInfo(
const llvm::TargetLibraryInfo& TLI)
Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:248
Parameters
- const llvm::TargetLibraryInfo& TLI
¶TargetLibraryInfo(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)
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()
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
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
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
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
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
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
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
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
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
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
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
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
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&)
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&)
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
bool isFunctionVectorizable(
llvm::StringRef F) const
Declared at: llvm/include/llvm/Analysis/TargetLibraryInfo.h:307
Parameters
¶bool isFunctionVectorizable(llvm::StringRef F,
unsigned int VF) const
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)
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