|
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. | |
| 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 72 of file RuntimeLibcalls.h.
|
default |
References llvm::Default, llvm::FloatABI::Default, and llvm::None.
Referenced by RuntimeLibcallsInfo().
|
explicit |
Definition at line 29 of file RuntimeLibcalls.cpp.
References llvm::CallingConv::AArch64_VectorCall, llvm::ArmPL, llvm::ClVectorLibrary, llvm::None, setAvailable(), setLibcallImplCallingConv(), and llvm::SLEEFGNUABI.
Definition at line 72 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 129 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 114 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 109 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 94 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 118 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 148 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 270 of file RuntimeLibcalls.cpp.
Referenced by llvm::SelectionDAG::expandMultipleResultFPLibCall(), and getFunctionTy().
| 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 122 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 138 of file RuntimeLibcalls.h.
Referenced by getSupportedLibcallImpl().
|
inline |
Definition at line 126 of file RuntimeLibcalls.h.
Referenced by RuntimeLibcallsInfo().
|
inline |
Set the CallingConv that should be used for the specified libcall implementation.
Definition at line 104 of file RuntimeLibcalls.h.
References Call.
Referenced by RuntimeLibcallsInfo().
|
friend |
Definition at line 78 of file RuntimeLibcalls.h.