|
LLVM 22.0.0git
|
A simple container for information about the supported runtime calls. More...
#include "llvm/IR/RuntimeLibcalls.h"
Public Member Functions | |
| RuntimeLibcallsInfo (const Triple &TT, ExceptionHandling ExceptionModel=ExceptionHandling::None, FloatABI::ABIType FloatABI=FloatABI::Default, EABI EABIVersion=EABI::Default, StringRef ABIName="") | |
| void | setLibcallImpl (RTLIB::Libcall Call, RTLIB::LibcallImpl Impl) |
| Rename the default libcall routine name for the specified libcall. | |
| StringRef | getLibcallName (RTLIB::Libcall Call) const |
| Get the libcall routine name for the specified libcall. | |
| RTLIB::LibcallImpl | getLibcallImpl (RTLIB::Libcall Call) const |
Return the lowering's selection of implementation call for Call. | |
| void | setLibcallImplCallingConv (RTLIB::LibcallImpl Call, CallingConv::ID CC) |
| Set the CallingConv that should be used for the specified libcall implementation. | |
| CallingConv::ID | getLibcallCallingConv (RTLIB::Libcall Call) const |
| CallingConv::ID | getLibcallImplCallingConv (RTLIB::LibcallImpl Call) const |
| Get the CallingConv that should be used for the specified libcall. | |
| ArrayRef< RTLIB::LibcallImpl > | getLibcallImpls () const |
| StringRef | getMemcpyName () const |
| Return a function name compatible with RTLIB::MEMCPY, or nullptr if fully unsupported. | |
| 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. | |
A simple container for information about the supported runtime calls.
Definition at line 67 of file RuntimeLibcalls.h.
|
inlineexplicit |
Definition at line 73 of file RuntimeLibcalls.h.
References llvm::Default, llvm::FloatABI::Default, and llvm::None.
| std::pair< FunctionType *, AttributeList > RuntimeLibcallsInfo::getFunctionTy | ( | LLVMContext & | Ctx, |
| const Triple & | TT, | ||
| const DataLayout & | DL, | ||
| RTLIB::LibcallImpl | LibcallImpl ) const |
LibcallImpl, depending on the target TT. If the function has incomplete type information, return nullptr for the function type. Definition at line 79 of file RuntimeLibcalls.cpp.
References llvm::MemoryEffectsBase< IRMemLocation >::argumentOrErrnoMemOnly(), llvm::ARM::ARM_ABI_APCS, llvm::ARM::computeTargetABI(), DL, llvm::MemoryEffectsBase< IRMemLocation >::errnoMemOnly(), llvm::fcNegInf, llvm::fcNegNormal, llvm::fcNegSubnormal, llvm::FixedVectorType::get(), llvm::FunctionType::get(), llvm::StructType::get(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getVoidTy(), llvm::Attribute::getWithNoFPClass(), llvm::Mod, and llvm::NoModRef.
Referenced by llvm::DeclareRuntimeLibcallsPass::run().
|
inline |
Definition at line 121 of file RuntimeLibcalls.h.
References Call.
|
inlinestatic |
Return the libcall provided by Impl.
Definition at line 155 of file RuntimeLibcalls.h.
Referenced by llvm::TargetLoweringBase::getSoftFloatCmpLibcallPredicate().
|
inline |
Return the lowering's selection of implementation call for Call.
Definition at line 109 of file RuntimeLibcalls.h.
References Call.
Referenced by getMemcpyName().
|
inline |
Get the CallingConv that should be used for the specified libcall.
Definition at line 126 of file RuntimeLibcalls.h.
References Call.
Referenced by llvm::DeclareRuntimeLibcallsPass::run().
|
inlinestatic |
Get the libcall routine name for the specified libcall implementation.
Definition at line 100 of file RuntimeLibcalls.h.
Referenced by llvm::TargetLoweringBase::getLibcallImplName(), getLibcallName(), getMemcpyName(), llvm::lto::LTO::getRuntimeLibcallSymbols(), lowerObjCCall(), and llvm::DeclareRuntimeLibcallsPass::run().
|
inline |
Definition at line 130 of file RuntimeLibcalls.h.
References llvm::ArrayRef().
Referenced by llvm::lto::LTO::getRuntimeLibcallSymbols(), and llvm::DeclareRuntimeLibcallsPass::run().
|
inline |
Get the libcall routine name for the specified libcall.
Definition at line 95 of file RuntimeLibcalls.h.
References Call, and getLibcallImplName().
Referenced by getMemcpyName().
|
inline |
Return a function name compatible with RTLIB::MEMCPY, or nullptr if fully unsupported.
Definition at line 137 of file RuntimeLibcalls.h.
References getLibcallImpl(), getLibcallImplName(), and getLibcallName().
|
inline |
Check if this is valid libcall for the current module, otherwise RTLIB::Unsupported.
Definition at line 177 of file RuntimeLibcalls.h.
References lookupLibcallImplName().
|
inline |
Definition at line 146 of file RuntimeLibcalls.h.
|
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 167 of file RuntimeLibcalls.h.
Referenced by getSupportedLibcallImpl().
|
inline |
Definition at line 150 of file RuntimeLibcalls.h.
|
inline |
Rename the default libcall routine name for the specified libcall.
Definition at line 89 of file RuntimeLibcalls.h.
References Call.
|
inline |
Set the CallingConv that should be used for the specified libcall implementation.
Definition at line 115 of file RuntimeLibcalls.h.
References Call.