LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Classes | Typedefs | Functions | Variables
llvm::sys Namespace Reference

Namespaces

 fs
 
 locale
 
 path
 
 unicode
 
 windows
 

Classes

class  DynamicLibrary
 
class  MemoryBlock
 Memory block abstraction. More...
 
class  Memory
 An abstraction for memory operations. More...
 
class  MutexImpl
 Platform agnostic Mutex class. More...
 
class  SmartMutex
 
class  SmartScopedLock
 
class  process
 Generic base class which exposes information about an operating system process. More...
 
class  self_process
 The specific class representing the current process. More...
 
class  Process
 A collection of legacy interfaces for querying information about the current executing process. More...
 
struct  ProcessInfo
 This is the OS-specific separator for PATH like environment variables: More...
 
class  RWMutexImpl
 Platform agnostic RWMutex class. More...
 
class  SmartRWMutex
 
struct  SmartScopedReader
 ScopedReader - RAII acquisition of a reader lock. More...
 
struct  SmartScopedWriter
 ScopedWriter - RAII acquisition of a writer lock. More...
 
class  ThreadLocalImpl
 
class  ThreadLocal
 
class  TimeValue
 Provides an abstraction for a fixed point in time. More...
 
struct  UnicodeCharRange
 Represents a closed range of Unicode code points [Lower, Upper]. More...
 
class  UnicodeCharSet
 Holds a reference to an ordered array of UnicodeCharRange and allows to quickly check if a code point is contained in the set represented by this array. More...
 
class  Watchdog
 

Typedefs

typedef uint32_t cas_flag
 
typedef SmartMutex< falseMutex
 Mutex - A standard, always enforced mutex. More...
 
typedef SmartScopedLock< falseScopedLock
 
typedef SmartRWMutex< falseRWMutex
 
typedef SmartScopedReader< falseScopedReader
 
typedef SmartScopedWriter< falseScopedWriter
 

Functions

void MemoryFence ()
 
cas_flag CompareAndSwap (volatile cas_flag *ptr, cas_flag new_value, cas_flag old_value)
 
cas_flag AtomicIncrement (volatile cas_flag *ptr)
 
cas_flag AtomicDecrement (volatile cas_flag *ptr)
 
cas_flag AtomicAdd (volatile cas_flag *ptr, cas_flag val)
 
cas_flag AtomicMul (volatile cas_flag *ptr, cas_flag val)
 
cas_flag AtomicDiv (volatile cas_flag *ptr, cas_flag val)
 
bool hasDisassembler ()
 
std::string disassembleBuffer (uint8_t *start, size_t length, uint64_t pc=0)
 
std::string StrError ()
 
std::string StrError (int errnum)
 Like the no-argument version above, but uses errnum instead of errno. More...
 
static void llvm_fenv_clearexcept ()
 llvm_fenv_clearexcept - Clear the floating-point exception state. More...
 
static bool llvm_fenv_testexcept ()
 llvm_fenv_testexcept - Test if a floating-point exception was raised. More...
 
std::string getDefaultTargetTriple ()
 
std::string getProcessTriple ()
 
std::string getHostCPUName ()
 
bool getHostCPUFeatures (StringMap< bool > &Features)
 
std::string FindProgramByName (const std::string &name)
 Construct a Program by finding it by name. More...
 
error_code ChangeStdinToBinary ()
 
error_code ChangeStdoutToBinary ()
 
error_code ChangeStderrToBinary ()
 
int ExecuteAndWait (StringRef Program, const char **args, const char **env=0, const StringRef **redirects=0, unsigned secondsToWait=0, unsigned memoryLimit=0, std::string *ErrMsg=0, bool *ExecutionFailed=0)
 
ProcessInfo ExecuteNoWait (StringRef Program, const char **args, const char **env=0, const StringRef **redirects=0, unsigned memoryLimit=0, std::string *ErrMsg=0, bool *ExecutionFailed=0)
 
bool argumentsFitWithinSystemLimits (ArrayRef< const char * > Args)
 
ProcessInfo Wait (const ProcessInfo &PI, unsigned SecondsToWait, bool WaitUntilTerminates, std::string *ErrMsg=0)
 
void RunInterruptHandlers ()
 
bool RemoveFileOnSignal (StringRef Filename, std::string *ErrMsg=0)
 Remove a file if a fatal signal occurs. More...
 
void DontRemoveFileOnSignal (StringRef Filename)
 
void PrintStackTraceOnErrorSignal ()
 Print a stack trace if a fatal signal occurs. More...
 
void PrintStackTrace (FILE *)
 Print the stack trace using the given FILE object. More...
 
void AddSignalHandler (void(*FnPtr)(void *), void *Cookie)
 
void SetInterruptFunction (void(*IF)())
 Register a function to be called when ctrl-c is pressed. More...
 
uint16_t SwapByteOrder_16 (uint16_t value)
 
uint32_t SwapByteOrder_32 (uint32_t value)
 
uint64_t SwapByteOrder_64 (uint64_t value)
 
unsigned char SwapByteOrder (unsigned char C)
 
signed char SwapByteOrder (signed char C)
 
char SwapByteOrder (char C)
 
unsigned short SwapByteOrder (unsigned short C)
 
signed short SwapByteOrder (signed short C)
 
unsigned int SwapByteOrder (unsigned int C)
 
signed int SwapByteOrder (signed int C)
 
unsigned long SwapByteOrder (unsigned long C)
 
signed long SwapByteOrder (signed long C)
 
unsigned long long SwapByteOrder (unsigned long long C)
 
signed long long SwapByteOrder (signed long long C)
 
TimeValue operator+ (const TimeValue &tv1, const TimeValue &tv2)
 
TimeValue operator- (const TimeValue &tv1, const TimeValue &tv2)
 
bool operator< (uint32_t Value, UnicodeCharRange Range)
 
bool operator< (UnicodeCharRange Range, uint32_t Value)
 
bool RunningOnValgrind ()
 
void ValgrindDiscardTranslations (const void *Addr, size_t Len)
 

Variables

static const bool IsBigEndianHost = false
 
static const bool IsLittleEndianHost = !IsBigEndianHost
 

Typedef Documentation

typedef uint32_t llvm::sys::cas_flag

Definition at line 26 of file Atomic.h.

Mutex - A standard, always enforced mutex.

Definition at line 135 of file Mutex.h.

Definition at line 140 of file RWMutex.h.

Definition at line 151 of file Mutex.h.

Definition at line 155 of file RWMutex.h.

Definition at line 170 of file RWMutex.h.

Function Documentation

void llvm::sys::AddSignalHandler ( void(*)(void *)  FnPtr,
void *  Cookie 
)

AddSignalHandler - Add a function to be called when an abort/kill signal is delivered to the process. The handler can have a cookie passed to it to identify what instance of the handler it is.

Referenced by llvm::dbgs(), and RegisterCrashPrinter().

bool llvm::sys::argumentsFitWithinSystemLimits ( ArrayRef< const char * >  Args)

Return true if the given arguments fit within system-specific argument length limits.

cas_flag llvm::sys::AtomicAdd ( volatile cas_flag *  ptr,
cas_flag  val 
)
cas_flag llvm::sys::AtomicDecrement ( volatile cas_flag *  ptr)
cas_flag llvm::sys::AtomicDiv ( volatile cas_flag *  ptr,
cas_flag  val 
)
cas_flag llvm::sys::AtomicIncrement ( volatile cas_flag *  ptr)
cas_flag llvm::sys::AtomicMul ( volatile cas_flag *  ptr,
cas_flag  val 
)
error_code llvm::sys::ChangeStderrToBinary ( )
error_code llvm::sys::ChangeStdinToBinary ( )
error_code llvm::sys::ChangeStdoutToBinary ( )
cas_flag llvm::sys::CompareAndSwap ( volatile cas_flag *  ptr,
cas_flag  new_value,
cas_flag  old_value 
)
std::string llvm::sys::disassembleBuffer ( uint8_t *  start,
size_t  length,
uint64_t  pc = 0 
)

This function provides some "glue" code to call external disassembler libraries.

Definition at line 42 of file Support/Disassembler.cpp.

void llvm::sys::DontRemoveFileOnSignal ( StringRef  Filename)

This function removes a file from the list of files to be removed on signal delivery.

int llvm::sys::ExecuteAndWait ( StringRef  Program,
const char **  args,
const char **  env = 0,
const StringRef **  redirects = 0,
unsigned  secondsToWait = 0,
unsigned  memoryLimit = 0,
std::string *  ErrMsg = 0,
bool ExecutionFailed = 0 
)

This function executes the program using the arguments provided. The invoked program will inherit the stdin, stdout, and stderr file descriptors, the environment and other configuration settings of the invoking program. This function waits the program to finish.

Returns
an integer result code indicating the status of the program. A zero or positive value indicates the result code of the program. -1 indicates failure to execute -2 indicates a crash during execution or timeout
Parameters
ProgramPath of the program to be executed. It is
argspresumed this is the result of the FindProgramByName method. A vector of strings that are passed to the program. The first element should be the name of the program. The list must be terminated by a null char* entry.
envAn optional vector of strings to use for the program's environment. If not provided, the current program's environment will be used.
redirectsAn optional array of pointers to paths. If the array is null, no redirection is done. The array should have a size of at least three. The inferior process's stdin(0), stdout(1), and stderr(2) will be redirected to the corresponding paths. When an empty path is passed in, the corresponding file descriptor will be disconnected (ie, /dev/null'd) in a portable way.
secondsToWaitIf non-zero, this specifies the amount of time to wait for the child process to exit. If the time expires, the child is killed and this call returns. If zero, this function will wait until the child finishes or forever if it doesn't.
memoryLimitIf non-zero, this specifies max. amount of memory can be allocated by process. If memory usage will be higher limit, the child is killed and this call returns. If zero
  • no memory limit.
ErrMsgIf non-zero, provides a pointer to a string instance in which error messages will be returned. If the string is non-empty upon return an error occurred while invoking the program.

Definition at line 29 of file Program.cpp.

References Execute(), llvm::sys::ProcessInfo::ReturnCode, and Wait().

Referenced by ExecGraphViewer().

ProcessInfo llvm::sys::ExecuteNoWait ( StringRef  Program,
const char **  args,
const char **  env = 0,
const StringRef **  redirects = 0,
unsigned  memoryLimit = 0,
std::string *  ErrMsg = 0,
bool ExecutionFailed = 0 
)

Similar to ExecuteAndWait, but returns immediately.

Returns
The
See Also
ProcessInfo of the newly launced process.
Note
On Microsoft Windows systems, users will need to either call
See Also
Wait until the process finished execution or win32 CloseHandle() API on ProcessInfo.ProcessHandle to avoid memory leaks.

Definition at line 47 of file Program.cpp.

References Execute().

Referenced by ExecGraphViewer().

std::string llvm::sys::FindProgramByName ( const std::string &  name)

Construct a Program by finding it by name.

This static constructor (factory) will attempt to locate a program in the operating system's file system using some pre-determined set of locations to search (e.g. the PATH on Unix). Paths with slashes are returned unmodified.

Returns
A Path object initialized to the path of the program or a Path object that is empty (invalid) if the program could not be found.
std::string llvm::sys::getDefaultTargetTriple ( )

getDefaultTargetTriple() - Return the default target triple the compiler has been configured to produce code for.

The target triple is a string in the format of: CPU_TYPE-VENDOR-OPERATING_SYSTEM or CPU_TYPE-VENDOR-KERNEL-OPERATING_SYSTEM

Referenced by llvm::TargetRegistry::getClosestTargetForJIT(), and LLVMGetDefaultTargetTriple().

bool llvm::sys::getHostCPUFeatures ( StringMap< bool > &  Features)

getHostCPUFeatures - Get the LLVM names for the host CPU features. The particular format of the names are target dependent, and suitable for passing as -mattr to the target which matches the host.

Parameters
Features- A string mapping feature names to either true (if enabled) or false (if disabled). This routine makes no guarantees about exactly which features may appear in this map, except that they are all valid LLVM feature names.
Returns
- True on success.

Definition at line 719 of file Host.cpp.

std::string llvm::sys::getHostCPUName ( )

getHostCPUName - Get the LLVM name for the host CPU. The particular format of the name is target dependent, and suitable for passing as -mcpu to the target which matches the host.

Returns
- The host CPU name, or empty if the CPU could not be determined.

Definition at line 667 of file Host.cpp.

Referenced by llvm::X86_MC::createX86MCSubtargetInfo(), and llvm::SystemZSubtarget::SystemZSubtarget().

std::string llvm::sys::getProcessTriple ( )

getProcessTriple() - Return an appropriate target triple for generating code to be loaded into the current process, e.g. when using the JIT.

Definition at line 724 of file Host.cpp.

References llvm::Triple::get32BitArchVariant(), llvm::Triple::get64BitArchVariant(), llvm::Triple::isArch32Bit(), llvm::Triple::isArch64Bit(), llvm::Triple::normalize(), and llvm::Triple::str().

Referenced by llvm::EngineBuilder::selectTarget().

bool llvm::sys::hasDisassembler ( )

This function returns true, if there is possible to use some external disassembler library. False otherwise.

Definition at line 28 of file Support/Disassembler.cpp.

static void llvm::sys::llvm_fenv_clearexcept ( )
inlinestatic

llvm_fenv_clearexcept - Clear the floating-point exception state.

Definition at line 34 of file FEnv.h.

Referenced by ConstantFoldBinaryFP(), and ConstantFoldFP().

static bool llvm::sys::llvm_fenv_testexcept ( )
inlinestatic

llvm_fenv_testexcept - Test if a floating-point exception was raised.

Definition at line 42 of file FEnv.h.

Referenced by ConstantFoldBinaryFP(), and ConstantFoldFP().

void llvm::sys::MemoryFence ( )
TimeValue llvm::sys::operator+ ( const TimeValue &  tv1,
const TimeValue &  tv2 
)
inline

Adds two TimeValue objects together.

Returns
The sum of the two operands as a new TimeValue

Definition at line 371 of file TimeValue.h.

TimeValue llvm::sys::operator- ( const TimeValue &  tv1,
const TimeValue &  tv2 
)
inline

Subtracts two TimeValue objects.

Returns
The difference of the two operands as a new TimeValue

Definition at line 377 of file TimeValue.h.

bool llvm::sys::operator< ( uint32_t  Value,
UnicodeCharRange  Range 
)
inline

Definition at line 31 of file UnicodeCharRanges.h.

References llvm::sys::UnicodeCharRange::Lower.

bool llvm::sys::operator< ( UnicodeCharRange  Range,
uint32_t  Value 
)
inline

Definition at line 34 of file UnicodeCharRanges.h.

References llvm::sys::UnicodeCharRange::Upper.

void llvm::sys::PrintStackTrace ( FILE *  )

Print the stack trace using the given FILE object.

void llvm::sys::PrintStackTraceOnErrorSignal ( )

Print a stack trace if a fatal signal occurs.

When an error signal (such as SIBABRT or SIGSEGV) is delivered to the process, print a stack trace and then exit.

bool llvm::sys::RemoveFileOnSignal ( StringRef  Filename,
std::string *  ErrMsg = 0 
)

Remove a file if a fatal signal occurs.

This function registers signal handlers to ensure that if a signal gets delivered that the named file is removed.

void llvm::sys::RunInterruptHandlers ( )

This function runs all the registered interrupt handlers, including the removal of files registered by RemoveFileOnSignal.

Referenced by llvm::MCContext::FatalError(), and llvm::report_fatal_error().

bool llvm::sys::RunningOnValgrind ( )

Definition at line 47 of file Valgrind.cpp.

void llvm::sys::SetInterruptFunction ( void(*)()  IF)

Register a function to be called when ctrl-c is pressed.

This function registers a function to be called when the user "interrupts" the program (typically by pressing ctrl-c). When the user interrupts the program, the specified interrupt function is called instead of the program being killed, and the interrupt function automatically disabled. Note that interrupt functions are not allowed to call any non-reentrant functions. An null interrupt function pointer disables the current installed function. Note also that the handler may be executed on a different thread on some platforms.

std::string llvm::sys::StrError ( )

Returns a string representation of the errno value, using whatever thread-safe variant of strerror() is available. Be sure to call this immediately after the function that set errno, or errno may have been overwritten by an intervening call.

Definition at line 32 of file Errno.cpp.

Referenced by MakeErrMsg(), and llvm::_do_message::message().

std::string llvm::sys::StrError ( int  errnum)

Like the no-argument version above, but uses errnum instead of errno.

Definition at line 37 of file Errno.cpp.

References llvm::raw_ostream::flush().

unsigned char llvm::sys::SwapByteOrder ( unsigned char  C)
inline
signed char llvm::sys::SwapByteOrder ( signed char  C)
inline

Definition at line 72 of file SwapByteOrder.h.

References llvm::CallingConv::C.

char llvm::sys::SwapByteOrder ( char  C)
inline

Definition at line 73 of file SwapByteOrder.h.

References llvm::CallingConv::C.

unsigned short llvm::sys::SwapByteOrder ( unsigned short  C)
inline

Definition at line 75 of file SwapByteOrder.h.

References SwapByteOrder_16().

signed short llvm::sys::SwapByteOrder ( signed short  C)
inline

Definition at line 76 of file SwapByteOrder.h.

References SwapByteOrder_16().

unsigned int llvm::sys::SwapByteOrder ( unsigned int  C)
inline

Definition at line 78 of file SwapByteOrder.h.

References SwapByteOrder_32().

signed int llvm::sys::SwapByteOrder ( signed int  C)
inline

Definition at line 79 of file SwapByteOrder.h.

References SwapByteOrder_32().

unsigned long llvm::sys::SwapByteOrder ( unsigned long  C)
inline

Definition at line 82 of file SwapByteOrder.h.

References SwapByteOrder_32().

signed long llvm::sys::SwapByteOrder ( signed long  C)
inline

Definition at line 83 of file SwapByteOrder.h.

References SwapByteOrder_32().

unsigned long long llvm::sys::SwapByteOrder ( unsigned long long  C)
inline

Definition at line 91 of file SwapByteOrder.h.

References SwapByteOrder_64().

signed long long llvm::sys::SwapByteOrder ( signed long long  C)
inline

Definition at line 94 of file SwapByteOrder.h.

References SwapByteOrder_64().

uint16_t llvm::sys::SwapByteOrder_16 ( uint16_t  value)
inline

SwapByteOrder_16 - This function returns a byte-swapped representation of the 16-bit argument.

Definition at line 27 of file SwapByteOrder.h.

References llvm::HexagonISD::Hi, and llvm::HexagonISD::Lo.

Referenced by llvm::ByteSwap_16(), llvm::convertUTF16ToUTF8String(), and SwapByteOrder().

uint32_t llvm::sys::SwapByteOrder_32 ( uint32_t  value)
inline

SwapByteOrder_32 - This function returns a byte-swapped representation of the 32-bit argument.

Definition at line 41 of file SwapByteOrder.h.

Referenced by llvm::ByteSwap_32(), SwapByteOrder(), and SwapByteOrder_64().

uint64_t llvm::sys::SwapByteOrder_64 ( uint64_t  value)
inline

SwapByteOrder_64 - This function returns a byte-swapped representation of the 64-bit argument.

Definition at line 58 of file SwapByteOrder.h.

References llvm::HexagonISD::Hi, llvm::HexagonISD::Lo, and SwapByteOrder_32().

Referenced by llvm::ByteSwap_64(), and SwapByteOrder().

void llvm::sys::ValgrindDiscardTranslations ( const void *  Addr,
size_t  Len 
)
ProcessInfo llvm::sys::Wait ( const ProcessInfo &  PI,
unsigned  SecondsToWait,
bool  WaitUntilTerminates,
std::string *  ErrMsg = 0 
)

This function waits for the process specified by PI to finish.

Returns
A
See Also
ProcessInfo struct with Pid set to:
Note
Users of this function should always check the ReturnCode member of the
See Also
ProcessInfo returned from this function.
Parameters
PIThe child process that should be waited on.
SecondsToWaitIf non-zero, this specifies the amount of time to wait for the child process to exit. If the time expires, the child is killed and this function returns. If zero, this function will perform a non-blocking wait on the child process.
WaitUntilTerminatesIf true, ignores SecondsToWait and waits until child has terminated.
ErrMsgIf non-zero, provides a pointer to a string instance in which error messages will be returned. If the string is non-empty upon return an error occurred while invoking the program.

Referenced by ExecuteAndWait().

Variable Documentation

const bool llvm::sys::IsBigEndianHost = false
static
const bool llvm::sys::IsLittleEndianHost = !IsBigEndianHost
static