LLVM  8.0.1
Macros | Functions | Variables
TargetLibraryInfo.cpp File Reference
#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 dependency graph for TargetLibraryInfo.cpp:

Go to the source code of this file.

Macros

#define TLI_DEFINE_STRING
 

Functions

static bool hasSinCosPiStret (const Triple &T)
 
static void initialize (TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringRef > 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::VectorLibraryClVectorLibrary ("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::SVML, "SVML", "Intel SVML library")))
 

Macro Definition Documentation

◆ TLI_DEFINE_STRING

#define TLI_DEFINE_STRING

Function Documentation

◆ compareByScalarFnName()

static bool compareByScalarFnName ( const VecDesc LHS,
const VecDesc RHS 
)
static

◆ compareByVectorFnName()

static bool compareByVectorFnName ( const VecDesc LHS,
const VecDesc RHS 
)
static

◆ compareWithScalarFnName()

static bool compareWithScalarFnName ( const VecDesc LHS,
StringRef  S 
)
static

◆ compareWithVectorFnName()

static bool compareWithVectorFnName ( const VecDesc LHS,
StringRef  S 
)
static

◆ hasSinCosPiStret()

static bool hasSinCosPiStret ( const Triple T)
static

◆ initialize()

static void initialize ( TargetLibraryInfoImpl TLI,
const Triple T,
ArrayRef< StringRef StandardNames 
)
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 56 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::ArrayRef< T >::end(), llvm::Triple::FreeBSD, llvm::Triple::getArch(), llvm::Triple::getEnvironmentVersion(), llvm::Triple::getOS(), 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::isWatchOS(), llvm::Triple::Linux, LLVM_FALLTHROUGH, llvm::Triple::MacOSX, llvm::Triple::ppc64, llvm::Triple::ppc64le, 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::MachineSchedStrategy::doMBBSchedRegionsTopDown(), llvm::detail::IEEEFloat::IEEEFloat(), llvm::codeview::DebugChecksumsSubsectionRef::initialize(), llvm::bfi_detail::IrreducibleGraph::IrreducibleGraph(), 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().

◆ sanitizeFunctionName()

static StringRef sanitizeFunctionName ( StringRef  funcName)
static

Variable Documentation

◆ 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::SVML, "SVML", "Intel SVML library")))
static

Referenced by initialize().