|
LLVM 24.0.0git
|
Tracks which library functions to use for a particular subtarget or function. More...
#include "llvm/Analysis/LibcallLoweringInfo.h"
Public Types | |
| using | ApplyContextRulesFn = function_ref<void(LibcallLoweringInfo &)> |
| Callback applying the caller's context-specific (e.g. | |
Public Member Functions | |
| LLVM_ABI | LibcallLoweringInfo (const RTLIB::RuntimeLibcallsInfo &RTLCI, ApplyContextRulesFn ApplyContextRules={}) |
Construct the lowering info from the module-level RTLCI, seeding the default implementation for every available libcall, then applying the optional ApplyContextRules callback for the caller's context-specific libcall rules. | |
| const RTLIB::RuntimeLibcallsInfo & | getRuntimeLibcallsInfo () const |
| const char * | 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 | setLibcallImpl (RTLIB::Libcall Call, RTLIB::LibcallImpl Impl) |
| Remap the default libcall routine name for the specified libcall. | |
| 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. | |
| RTLIB::LibcallImpl | getMemcpyImpl () const |
| Return a function impl compatible with RTLIB::MEMCPY, or RTLIB::Unsupported if fully unsupported. | |
Tracks which library functions to use for a particular subtarget or function.
Definition at line 28 of file LibcallLoweringInfo.h.
Callback applying the caller's context-specific (e.g.
subtarget) libcall rules on top of the module-level defaults.
Definition at line 38 of file LibcallLoweringInfo.h.
| LibcallLoweringInfo::LibcallLoweringInfo | ( | const RTLIB::RuntimeLibcallsInfo & | RTLCI, |
| ApplyContextRulesFn | ApplyContextRules = {} ) |
Construct the lowering info from the module-level RTLCI, seeding the default implementation for every available libcall, then applying the optional ApplyContextRules callback for the caller's context-specific libcall rules.
Definition at line 14 of file LibcallLoweringInfo.cpp.
References llvm::RTLIB::RuntimeLibcallsInfo::getLibcallFromImpl(), and llvm::RTLIB::libcall_impls().
|
inline |
Definition at line 71 of file LibcallLoweringInfo.h.
References Call.
|
inline |
Return the lowering's selection of implementation call for Call.
Definition at line 60 of file LibcallLoweringInfo.h.
References Call.
Referenced by CreateFailBB(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), getMemcpyImpl(), getRuntimeCallSDValueHelper(), isDivRemLibcallAvailable(), isSinCosLibcallAvailable(), llvm::SparcTargetLowering::LowerF128Op(), llvm::AArch64GISelUtils::matchEmitBZero(), peephole(), performVselectPowCombine(), selectFPCmpLibcall(), and llvm::TargetLowering::softenSetCCOperands().
|
inline |
Get the CallingConv that should be used for the specified libcall.
Definition at line 76 of file LibcallLoweringInfo.h.
References Call.
Referenced by llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), getRuntimeCallSDValueHelper(), and llvm::SparcTargetLowering::LowerF128Op().
Get the libcall routine name for the specified libcall.
Definition at line 53 of file LibcallLoweringInfo.h.
References Call, llvm::StringRef::data(), and llvm::RTLIB::RuntimeLibcallsInfo::getLibcallImplName().
|
inline |
Return a function impl compatible with RTLIB::MEMCPY, or RTLIB::Unsupported if fully unsupported.
Definition at line 82 of file LibcallLoweringInfo.h.
References getLibcallImpl().
|
inline |
Definition at line 47 of file LibcallLoweringInfo.h.
|
inline |
Remap the default libcall routine name for the specified libcall.
Definition at line 65 of file LibcallLoweringInfo.h.
References Call.