LLVM 22.0.0git
llvm::RTLIB::RuntimeLibcallsInfo Struct Reference

A simple container for information about the supported runtime calls. More...

#include "llvm/IR/RuntimeLibcalls.h"

Public Member Functions

 RuntimeLibcallsInfo ()=default
 RuntimeLibcallsInfo (const Triple &TT, ExceptionHandling ExceptionModel=ExceptionHandling::None, FloatABI::ABIType FloatABI=FloatABI::Default, EABI EABIVersion=EABI::Default, StringRef ABIName="")
 RuntimeLibcallsInfo (const Module &M)
bool invalidate (Module &M, const PreservedAnalyses &PA, ModuleAnalysisManager::Invalidator &)
void setLibcallImplCallingConv (RTLIB::LibcallImpl Call, CallingConv::ID CC)
 Set the CallingConv that should be used for the specified libcall implementation.
CallingConv::ID getLibcallImplCallingConv (RTLIB::LibcallImpl Call) const
 Get the CallingConv that should be used for the specified libcall.
unsigned getNumAvailableLibcallImpls () const
bool isAvailable (RTLIB::LibcallImpl Impl) const
void setAvailable (RTLIB::LibcallImpl Impl)
LLVM_ABI RTLIB::LibcallImpl getSupportedLibcallImpl (StringRef FuncName) const
 Check if this is valid libcall for the current module, otherwise RTLIB::Unsupported.
std::pair< FunctionType *, AttributeList > getFunctionTy (LLVMContext &Ctx, const Triple &TT, const DataLayout &DL, RTLIB::LibcallImpl LibcallImpl) const

Static Public Member Functions

static StringRef getLibcallImplName (RTLIB::LibcallImpl CallImpl)
 Get the libcall routine name for the specified libcall implementation.
static RTLIB::Libcall getLibcallFromImpl (RTLIB::LibcallImpl Impl)
 Return the libcall provided by Impl.
static LLVM_ABI iota_range< RTLIB::LibcallImpl > lookupLibcallImplName (StringRef Name)
 Check if a function name is a recognized runtime call of any kind.

Friends

class llvm::LibcallLoweringInfo

Detailed Description

A simple container for information about the supported runtime calls.

Definition at line 72 of file RuntimeLibcalls.h.

Constructor & Destructor Documentation

◆ RuntimeLibcallsInfo() [1/3]

llvm::RTLIB::RuntimeLibcallsInfo::RuntimeLibcallsInfo ( )
default

Referenced by RuntimeLibcallsInfo().

◆ RuntimeLibcallsInfo() [2/3]

llvm::RTLIB::RuntimeLibcallsInfo::RuntimeLibcallsInfo ( const Triple & TT,
ExceptionHandling ExceptionModel = ExceptionHandling::None,
FloatABI::ABIType FloatABI = FloatABI::Default,
EABI EABIVersion = EABI::Default,
StringRef ABIName = "" )
inlineexplicit

Definition at line 82 of file RuntimeLibcalls.h.

References llvm::Default, llvm::FloatABI::Default, and llvm::None.

◆ RuntimeLibcallsInfo() [3/3]

RuntimeLibcallsInfo::RuntimeLibcallsInfo ( const Module & M)
explicit

Definition at line 28 of file RuntimeLibcalls.cpp.

References RuntimeLibcallsInfo().

Member Function Documentation

◆ getFunctionTy()

std::pair< FunctionType *, AttributeList > RuntimeLibcallsInfo::getFunctionTy ( LLVMContext & Ctx,
const Triple & TT,
const DataLayout & DL,
RTLIB::LibcallImpl LibcallImpl ) const

◆ getLibcallFromImpl()

RTLIB::Libcall llvm::RTLIB::RuntimeLibcallsInfo::getLibcallFromImpl ( RTLIB::LibcallImpl Impl)
inlinestatic

Return the libcall provided by Impl.

Definition at line 123 of file RuntimeLibcalls.h.

Referenced by llvm::TargetLoweringBase::getSoftFloatCmpLibcallPredicate(), and llvm::LibcallLoweringInfo::LibcallLoweringInfo().

◆ getLibcallImplCallingConv()

CallingConv::ID llvm::RTLIB::RuntimeLibcallsInfo::getLibcallImplCallingConv ( RTLIB::LibcallImpl Call) const
inline

Get the CallingConv that should be used for the specified libcall.

Definition at line 118 of file RuntimeLibcalls.h.

References Call.

Referenced by llvm::DeclareRuntimeLibcallsPass::run().

◆ getLibcallImplName()

StringRef llvm::RTLIB::RuntimeLibcallsInfo::getLibcallImplName ( RTLIB::LibcallImpl CallImpl)
inlinestatic

◆ getNumAvailableLibcallImpls()

unsigned llvm::RTLIB::RuntimeLibcallsInfo::getNumAvailableLibcallImpls ( ) const
inline

Definition at line 127 of file RuntimeLibcalls.h.

Referenced by llvm::lto::LTO::getRuntimeLibcallSymbols().

◆ getSupportedLibcallImpl()

LLVM_ABI RTLIB::LibcallImpl llvm::RTLIB::RuntimeLibcallsInfo::getSupportedLibcallImpl ( StringRef FuncName) const
inline

Check if this is valid libcall for the current module, otherwise RTLIB::Unsupported.

Definition at line 157 of file RuntimeLibcalls.h.

References isAvailable(), and lookupLibcallImplName().

◆ invalidate()

bool RTLIB::RuntimeLibcallsInfo::invalidate ( Module & M,
const PreservedAnalyses & PA,
ModuleAnalysisManager::Invalidator &  )

Definition at line 38 of file RuntimeLibcallInfo.cpp.

References llvm::PreservedAnalyses::getChecker().

◆ isAvailable()

bool llvm::RTLIB::RuntimeLibcallsInfo::isAvailable ( RTLIB::LibcallImpl Impl) const
inline

◆ lookupLibcallImplName()

LLVM_ABI iota_range< RTLIB::LibcallImpl > llvm::RTLIB::RuntimeLibcallsInfo::lookupLibcallImplName ( StringRef Name)
inlinestatic

Check if a function name is a recognized runtime call of any kind.

This does not consider if this call is available for any current compilation, just that it is a known call somewhere. This returns the set of all LibcallImpls which match the name; multiple implementations with the same name may exist but differ in interpretation based on the target context.

Generated by tablegen.

Definition at line 147 of file RuntimeLibcalls.h.

Referenced by getSupportedLibcallImpl().

◆ setAvailable()

void llvm::RTLIB::RuntimeLibcallsInfo::setAvailable ( RTLIB::LibcallImpl Impl)
inline

Definition at line 135 of file RuntimeLibcalls.h.

◆ setLibcallImplCallingConv()

void llvm::RTLIB::RuntimeLibcallsInfo::setLibcallImplCallingConv ( RTLIB::LibcallImpl Call,
CallingConv::ID CC )
inline

Set the CallingConv that should be used for the specified libcall implementation.

Definition at line 113 of file RuntimeLibcalls.h.

References Call.

◆ llvm::LibcallLoweringInfo

friend class llvm::LibcallLoweringInfo
friend

Definition at line 78 of file RuntimeLibcalls.h.


The documentation for this struct was generated from the following files: