LLVM 22.0.0git
llvm::RTLIB Namespace Reference

Classes

class  LibcallImplBitset
 Manage a bitset representing the list of available libcalls for a module. More...
struct  RuntimeLibcallsInfo
 A simple container for information about the supported runtime calls. More...

Functions

LLVM_ABI Libcall getSHL (EVT VT)
LLVM_ABI Libcall getSRL (EVT VT)
LLVM_ABI Libcall getSRA (EVT VT)
LLVM_ABI Libcall getMUL (EVT VT)
LLVM_ABI Libcall getMULO (EVT VT)
LLVM_ABI Libcall getSDIV (EVT VT)
LLVM_ABI Libcall getUDIV (EVT VT)
LLVM_ABI Libcall getSREM (EVT VT)
LLVM_ABI Libcall getUREM (EVT VT)
LLVM_ABI Libcall getCTPOP (EVT VT)
LLVM_ABI Libcall getFPLibCall (EVT VT, Libcall Call_F32, Libcall Call_F64, Libcall Call_F80, Libcall Call_F128, Libcall Call_PPCF128)
 GetFPLibCall - Helper to return the right libcall for the given floating point type, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getFPEXT (EVT OpVT, EVT RetVT)
 getFPEXT - Return the FPEXT_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getFPROUND (EVT OpVT, EVT RetVT)
 getFPROUND - Return the FPROUND_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getFPTOSINT (EVT OpVT, EVT RetVT)
 getFPTOSINT - Return the FPTOSINT_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getFPTOUINT (EVT OpVT, EVT RetVT)
 getFPTOUINT - Return the FPTOUINT_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getSINTTOFP (EVT OpVT, EVT RetVT)
 getSINTTOFP - Return the SINTTOFP_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getUINTTOFP (EVT OpVT, EVT RetVT)
 getUINTTOFP - Return the UINTTOFP_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getPOWI (EVT RetVT)
 getPOWI - Return the POWI_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getPOW (EVT RetVT)
 getPOW - Return the POW_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getLDEXP (EVT RetVT)
 getLDEXP - Return the LDEXP_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getFREXP (EVT RetVT)
 getFREXP - Return the FREXP_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getSIN (EVT RetVT)
 Return the SIN_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getCOS (EVT RetVT)
 Return the COS_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getSINCOS (EVT RetVT)
 getSINCOS - Return the SINCOS_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getSINCOSPI (EVT RetVT)
 getSINCOSPI - Return the SINCOSPI_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getSINCOS_STRET (EVT RetVT)
 Return the SINCOS_STRET_ value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getMODF (EVT VT)
 getMODF - Return the MODF_* value for the given types, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getLROUND (EVT VT)
LLVM_ABI Libcall getLLROUND (EVT VT)
LLVM_ABI Libcall getLRINT (EVT RetVT)
LLVM_ABI Libcall getLLRINT (EVT RetVT)
LLVM_ABI Libcall getSYNC (unsigned Opc, MVT VT)
 Return the SYNC_FETCH_AND_* value for the given opcode and type, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getOutlineAtomicHelper (const Libcall(&LC)[5][4], AtomicOrdering Order, uint64_t MemSize)
 Return the outline atomics value for the given atomic ordering, access size and set of libcalls for a given atomic, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getOUTLINE_ATOMIC (unsigned Opc, AtomicOrdering Order, MVT VT)
 Return the outline atomics value for the given opcode, atomic ordering and type, or UNKNOWN_LIBCALL if there is none.
LLVM_ABI Libcall getMEMCPY_ELEMENT_UNORDERED_ATOMIC (uint64_t ElementSize)
 getMEMCPY_ELEMENT_UNORDERED_ATOMIC - Return MEMCPY_ELEMENT_UNORDERED_ATOMIC_* value for the given element size or UNKNOW_LIBCALL if there is none.
LLVM_ABI Libcall getMEMMOVE_ELEMENT_UNORDERED_ATOMIC (uint64_t ElementSize)
 getMEMMOVE_ELEMENT_UNORDERED_ATOMIC - Return MEMMOVE_ELEMENT_UNORDERED_ATOMIC_* value for the given element size or UNKNOW_LIBCALL if there is none.
LLVM_ABI Libcall getMEMSET_ELEMENT_UNORDERED_ATOMIC (uint64_t ElementSize)
 getMEMSET_ELEMENT_UNORDERED_ATOMIC - Return MEMSET_ELEMENT_UNORDERED_ATOMIC_* value for the given element size or UNKNOW_LIBCALL if there is none.
static auto libcalls ()
static auto libcall_impls ()

Function Documentation

◆ getCOS()

RTLIB::Libcall llvm::RTLIB::getCOS ( EVT RetVT)

Return the COS_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 541 of file TargetLoweringBase.cpp.

References getFPLibCall().

◆ getCTPOP()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getCTPOP ( EVT VT)
Returns
The CTPOP_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 215 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getFPEXT()

RTLIB::Libcall llvm::RTLIB::getFPEXT ( EVT OpVT,
EVT RetVT )

getFPEXT - Return the FPEXT_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 244 of file TargetLoweringBase.cpp.

Referenced by getConvRTLibDesc().

◆ getFPLibCall()

LLVM_ABI Libcall llvm::RTLIB::getFPLibCall ( EVT VT,
Libcall Call_F32,
Libcall Call_F64,
Libcall Call_F80,
Libcall Call_F128,
Libcall Call_PPCF128 )

GetFPLibCall - Helper to return the right libcall for the given floating point type, or UNKNOWN_LIBCALL if there is none.

References LLVM_ABI, and Opc.

Referenced by getCOS(), getFREXP(), getLDEXP(), getMODF(), getPOW(), getPOWI(), getSIN(), getSINCOS(), getSINCOS_STRET(), and getSINCOSPI().

◆ getFPROUND()

RTLIB::Libcall llvm::RTLIB::getFPROUND ( EVT OpVT,
EVT RetVT )

getFPROUND - Return the FPROUND_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 279 of file TargetLoweringBase.cpp.

Referenced by getConvRTLibDesc(), and llvm::RISCVTargetLowering::LowerOperation().

◆ getFPTOSINT()

RTLIB::Libcall llvm::RTLIB::getFPTOSINT ( EVT OpVT,
EVT RetVT )

getFPTOSINT - Return the FPTOSINT_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 326 of file TargetLoweringBase.cpp.

Referenced by findFPToIntLibcall(), getConvRTLibDesc(), llvm::LoongArchTargetLowering::ReplaceNodeResults(), and llvm::RISCVTargetLowering::ReplaceNodeResults().

◆ getFPTOUINT()

RTLIB::Libcall llvm::RTLIB::getFPTOUINT ( EVT OpVT,
EVT RetVT )

getFPTOUINT - Return the FPTOUINT_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 375 of file TargetLoweringBase.cpp.

Referenced by findFPToIntLibcall(), getConvRTLibDesc(), and llvm::RISCVTargetLowering::ReplaceNodeResults().

◆ getFREXP()

RTLIB::Libcall llvm::RTLIB::getFREXP ( EVT RetVT)

getFREXP - Return the FREXP_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 532 of file TargetLoweringBase.cpp.

References getFPLibCall().

◆ getLDEXP()

RTLIB::Libcall llvm::RTLIB::getLDEXP ( EVT RetVT)

getLDEXP - Return the LDEXP_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 527 of file TargetLoweringBase.cpp.

References getFPLibCall().

◆ getLLRINT()

RTLIB::Libcall llvm::RTLIB::getLLRINT ( EVT RetVT)
Returns
the LLRINT_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 663 of file TargetLoweringBase.cpp.

◆ getLLROUND()

RTLIB::Libcall llvm::RTLIB::getLLROUND ( EVT VT)
Returns
the LLROUND_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 634 of file TargetLoweringBase.cpp.

◆ getLRINT()

RTLIB::Libcall llvm::RTLIB::getLRINT ( EVT RetVT)
Returns
the LRINT_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 649 of file TargetLoweringBase.cpp.

◆ getLROUND()

RTLIB::Libcall llvm::RTLIB::getLROUND ( EVT VT)
Returns
the LROUND_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 619 of file TargetLoweringBase.cpp.

◆ getMEMCPY_ELEMENT_UNORDERED_ATOMIC()

RTLIB::Libcall llvm::RTLIB::getMEMCPY_ELEMENT_UNORDERED_ATOMIC ( uint64_t ElementSize)

getMEMCPY_ELEMENT_UNORDERED_ATOMIC - Return MEMCPY_ELEMENT_UNORDERED_ATOMIC_* value for the given element size or UNKNOW_LIBCALL if there is none.

Definition at line 802 of file TargetLoweringBase.cpp.

Referenced by llvm::SelectionDAG::getAtomicMemcpy().

◆ getMEMMOVE_ELEMENT_UNORDERED_ATOMIC()

RTLIB::Libcall llvm::RTLIB::getMEMMOVE_ELEMENT_UNORDERED_ATOMIC ( uint64_t ElementSize)

getMEMMOVE_ELEMENT_UNORDERED_ATOMIC - Return MEMMOVE_ELEMENT_UNORDERED_ATOMIC_* value for the given element size or UNKNOW_LIBCALL if there is none.

Definition at line 819 of file TargetLoweringBase.cpp.

Referenced by llvm::SelectionDAG::getAtomicMemmove().

◆ getMEMSET_ELEMENT_UNORDERED_ATOMIC()

RTLIB::Libcall llvm::RTLIB::getMEMSET_ELEMENT_UNORDERED_ATOMIC ( uint64_t ElementSize)

getMEMSET_ELEMENT_UNORDERED_ATOMIC - Return MEMSET_ELEMENT_UNORDERED_ATOMIC_* value for the given element size or UNKNOW_LIBCALL if there is none.

Definition at line 836 of file TargetLoweringBase.cpp.

Referenced by llvm::SelectionDAG::getAtomicMemset().

◆ getMODF()

RTLIB::Libcall llvm::RTLIB::getMODF ( EVT VT)

getMODF - Return the MODF_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 596 of file TargetLoweringBase.cpp.

References getFPLibCall(), llvm::EVT::getSimpleVT(), llvm::EVT::isSimple(), llvm::EVT::isVector(), and llvm::MVT::SimpleTy.

◆ getMUL()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getMUL ( EVT VT)
Returns
The MUL_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 145 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getMULO()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getMULO ( EVT VT)
Returns
The MULO_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 157 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getOUTLINE_ATOMIC()

RTLIB::Libcall llvm::RTLIB::getOUTLINE_ATOMIC ( unsigned Opc,
AtomicOrdering Order,
MVT VT )

Return the outline atomics value for the given opcode, atomic ordering and type, or UNKNOWN_LIBCALL if there is none.

Definition at line 722 of file TargetLoweringBase.cpp.

References getOutlineAtomicHelper(), llvm::MVT::getScalarSizeInBits(), llvm::MVT::isScalarInteger(), LCALL5, and Opc.

◆ getOutlineAtomicHelper()

RTLIB::Libcall llvm::RTLIB::getOutlineAtomicHelper ( const Libcall(&) LC[5][4],
AtomicOrdering Order,
uint64_t MemSize )

Return the outline atomics value for the given atomic ordering, access size and set of libcalls for a given atomic, or UNKNOWN_LIBCALL if there is none.

Definition at line 677 of file TargetLoweringBase.cpp.

References llvm::Acquire, llvm::AcquireRelease, llvm::Monotonic, llvm::Release, and llvm::SequentiallyConsistent.

Referenced by getOUTLINE_ATOMIC().

◆ getPOW()

RTLIB::Libcall llvm::RTLIB::getPOW ( EVT RetVT)

getPOW - Return the POW_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 523 of file TargetLoweringBase.cpp.

References getFPLibCall().

◆ getPOWI()

RTLIB::Libcall llvm::RTLIB::getPOWI ( EVT RetVT)

getPOWI - Return the POWI_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 518 of file TargetLoweringBase.cpp.

References getFPLibCall().

◆ getSDIV()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getSDIV ( EVT VT)
Returns
The SDIV_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 167 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getSHL()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getSHL ( EVT VT)
Returns
The SHL_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 106 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getSIN()

RTLIB::Libcall llvm::RTLIB::getSIN ( EVT RetVT)

Return the SIN_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 537 of file TargetLoweringBase.cpp.

References getFPLibCall().

◆ getSINCOS()

RTLIB::Libcall llvm::RTLIB::getSINCOS ( EVT RetVT)

getSINCOS - Return the SINCOS_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 545 of file TargetLoweringBase.cpp.

References getFPLibCall(), llvm::EVT::getSimpleVT(), llvm::EVT::isSimple(), llvm::EVT::isVector(), and llvm::MVT::SimpleTy.

Referenced by isSinCosLibcallAvailable().

◆ getSINCOS_STRET()

RTLIB::Libcall llvm::RTLIB::getSINCOS_STRET ( EVT RetVT)

Return the SINCOS_STRET_ value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 591 of file TargetLoweringBase.cpp.

References getFPLibCall().

Referenced by isSinCosLibcallAvailable().

◆ getSINCOSPI()

RTLIB::Libcall llvm::RTLIB::getSINCOSPI ( EVT RetVT)

getSINCOSPI - Return the SINCOSPI_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 568 of file TargetLoweringBase.cpp.

References getFPLibCall(), llvm::EVT::getSimpleVT(), llvm::EVT::isSimple(), llvm::EVT::isVector(), and llvm::MVT::SimpleTy.

◆ getSINTTOFP()

RTLIB::Libcall llvm::RTLIB::getSINTTOFP ( EVT OpVT,
EVT RetVT )

getSINTTOFP - Return the SINTTOFP_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 424 of file TargetLoweringBase.cpp.

Referenced by getConvRTLibDesc().

◆ getSRA()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getSRA ( EVT VT)
Returns
The SRA_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 132 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getSREM()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getSREM ( EVT VT)
Returns
The SREM_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 191 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getSRL()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getSRL ( EVT VT)
Returns
The SRL_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 119 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getSYNC()

RTLIB::Libcall llvm::RTLIB::getSYNC ( unsigned Opc,
MVT VT )

Return the SYNC_FETCH_AND_* value for the given opcode and type, or UNKNOWN_LIBCALL if there is none.

Definition at line 764 of file TargetLoweringBase.cpp.

References OP_TO_LIBCALL, and Opc.

◆ getUDIV()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getUDIV ( EVT VT)
Returns
The UDIV_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 179 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ getUINTTOFP()

RTLIB::Libcall llvm::RTLIB::getUINTTOFP ( EVT OpVT,
EVT RetVT )

getUINTTOFP - Return the UINTTOFP_*_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 472 of file TargetLoweringBase.cpp.

Referenced by getConvRTLibDesc().

◆ getUREM()

LLVM_ABI RTLIB::Libcall llvm::RTLIB::getUREM ( EVT VT)
Returns
The UREM_* value for the given types, or UNKNOWN_LIBCALL if there is none.

Definition at line 203 of file TargetLoweringBase.cpp.

References LLVM_ABI.

◆ libcall_impls()

auto llvm::RTLIB::libcall_impls ( )
inlinestatic

◆ libcalls()

auto llvm::RTLIB::libcalls ( )
inlinestatic

Definition at line 54 of file RuntimeLibcalls.h.

References llvm::enum_seq().