|
LLVM 22.0.0git
|
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 |
A simple container for information about the supported runtime calls.
Definition at line 72 of file RuntimeLibcalls.h.
|
default |
Referenced by RuntimeLibcallsInfo().
|
inlineexplicit |
Definition at line 82 of file RuntimeLibcalls.h.
References llvm::Default, llvm::FloatABI::Default, and llvm::None.
Definition at line 28 of file RuntimeLibcalls.cpp.
References RuntimeLibcallsInfo().
| 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 85 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().
|
inlinestatic |
Return the libcall provided by Impl.
Definition at line 123 of file RuntimeLibcalls.h.
Referenced by llvm::TargetLoweringBase::getSoftFloatCmpLibcallPredicate(), and llvm::LibcallLoweringInfo::LibcallLoweringInfo().
|
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().
|
inlinestatic |
Get the libcall routine name for the specified libcall implementation.
Definition at line 103 of file RuntimeLibcalls.h.
Referenced by llvm::TargetLoweringBase::getLibcallImplName(), llvm::LibcallLoweringInfo::getLibcallName(), llvm::lto::LTO::getRuntimeLibcallSymbols(), lowerObjCCall(), and llvm::DeclareRuntimeLibcallsPass::run().
|
inline |
Definition at line 127 of file RuntimeLibcalls.h.
Referenced by llvm::lto::LTO::getRuntimeLibcallSymbols().
|
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().
| bool RTLIB::RuntimeLibcallsInfo::invalidate | ( | Module & | M, |
| const PreservedAnalyses & | PA, | ||
| ModuleAnalysisManager::Invalidator & | ) |
Definition at line 38 of file RuntimeLibcallInfo.cpp.
References llvm::PreservedAnalyses::getChecker().
|
inline |
Definition at line 131 of file RuntimeLibcalls.h.
Referenced by llvm::lto::LTO::getRuntimeLibcallSymbols(), getSupportedLibcallImpl(), and llvm::DeclareRuntimeLibcallsPass::run().
|
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().
|
inline |
Definition at line 135 of file RuntimeLibcalls.h.
|
inline |
Set the CallingConv that should be used for the specified libcall implementation.
Definition at line 113 of file RuntimeLibcalls.h.
References Call.
|
friend |
Definition at line 78 of file RuntimeLibcalls.h.