LLVM
10.0.0svn
|
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/ADT/Triple.h"
#include "llvm/IR/Constants.h"
#include "llvm/Support/CommandLine.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_ACCELERATE_VECFUNCS |
#define | TLI_DEFINE_MASSV_VECFUNCS |
#define | TLI_DEFINE_SVML_VECFUNCS |
Functions | |
static bool | hasSinCosPiStret (const Triple &T) |
static bool | hasBcmp (const Triple &TT) |
static void | initialize (TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringLiteral > StandardNames) |
Initialize the set of available library functions based on the specified target triple. More... | |
static StringRef | sanitizeFunctionName (StringRef funcName) |
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) |
static bool | compareWithVectorFnName (const VecDesc &LHS, StringRef S) |
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::MASSV, "MASSV", "IBM MASS vector library"), clEnumValN(TargetLibraryInfoImpl::SVML, "SVML", "Intel SVML library"))) |
#define TLI_DEFINE_ACCELERATE_VECFUNCS |
#define TLI_DEFINE_MASSV_VECFUNCS |
#define TLI_DEFINE_STRING |
#define TLI_DEFINE_SVML_VECFUNCS |
Definition at line 1495 of file TargetLibraryInfo.cpp.
References llvm::VecDesc::ScalarFnName.
Referenced by llvm::TargetLibraryInfoImpl::addVectorizableFunctions().
Definition at line 1499 of file TargetLibraryInfo.cpp.
References llvm::VecDesc::VectorFnName.
Referenced by llvm::TargetLibraryInfoImpl::addVectorizableFunctions().
Definition at line 1503 of file TargetLibraryInfo.cpp.
References llvm::VecDesc::ScalarFnName.
Referenced by llvm::TargetLibraryInfoImpl::getVectorizedFunction(), and llvm::TargetLibraryInfoImpl::isFunctionVectorizable().
Definition at line 1507 of file TargetLibraryInfo.cpp.
References llvm::VecDesc::VectorFnName.
Referenced by llvm::TargetLibraryInfoImpl::getScalarizedFunction().
Definition at line 55 of file TargetLibraryInfo.cpp.
References llvm::Triple::isGNUEnvironment(), llvm::Triple::isMusl(), llvm::Triple::isOSFreeBSD(), llvm::Triple::isOSLinux(), and llvm::Triple::isOSSolaris().
Referenced by initialize().
Definition at line 37 of file TargetLibraryInfo.cpp.
References llvm::Triple::getArch(), llvm::Triple::isiOS(), llvm::Triple::isMacOSX(), llvm::Triple::isMacOSXVersionLT(), llvm::Triple::isOSDarwin(), llvm::Triple::isOSVersionLT(), and llvm::Triple::x86.
Referenced by initialize().
|
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 line 68 of file TargetLibraryInfo.cpp.
References llvm::Triple::aarch64, llvm::TargetLibraryInfoImpl::addVectorizableFunctionsFromVecLib(), llvm::Triple::amdgcn, llvm::Triple::arm, assert(), llvm::ArrayRef< T >::begin(), ClVectorLibrary, llvm::Triple::Darwin, llvm::TargetLibraryInfoImpl::disableAllFunctions(), llvm::Triple::Emscripten, llvm::ArrayRef< T >::end(), llvm::Triple::FreeBSD, llvm::Triple::getArch(), llvm::Triple::getEnvironmentVersion(), llvm::Triple::getOS(), hasBcmp(), hasSinCosPiStret(), llvm::Triple::IOS, llvm::Triple::isAndroid(), llvm::Triple::isAndroidVersionLT(), llvm::Triple::isGNUEnvironment(), llvm::Triple::isiOS(), llvm::Triple::isKnownWindowsMSVCEnvironment(), llvm::Triple::isMacOSX(), llvm::Triple::isMacOSXVersionLT(), llvm::Triple::isMIPS(), llvm::Triple::isMusl(), llvm::Triple::isNVPTX(), llvm::Triple::isOSCygMing(), llvm::Triple::isOSFreeBSD(), llvm::Triple::isOSLinux(), llvm::Triple::isOSVersionLT(), llvm::Triple::isOSWindows(), llvm::Triple::isPPC64(), llvm::Triple::isWatchOS(), llvm::Triple::Linux, LLVM_FALLTHROUGH, llvm::Triple::MacOSX, llvm::Triple::r600, llvm::TargetLibraryInfoImpl::setAvailable(), llvm::TargetLibraryInfoImpl::setAvailableWithName(), llvm::TargetLibraryInfoImpl::setShouldExtI32Param(), llvm::TargetLibraryInfoImpl::setShouldExtI32Return(), llvm::TargetLibraryInfoImpl::setShouldSignExtI32Param(), llvm::TargetLibraryInfoImpl::setUnavailable(), llvm::Triple::sparcv9, llvm::Triple::systemz, llvm::Triple::tce, llvm::Triple::TvOS, llvm::Triple::WatchOS, llvm::Triple::x86, llvm::Triple::x86_64, and llvm::Triple::xcore.
Referenced by llvm::codeview::DebugCrossModuleImportsSubsectionRef::classof(), llvm::codeview::DebugInlineeLinesSubsectionRef::classof(), llvm::codeview::DebugLinesSubsectionRef::classof(), computeBranchTargetAndInversion(), llvm::ConvergingVLIWScheduler::ConvergingVLIWScheduler(), llvm::createThreadSanitizerLegacyPassPass(), llvm::MachineSchedStrategy::doMBBSchedRegionsTopDown(), llvm::IRPosition::getAttrs(), llvm::detail::IEEEFloat::IEEEFloat(), llvm::codeview::DebugChecksumsSubsectionRef::initialize(), llvm::codeview::DebugInlineeLinesSubsectionRef::initialize(), llvm::bfi_detail::IrreducibleGraph::IrreducibleGraph(), isAtomic(), llvm::FastISel::isCommutativeIntrinsic(), llvm::detail::IEEEFloat::isNegZero(), isRegUsedByPhiNodes(), isUnconditionalBranch(), llvm::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(), llvm::detail::IEEEFloat::operator=(), llvm::OProfileWrapper::OProfileWrapper(), llvm::GCNIterativeScheduler::OverrideLegacyStrategy::restoreOrder(), llvm::GenericScheduler::shouldTrackLaneMasks(), llvm::PostGenericScheduler::shouldTrackPressure(), llvm::TargetLibraryInfoImpl::TargetLibraryInfoImpl(), llvm::codeview::DebugChecksumsSubsectionRef::valid(), and llvm::writeSignedDecimal().
Definition at line 607 of file TargetLibraryInfo.cpp.
References llvm::GlobalValue::dropLLVMManglingEscape(), llvm::StringRef::empty(), llvm::StringRef::find(), and llvm::StringRef::npos.
Referenced by llvm::TargetLibraryInfoImpl::getLibFunc(), llvm::TargetLibraryInfoImpl::getScalarizedFunction(), llvm::TargetLibraryInfoImpl::getVectorizedFunction(), and llvm::TargetLibraryInfoImpl::isFunctionVectorizable().
|
static |
Referenced by initialize().