16void RuntimeLibcallsInfo::initLibcalls(
const Triple &TT) {
17 std::fill(std::begin(LibcallRoutineNames), std::end(LibcallRoutineNames),
20#define HANDLE_LIBCALL(code, name) setLibcallName(RTLIB::code, name);
21#include "llvm/IR/RuntimeLibcalls.def"
25 for (
int LC = 0; LC < RTLIB::UNKNOWN_LIBCALL; ++LC)
109 if (
TT.isOSDarwin()) {
117 switch (
TT.getArch()) {
120 if (
TT.isMacOSX() && !
TT.isMacOSXVersionLT(10, 6))
131 if (darwinHasSinCos(TT)) {
134 if (
TT.isWatchABI()) {
142 switch (
TT.getOS()) {
144 if (
TT.isMacOSXVersionLT(10, 9)) {
153 if (
TT.isOSVersionLT(7, 0)) {
178 if (
TT.isGNUEnvironment() ||
TT.isOSFuchsia() ||
179 (
TT.isAndroid() && !
TT.isAndroidVersionLT(9))) {
192 if (
TT.isOSOpenBSD()) {
196 if (
TT.isOSWindows() && !
TT.isOSCygMing()) {
210 for (
int I = 0;
I < RTLIB::UNKNOWN_LIBCALL; ++
I) {
211 if (I < RTLIB::ATOMIC_LOAD || I > RTLIB::ATOMIC_FETCH_NAND_16)
218 for (
int I = 0;
I < RTLIB::UNKNOWN_LIBCALL; ++
I)
219 if (I < RTLIB::ATOMIC_LOAD || I > RTLIB::ATOMIC_FETCH_NAND_16)
223 if (
TT.isOSMSVCRT()) {
249 if (
TT.isArch32Bit()) {
Triple - Helper class for working with autoconf configuration names.
@ ARM_AAPCS_VFP
Same as ARM_AAPCS, but uses hard floating point ABI.
@ C
The default llvm calling convention, compatible with C.
Libcall
RTLIB::Libcall enum - This enum defines all of the runtime library calls the backend can emit.
This is an optimization pass for GlobalISel generic memory operations.
void setLibcallName(RTLIB::Libcall Call, const char *Name)
Rename the default libcall routine name for the specified libcall.
void setLibcallCallingConv(RTLIB::Libcall Call, CallingConv::ID CC)
Set the CallingConv that should be used for the specified libcall.