LLVM: lib/Analysis/TargetLibraryInfo.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define GET_TARGET_LIBRARY_INFO_STRING_TABLE
#define GET_TARGET_LIBRARY_INFO_SIGNATURE_TABLE
#define TLI_DEFINE_ACCELERATE_VECFUNCS
#define TLI_DEFINE_DARWIN_LIBSYSTEM_M_VECFUNCS
#define TLI_DEFINE_LIBMVEC_X86_VECFUNCS
#define TLI_DEFINE_LIBMVEC_AARCH64_VECFUNCS
#define TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX, CC)
#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)
#define TLI_DEFINE_SLEEFGNUABI_VF4_VECFUNCS
#define TLI_DEFINE_VECFUNC(SCAL, VEC, VF, VABI_PREFIX)
#define TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS
#define TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX)
#define TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS_RISCV
#define TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX)
#define TLI_DEFINE_ARMPL_VECFUNCS
#define TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX, CC)
#define TLI_DEFINE_AMDLIBM_VECFUNCS
#define TLI_DEFINE_VECFUNC(SCAL, VEC, VF, MASK, VABI_PREFIX)
Functions
static bool hasSinCosPiStret (const Triple &T)
static bool hasBcmp (const Triple &TT)
static bool isCallingConvCCompatible (CallingConv::ID CC, const Triple &TT, FunctionType *FuncTy)
static void initializeBase (TargetLibraryInfoImpl &TLI, const Triple &T)
static void initializeLibCalls (TargetLibraryInfoImpl &TLI, const Triple &T, const llvm::StringTable &StandardNames, VectorLibrary VecLib)
Initialize the set of available library functions based on the specified target triple.
static void initialize (TargetLibraryInfoImpl &TLI, const Triple &T, const llvm::StringTable &StandardNames, VectorLibrary VecLib)
Initialize the set of available library functions based on the specified target triple.
static StringRef sanitizeFunctionName (StringRef funcName)
static DenseMap< StringRef, LibFunc > buildIndexMap (const llvm::StringTable &StandardNames)
static bool matchType (FuncArgTypeID ArgTy, const Type *Ty, unsigned IntBits, unsigned SizeTBits)
static bool isValidProtoForSizeReturningNew (const FunctionType &FTy, LibFunc F, const Module &M, int SizeTSizeBits)
static bool compareByScalarFnName (const VecDesc &LHS, const VecDesc &RHS)
static bool compareByVectorFnName (const VecDesc &LHS, const VecDesc &RHS)
static bool compareWithScalarFnName (const VecDesc &LHS, StringRef S)
Variables
static const VecDesc VecFuncs_Accelerate []
static const VecDesc VecFuncs_DarwinLibSystemM []
static const VecDesc VecFuncs_LIBMVEC_X86 []
static const VecDesc VecFuncs_LIBMVEC_AARCH64 []
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 []

GET_TARGET_LIBRARY_INFO_SIGNATURE_TABLE

#define GET_TARGET_LIBRARY_INFO_SIGNATURE_TABLE

GET_TARGET_LIBRARY_INFO_STRING_TABLE

#define GET_TARGET_LIBRARY_INFO_STRING_TABLE

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_AARCH64_VECFUNCS

#define TLI_DEFINE_LIBMVEC_AARCH64_VECFUNCS

TLI_DEFINE_LIBMVEC_X86_VECFUNCS

#define TLI_DEFINE_LIBMVEC_X86_VECFUNCS

TLI_DEFINE_MASSV_VECFUNCS

#define TLI_DEFINE_MASSV_VECFUNCS

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_SVML_VECFUNCS

#define TLI_DEFINE_SVML_VECFUNCS

TLI_DEFINE_VECFUNC [1/7]

#define TLI_DEFINE_VECFUNC ( SCAL,
VEC,
VF,
MASK,
VABI_PREFIX )

Value:

{SCAL, VEC, VF, MASK, VABI_PREFIX, std::nullopt},

TLI_DEFINE_VECFUNC [2/7]

#define TLI_DEFINE_VECFUNC ( SCAL,
VEC,
VF,
MASK,
VABI_PREFIX )

Value:

{SCAL, VEC, VF, MASK, VABI_PREFIX, std::nullopt},

TLI_DEFINE_VECFUNC [3/7]

#define TLI_DEFINE_VECFUNC ( SCAL,
VEC,
VF,
MASK,
VABI_PREFIX )

Value:

{SCAL, VEC, VF, MASK, VABI_PREFIX, std::nullopt},

TLI_DEFINE_VECFUNC [4/7]

#define TLI_DEFINE_VECFUNC ( SCAL,
VEC,
VF,
MASK,
VABI_PREFIX,
CC )

Value:

{SCAL, VEC, VF, MASK, VABI_PREFIX, CC},

TLI_DEFINE_VECFUNC [5/7]

#define TLI_DEFINE_VECFUNC ( SCAL,
VEC,
VF,
MASK,
VABI_PREFIX,
CC )

Value:

{SCAL, VEC, VF, MASK, VABI_PREFIX, CC},

TLI_DEFINE_VECFUNC [6/7]

#define TLI_DEFINE_VECFUNC ( SCAL,
VEC,
VF,
VABI_PREFIX )

Value:

{SCAL, VEC, VF, false, VABI_PREFIX, std::nullopt},

TLI_DEFINE_VECFUNC [7/7]

#define TLI_DEFINE_VECFUNC ( SCAL,
VEC,
VF,
VABI_PREFIX )

Value:

{SCAL, VEC, VF, false, VABI_PREFIX, std::nullopt},

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 129 of file TargetLibraryInfo.cpp.

References llvm::Triple::aarch64, llvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib(), llvm::Triple::arm, 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(), T, llvm::Triple::tce, llvm::Triple::TvOS, llvm::Triple::WatchOS, llvm::Triple::x86, llvm::Triple::x86_64, llvm::Triple::xcore, and llvm::Triple::XROS.

Referenced by initialize().

isCallingConvCCompatible()

isValidProtoForSizeReturningNew()

matchType()

sanitizeFunctionName()

VecFuncs_Accelerate

VecFuncs_AMDLIBM

VecFuncs_ArmPL

VecFuncs_DarwinLibSystemM

VecFuncs_LIBMVEC_AARCH64

VecFuncs_LIBMVEC_X86

VecFuncs_MASSV

VecFuncs_SLEEFGNUABI_VF2

VecFuncs_SLEEFGNUABI_VF4

VecFuncs_SLEEFGNUABI_VFScalable

VecFuncs_SLEEFGNUABI_VFScalableRISCV

VecFuncs_SVML