#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Module.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/TargetParser/Triple.h"
#include "llvm/Analysis/TargetLibraryInfo.def"
#include "llvm/Analysis/VecFuncs.def"
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}, |
Typedefs | |
typedef std::array<FuncArgTypeID, 8 > | FuncProtoTy |
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 | |
staticcl::opt<TargetLibraryInfoImpl::VectorLibrary > | ClVectorLibrary ("vector-library", cl::Hidden,cl::desc("Vectorfunctions library"), cl::init(TargetLibraryInfoImpl::NoLibrary),cl::values(clEnumValN(TargetLibraryInfoImpl::NoLibrary, "none", "Novectorfunctions 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 MASSvector library"),clEnumValN(TargetLibraryInfoImpl::SVML, "SVML", "Intel SVML library"),clEnumValN(TargetLibraryInfoImpl::SLEEFGNUABI, "sleefgnuabi", "SIMD Libraryfor Evaluating Elementary Functions"),clEnumValN(TargetLibraryInfoImpl::ArmPL, "ArmPL", "Arm Performance Libraries"),clEnumValN(TargetLibraryInfoImpl::AMDLIBM, "AMDLIBM", "AMDvector math library"))) |
staticconstFuncProtoTy | Signatures [] |
staticconstVecDesc | VecFuncs_Accelerate [] |
staticconstVecDesc | VecFuncs_DarwinLibSystemM [] |
staticconstVecDesc | VecFuncs_LIBMVEC_X86 [] |
staticconstVecDesc | VecFuncs_MASSV [] |
staticconstVecDesc | VecFuncs_SVML [] |
staticconstVecDesc | VecFuncs_SLEEFGNUABI_VF2 [] |
staticconstVecDesc | VecFuncs_SLEEFGNUABI_VF4 [] |
staticconstVecDesc | VecFuncs_SLEEFGNUABI_VFScalable [] |
staticconstVecDesc | VecFuncs_SLEEFGNUABI_VFScalableRISCV [] |
staticconstVecDesc | VecFuncs_ArmPL [] |
constVecDesc | VecFuncs_AMDLIBM [] |
#define TLI_DEFINE_ACCELERATE_VECFUNCS |
#define TLI_DEFINE_AMDLIBM_VECFUNCS |
#define TLI_DEFINE_ARMPL_VECFUNCS |
#define TLI_DEFINE_DARWIN_LIBSYSTEM_M_VECFUNCS |
#define TLI_DEFINE_LIBMVEC_X86_VECFUNCS |
#define TLI_DEFINE_MASSV_VECFUNCS |
#define TLI_DEFINE_SIG |
#define TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS |
#define TLI_DEFINE_SLEEFGNUABI_SCALABLE_VECFUNCS_RISCV |
#define TLI_DEFINE_SLEEFGNUABI_VF2_VECFUNCS |
#define TLI_DEFINE_SLEEFGNUABI_VF4_VECFUNCS |
#define TLI_DEFINE_STRING |
#define TLI_DEFINE_SVML_VECFUNCS |
#define TLI_DEFINE_VECFUNC | ( | SCAL, | |
VEC, | |||
VF, | |||
MASK, | |||
VABI_PREFIX | |||
) | {SCAL, VEC, VF, MASK, VABI_PREFIX}, |
#define TLI_DEFINE_VECFUNC | ( | SCAL, | |
VEC, | |||
VF, | |||
MASK, | |||
VABI_PREFIX | |||
) | {SCAL, VEC, VF, MASK, VABI_PREFIX}, |
#define TLI_DEFINE_VECFUNC | ( | SCAL, | |
VEC, | |||
VF, | |||
MASK, | |||
VABI_PREFIX | |||
) | {SCAL, VEC, VF, MASK, VABI_PREFIX}, |
#define TLI_DEFINE_VECFUNC | ( | SCAL, | |
VEC, | |||
VF, | |||
MASK, | |||
VABI_PREFIX | |||
) | {SCAL, VEC, VF, MASK, VABI_PREFIX}, |
#define TLI_DEFINE_VECFUNC | ( | SCAL, | |
VEC, | |||
VF, | |||
VABI_PREFIX | |||
) | {SCAL, VEC, VF, /* MASK = */ false, VABI_PREFIX}, |
#define TLI_DEFINE_VECFUNC | ( | SCAL, | |
VEC, | |||
VF, | |||
VABI_PREFIX | |||
) | {SCAL, VEC, VF, /* MASK = */ false, VABI_PREFIX}, |
typedef std::array<FuncArgTypeID, 8>FuncProtoTy |
Definition at line83 of fileTargetLibraryInfo.cpp.
enumFuncArgTypeID :char |
Enumerator | |
---|---|
Void | |
Bool | |
Int16 | |
Int32 | |
Int | |
IntPlus | |
Long | |
IntX | |
Int64 | |
LLong | |
SizeT | |
SSizeT | |
Flt | |
Dbl | |
LDbl | |
Floating | |
Ptr | |
Struct | |
Ellip | |
Same |
Definition at line60 of fileTargetLibraryInfo.cpp.
| static |
Definition at line995 of fileTargetLibraryInfo.cpp.
ReferencesIdx,llvm::NumLibFuncs, andllvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::reserve().
Referenced byllvm::TargetLibraryInfoImpl::getLibFunc().
Definition at line1256 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctions().
Definition at line1260 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctions().
Definition at line1264 of fileTargetLibraryInfo.cpp.
ReferencesLHS.
Referenced byllvm::TargetLibraryInfoImpl::getVectorMappingInfo(),llvm::TargetLibraryInfoImpl::getWidestVF(), andllvm::TargetLibraryInfoImpl::isFunctionVectorizable().
Definition at line111 of fileTargetLibraryInfo.cpp.
Referenced byinitializeLibCalls().
Definition at line93 of fileTargetLibraryInfo.cpp.
Referencesllvm::Triple::x86.
Referenced byinitializeLibCalls().
| static |
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 line917 of fileTargetLibraryInfo.cpp.
ReferencesinitializeBase(), andinitializeLibCalls().
Referenced byllvm::OProfileWrapper::op_close_agent(),llvm::OProfileWrapper::op_major_version(),llvm::OProfileWrapper::op_minor_version(),llvm::OProfileWrapper::op_open_agent(),llvm::OProfileWrapper::op_unload_native_code(),llvm::OProfileWrapper::op_write_debug_line_info(),llvm::OProfileWrapper::op_write_native_code(), andllvm::TargetLibraryInfoImpl::TargetLibraryInfoImpl().
| static |
Definition at line164 of fileTargetLibraryInfo.cpp.
Referencesllvm::TargetLibraryInfo::initExtensionsForTriple(),llvm::TargetLibraryInfoImpl::setIntSize(),llvm::TargetLibraryInfoImpl::setShouldExtI32Param(),llvm::TargetLibraryInfoImpl::setShouldExtI32Return(),llvm::TargetLibraryInfoImpl::setShouldSignExtI32Param(), andllvm::TargetLibraryInfoImpl::setShouldSignExtI32Return().
Referenced byinitialize(), andllvm::TargetLibraryInfoImpl::TargetLibraryInfoImpl().
| static |
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 line184 of fileTargetLibraryInfo.cpp.
Referencesllvm::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, andllvm::Triple::XROS.
Referenced byinitialize().
| static |
Definition at line121 of fileTargetLibraryInfo.cpp.
Referencesllvm::CallingConv::ARM_AAPCS,llvm::CallingConv::ARM_AAPCS_VFP,llvm::CallingConv::ARM_APCS,llvm::CallingConv::C, andCC.
| static |
Definition at line1068 of fileTargetLibraryInfo.cpp.
ReferencesF,llvm::StructType::get(),llvm::PointerType::get(), andllvm::Type::getIntNTy().
Definition at line1021 of fileTargetLibraryInfo.cpp.
ReferencesBool,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, andVoid.
Definition at line983 of fileTargetLibraryInfo.cpp.
Referencesllvm::StringRef::contains(),llvm::GlobalValue::dropLLVMManglingEscape(), andllvm::StringRef::empty().
Referenced byllvm::TargetLibraryInfoImpl::getLibFunc(),llvm::TargetLibraryInfoImpl::getVectorMappingInfo(),llvm::TargetLibraryInfoImpl::getWidestVF(), andllvm::TargetLibraryInfoImpl::isFunctionVectorizable().
| static |
Referenced byinitializeLibCalls().
| static |
Definition at line85 of fileTargetLibraryInfo.cpp.
Referenced byconstructEntryMetadata(),emitEntryMD(),llvm::BalancedPartitioning::moveGain(), andtranslateMetadata().
Definition at line1276 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1344 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1336 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1282 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1288 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1294 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1306 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1313 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1320 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1328 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().
Definition at line1300 of fileTargetLibraryInfo.cpp.
Referenced byllvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib().