|
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="", VectorLibrary VecLib=VectorLibrary::NoLibrary) | |
| 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. | |
| static bool | hasVectorMaskArgument (RTLIB::LibcallImpl Impl) |
| Returns true if the function has a vector mask argument, which is assumed to be the last argument. | |
Friends | |
| class | llvm::LibcallLoweringInfo |
A simple container for information about the supported runtime calls.
Definition at line 73 of file RuntimeLibcalls.h.
|
default |
References llvm::Default, llvm::FloatABI::Default, llvm::NoLibrary, and llvm::None.
Referenced by RuntimeLibcallsInfo().
|
explicit |
Definition at line 29 of file RuntimeLibcalls.cpp.
References llvm::CallingConv::AArch64_VectorCall, llvm::ArmPL, llvm::None, setAvailable(), setLibcallImplCallingConv(), and llvm::SLEEFGNUABI.
Definition at line 77 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 134 of file RuntimeLibcalls.cpp.
References llvm::MemoryEffectsBase< IRMemLocation >::argMemOnly(), 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::PointerType::get(), llvm::StructType::get(), llvm::VectorType::get(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getInt1Ty(), llvm::Type::getVoidTy(), llvm::Attribute::getWithNoFPClass(), hasVectorMaskArgument(), llvm::Mod, llvm::NoModRef, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::DeclareRuntimeLibcallsPass::run().
|
inlinestatic |
Return the libcall provided by Impl.
Definition at line 116 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 111 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 96 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 120 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 150 of file RuntimeLibcalls.h.
References isAvailable(), and lookupLibcallImplName().
|
static |
Returns true if the function has a vector mask argument, which is assumed to be the last argument.
FIXME: This should be generated by tablegen and support the argument at an arbitrary position
Definition at line 321 of file RuntimeLibcalls.cpp.
Referenced by llvm::TargetLowering::expandMultipleResultFPLibCall(), and getFunctionTy().
| bool RTLIB::RuntimeLibcallsInfo::invalidate | ( | Module & | M, |
| const PreservedAnalyses & | PA, | ||
| ModuleAnalysisManager::Invalidator & | ) |
Definition at line 40 of file RuntimeLibcallInfo.cpp.
References llvm::PreservedAnalyses::getChecker().
|
inline |
Definition at line 124 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 140 of file RuntimeLibcalls.h.
Referenced by getSupportedLibcallImpl(), and isMips16HardFloatLibcall().
|
inline |
Definition at line 128 of file RuntimeLibcalls.h.
Referenced by RuntimeLibcallsInfo().
|
inline |
Set the CallingConv that should be used for the specified libcall implementation.
Definition at line 106 of file RuntimeLibcalls.h.
References Call.
Referenced by RuntimeLibcallsInfo().
|
friend |
Definition at line 79 of file RuntimeLibcalls.h.