LLVM: lib/Analysis/TargetLibraryInfo.cpp File Reference (original) (raw)
Go to the source code of this file.
Macros | |
---|---|
#define | TLI_DEFINE_STRING |
#define | TLI_DEFINE_SIG |
#define | TLI_DEFINE_ACCELERATE_VECFUNCS |
#define | TLI_DEFINE_DARWIN_LIBSYSTEM_M_VECFUNCS |
#define | TLI_DEFINE_LIBMVEC_X86_VECFUNCS |
#define | TLI_DEFINE_MASSV_VECFUNCS |
#define | TLI_DEFINE_SVML_VECFUNCS |
#define | TLI_DEFINE_SLEEFGNUABI_VF2_VECFUNCS |
#define | TLI_DEFINE_VECFUNC(SCAL, VEC, VF, VABI_PREFIX) {SCAL, VEC, VF, /* MASK = */ false, VABI_PREFIX}, |
#define | TLI_DEFINE_SLEEFGNUABI_VF4_VECFUNCS |
#define | TLI_DEFINE_VECFUNC(SCAL, VEC, VF, VABI_PREFIX) {SCAL, VEC, VF, /* MASK = */ false, VABI_PREFIX}, |
#define | TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS |
#define | TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX) {SCAL, VEC, VF, MASK, VABI_PREFIX}, |
#define | TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS_RISCV |
#define | TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX) {SCAL, VEC, VF, MASK, VABI_PREFIX}, |
#define | TLI_DEFINE_ARMPL_VECFUNCS |
#define | TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX) {SCAL, VEC, VF, MASK, VABI_PREFIX}, |
#define | TLI_DEFINE_AMDLIBM_VECFUNCS |
#define | TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX) {SCAL, VEC, VF, MASK, VABI_PREFIX}, |
Enumerations | |
---|---|
enum | FuncArgTypeID : char { Void = 0 , Bool, Int16, Int32, Int, IntPlus, Long, IntX, Int64, LLong, SizeT, SSizeT, Flt, Dbl, LDbl, Floating, Ptr, Struct, Ellip, Same } |
Variables | |
---|---|
static cl::opt< TargetLibraryInfoImpl::VectorLibrary > | ClVectorLibrary ("vector-library", cl::Hidden, cl::desc("Vector functions library"), cl::init(TargetLibraryInfoImpl::NoLibrary), cl::values(clEnumValN(TargetLibraryInfoImpl::NoLibrary, "none", "No vector functions library"), clEnumValN(TargetLibraryInfoImpl::Accelerate, "Accelerate", "Accelerate framework"), clEnumValN(TargetLibraryInfoImpl::DarwinLibSystemM, "Darwin_libsystem_m", "Darwin libsystem_m"), clEnumValN(TargetLibraryInfoImpl::LIBMVEC_X86, "LIBMVEC-X86", "GLIBC Vector Math library"), clEnumValN(TargetLibraryInfoImpl::MASSV, "MASSV", "IBM MASS vector library"), clEnumValN(TargetLibraryInfoImpl::SVML, "SVML", "Intel SVML library"), clEnumValN(TargetLibraryInfoImpl::SLEEFGNUABI, "sleefgnuabi", "SIMD Library for Evaluating Elementary Functions"), clEnumValN(TargetLibraryInfoImpl::ArmPL, "ArmPL", "Arm Performance Libraries"), clEnumValN(TargetLibraryInfoImpl::AMDLIBM, "AMDLIBM", "AMD vector math library"))) |
static const FuncProtoTy | Signatures [] |
static const VecDesc | VecFuncs_Accelerate [] |
static const VecDesc | VecFuncs_DarwinLibSystemM [] |
static const VecDesc | VecFuncs_LIBMVEC_X86 [] |
static const VecDesc | VecFuncs_MASSV [] |
static const VecDesc | VecFuncs_SVML [] |
static const VecDesc | VecFuncs_SLEEFGNUABI_VF2 [] |
static const VecDesc | VecFuncs_SLEEFGNUABI_VF4 [] |
static const VecDesc | VecFuncs_SLEEFGNUABI_VFScalable [] |
static const VecDesc | VecFuncs_SLEEFGNUABI_VFScalableRISCV [] |
static const VecDesc | VecFuncs_ArmPL [] |
const VecDesc | VecFuncs_AMDLIBM [] |
◆ TLI_DEFINE_ACCELERATE_VECFUNCS
#define TLI_DEFINE_ACCELERATE_VECFUNCS
◆ TLI_DEFINE_AMDLIBM_VECFUNCS
#define TLI_DEFINE_AMDLIBM_VECFUNCS
◆ TLI_DEFINE_ARMPL_VECFUNCS
#define TLI_DEFINE_ARMPL_VECFUNCS
◆ TLI_DEFINE_DARWIN_LIBSYSTEM_M_VECFUNCS
#define TLI_DEFINE_DARWIN_LIBSYSTEM_M_VECFUNCS
◆ TLI_DEFINE_LIBMVEC_X86_VECFUNCS
#define TLI_DEFINE_LIBMVEC_X86_VECFUNCS
◆ TLI_DEFINE_MASSV_VECFUNCS
#define TLI_DEFINE_MASSV_VECFUNCS
◆ TLI_DEFINE_SIG
◆ TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS
#define TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS
◆ TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS_RISCV
#define TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS_RISCV
◆ TLI_DEFINE_SLEEFGNUABI_VF2_VECFUNCS
#define TLI_DEFINE_SLEEFGNUABI_VF2_VECFUNCS
◆ TLI_DEFINE_SLEEFGNUABI_VF4_VECFUNCS
#define TLI_DEFINE_SLEEFGNUABI_VF4_VECFUNCS
◆ TLI_DEFINE_STRING
#define TLI_DEFINE_STRING
◆ TLI_DEFINE_SVML_VECFUNCS
#define TLI_DEFINE_SVML_VECFUNCS
◆ TLI_DEFINE_VECFUNC [1/6]
| #define TLI_DEFINE_VECFUNC | ( | | SCAL, | | ---------------------------- | ------------------------------------ | | ----- | | | VEC, | | | | | | VF, | | | | | | MASK, | | | | | | VABI_PREFIX | | | | | ) | {SCAL, VEC, VF, MASK, VABI_PREFIX}, | | |
◆ TLI_DEFINE_VECFUNC [2/6]
| #define TLI_DEFINE_VECFUNC | ( | | SCAL, | | ---------------------------- | ------------------------------------ | | ----- | | | VEC, | | | | | | VF, | | | | | | MASK, | | | | | | VABI_PREFIX | | | | | ) | {SCAL, VEC, VF, MASK, VABI_PREFIX}, | | |
◆ TLI_DEFINE_VECFUNC [3/6]
| #define TLI_DEFINE_VECFUNC | ( | | SCAL, | | ---------------------------- | ------------------------------------ | | ----- | | | VEC, | | | | | | VF, | | | | | | MASK, | | | | | | VABI_PREFIX | | | | | ) | {SCAL, VEC, VF, MASK, VABI_PREFIX}, | | |
◆ TLI_DEFINE_VECFUNC [4/6]
| #define TLI_DEFINE_VECFUNC | ( | | SCAL, | | ---------------------------- | ------------------------------------ | | ----- | | | VEC, | | | | | | VF, | | | | | | MASK, | | | | | | VABI_PREFIX | | | | | ) | {SCAL, VEC, VF, MASK, VABI_PREFIX}, | | |
◆ TLI_DEFINE_VECFUNC [5/6]
| #define TLI_DEFINE_VECFUNC | ( | | SCAL, | | ---------------------------- | ---------------------------------------------------- | | ----- | | | VEC, | | | | | | VF, | | | | | | VABI_PREFIX | | | | | ) | {SCAL, VEC, VF, /* MASK = */ false, VABI_PREFIX}, | | |
◆ TLI_DEFINE_VECFUNC [6/6]
| #define TLI_DEFINE_VECFUNC | ( | | SCAL, | | ---------------------------- | ---------------------------------------------------- | | ----- | | | VEC, | | | | | | VF, | | | | | | VABI_PREFIX | | | | | ) | {SCAL, VEC, VF, /* MASK = */ false, VABI_PREFIX}, | | |
◆ FuncProtoTy
◆ FuncArgTypeID
Enumerator |
---|
Void |
Bool |
Int16 |
Int32 |
Int |
IntPlus |
Long |
IntX |
Int64 |
LLong |
SizeT |
SSizeT |
Flt |
Dbl |
LDbl |
Floating |
Ptr |
Struct |
Ellip |
Same |
Definition at line 60 of file TargetLibraryInfo.cpp.
◆ buildIndexMap()
◆ compareByScalarFnName()
◆ compareByVectorFnName()
◆ compareWithScalarFnName()
◆ hasBcmp()
◆ hasSinCosPiStret()
◆ initialize()
◆ initializeBase()
◆ initializeLibCalls()
Initialize the set of available library functions based on the specified target triple.
This should be carefully written so that a missing target triple gets a sane set of defaults.
Definition at line 184 of file TargetLibraryInfo.cpp.
References llvm::Triple::aarch64, llvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib(), llvm::Triple::arm, ClVectorLibrary, llvm::Triple::Darwin, llvm::TargetLibraryInfoImpl::disableAllFunctions(), llvm::Triple::Emscripten, llvm::Triple::FreeBSD, hasBcmp(), hasSinCosPiStret(), llvm::Triple::IOS, llvm::Triple::Linux, llvm::Triple::MacOSX, llvm::TargetLibraryInfoImpl::setAvailable(), llvm::TargetLibraryInfoImpl::setAvailableWithName(), llvm::TargetLibraryInfoImpl::setUnavailable(), llvm::Triple::tce, llvm::Triple::TvOS, llvm::Version, llvm::Triple::WatchOS, llvm::Triple::x86, llvm::Triple::x86_64, llvm::Triple::xcore, and llvm::Triple::XROS.
Referenced by initialize().
◆ isCallingConvCCompatible()
◆ isValidProtoForSizeReturningNew()
◆ matchType()
Definition at line 1021 of file TargetLibraryInfo.cpp.
References Bool, Dbl, Floating, Flt, llvm::Type::getPrimitiveSizeInBits(), Int, Int16, Int32, Int64, IntPlus, IntX, llvm::Type::isDoubleTy(), llvm::Type::isFloatingPointTy(), llvm::Type::isFloatTy(), llvm::Type::isIntegerTy(), llvm::Type::isPointerTy(), llvm::Type::isStructTy(), llvm::Type::isVoidTy(), LDbl, LLong, llvm_unreachable, Long, Ptr, SizeT, SSizeT, Struct, and Void.
◆ sanitizeFunctionName()
◆ ClVectorLibrary
cl::opt< TargetLibraryInfoImpl::VectorLibrary > ClVectorLibrary("vector-library", cl::Hidden, cl::desc("Vector functions library"), cl::init(TargetLibraryInfoImpl::NoLibrary), cl::values(clEnumValN(TargetLibraryInfoImpl::NoLibrary, "none", "No vector functions library"), clEnumValN(TargetLibraryInfoImpl::Accelerate, "Accelerate", "Accelerate framework"), clEnumValN(TargetLibraryInfoImpl::DarwinLibSystemM, "Darwin_libsystem_m", "Darwin libsystem_m"), clEnumValN(TargetLibraryInfoImpl::LIBMVEC_X86, "LIBMVEC-X86", "GLIBC Vector Math library"), clEnumValN(TargetLibraryInfoImpl::MASSV, "MASSV", "IBM MASS vector library"), clEnumValN(TargetLibraryInfoImpl::SVML, "SVML", "Intel SVML library"), clEnumValN(TargetLibraryInfoImpl::SLEEFGNUABI, "sleefgnuabi", "SIMD Library for Evaluating Elementary Functions"), clEnumValN(TargetLibraryInfoImpl::ArmPL, "ArmPL", "Arm Performance Libraries"), clEnumValN(TargetLibraryInfoImpl::AMDLIBM, "AMDLIBM", "AMD vector math library"))) ( "vector-library" , cl::Hidden , cl::desc("Vector functions library") , cl::init(TargetLibraryInfoImpl::NoLibrary) , cl::values(clEnumValN(TargetLibraryInfoImpl::NoLibrary, "none", "No vector functions library"), clEnumValN(TargetLibraryInfoImpl::Accelerate, "Accelerate", "Accelerate framework"), clEnumValN(TargetLibraryInfoImpl::DarwinLibSystemM, "Darwin_libsystem_m", "Darwin libsystem_m"), clEnumValN(TargetLibraryInfoImpl::LIBMVEC_X86, "LIBMVEC-X86", "GLIBC Vector Math library"), clEnumValN(TargetLibraryInfoImpl::MASSV, "MASSV", "IBM MASS vector library"), clEnumValN(TargetLibraryInfoImpl::SVML, "SVML", "Intel SVML library"), clEnumValN(TargetLibraryInfoImpl::SLEEFGNUABI, "sleefgnuabi", "SIMD Library for Evaluating Elementary Functions"), clEnumValN(TargetLibraryInfoImpl::ArmPL, "ArmPL", "Arm Performance Libraries"), clEnumValN(TargetLibraryInfoImpl::AMDLIBM, "AMDLIBM", "AMD vector math library")) ) | static |
---|