1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/lib/Support
2015-10-06 23:24:35 +00:00
..
Unix Fix Clang-tidy modernize-use-nullptr warnings in source directories and generated files; other minor cleanups. 2015-10-06 23:24:35 +00:00
Windows Add .exe check to Execute to fix clang-modernize tests broken in r247358 2015-09-10 23:59:45 +00:00
Allocator.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
APFloat.cpp Remove roundingMode argument in APFloat::mod 2015-09-21 19:29:25 +00:00
APInt.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
APSInt.cpp ADT: Add a string APSInt constructor. 2015-06-23 18:22:10 +00:00
ARMBuildAttrs.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ARMWinEH.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Atomic.cpp
BlockFrequency.cpp Fixed a bug that BranchProbability is not defined in BlockFrequency.cpp. NFC. 2015-09-11 02:47:30 +00:00
BranchProbability.cpp [BranchProbability] Manually round the floating point output. 2015-09-26 10:09:36 +00:00
circular_raw_ostream.cpp
CMakeLists.txt Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
COM.cpp
CommandLine.cpp There is only one saver of strings. 2015-08-13 01:07:02 +00:00
Compression.cpp
ConvertUTF.c
ConvertUTFWrapper.cpp
COPYRIGHT.regex
CrashRecoveryContext.cpp Add a comment. 2015-08-07 17:32:06 +00:00
DAGDeltaAlgorithm.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DataExtractor.cpp
DataStream.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Debug.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DeltaAlgorithm.cpp
Dwarf.cpp Debug info: Add dwarf backend support for DIModule. 2015-06-30 02:13:04 +00:00
DynamicLibrary.cpp Add more wrappers for symbol APIs to the C API. 2015-06-09 15:57:30 +00:00
Errno.cpp
ErrorHandling.cpp
FileOutputBuffer.cpp Remove temporary file on signal. 2015-09-18 15:17:53 +00:00
FileUtilities.cpp
FoldingSet.cpp [ADT] Teach FoldingSet to be movable. 2015-08-16 23:17:27 +00:00
FormattedStream.cpp
GraphWriter.cpp [Support] Reapply r245289 "Always wait for GraphViz before opening the viewer" 2015-09-18 10:56:30 +00:00
Hashing.cpp
Host.cpp [ADT] Switch a bunch of places in LLVM that were doing single-character 2015-09-10 06:12:31 +00:00
IntEqClasses.cpp
IntervalMap.cpp
IntrusiveRefCntPtr.cpp
JamCRC.cpp [MC] Add support for generating COFF CRCs 2015-09-01 21:23:58 +00:00
LEB128.cpp
LineIterator.cpp
LLVMBuild.txt
Locale.cpp Add #include llvm-config.h to Locale.cpp which depends on LLVM_ON_WIN32. 2015-09-11 13:22:47 +00:00
LockFileManager.cpp Reapply "Use gethostuuid() on Mac to identify hosts for LockFileManager" 2015-06-29 22:16:39 +00:00
Makefile
ManagedStatic.cpp Support: Clean up TSan annotations. 2015-08-18 22:31:24 +00:00
MathExtras.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MD5.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Memory.cpp
MemoryBuffer.cpp [UB] Fix yet another use of memcpy with a null pointer argument. I think 2015-08-04 01:00:56 +00:00
MemoryObject.cpp
Mutex.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Options.cpp
Path.cpp [Support] Add a version of fs::make_absolute with a custom CWD. 2015-10-05 13:02:43 +00:00
PluginLoader.cpp
PrettyStackTrace.cpp Add functions to save and restore the PrettyStackTrace state. 2015-08-07 17:47:03 +00:00
Process.cpp
Program.cpp
RandomNumberGenerator.cpp
raw_os_ostream.cpp
raw_ostream.cpp Fix GCC warning: extra `;' [-Wpedantic]. 2015-08-13 18:10:19 +00:00
README.txt.system
regcclass.h
regcname.h
regcomp.c
regengine.inc
regerror.c
regex2.h
regex_impl.h
Regex.cpp
regexec.c
regfree.c
regstrlcpy.c
regutils.h
RWMutex.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ScaledNumber.cpp
SearchForAddressOfSpecialSymbol.cpp
Signals.cpp Rename RunCallBacksToRun to llvm::sys::RunSignalHandlers 2015-07-22 21:11:17 +00:00
SmallPtrSet.cpp
SmallVector.cpp [ADT] Assert that SmallVectorBase::grow_pod() successfully reallocates memory. 2015-06-09 09:47:46 +00:00
SourceMgr.cpp MIR Serialization: Connect the machine function analysis pass to the MIR parser. 2015-06-15 20:30:22 +00:00
SpecialCaseList.cpp
Statistic.cpp Support: Clean up TSan annotations. 2015-08-18 22:31:24 +00:00
StreamingMemoryObject.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
StringExtras.cpp
StringMap.cpp
StringPool.cpp
StringRef.cpp [ADT] Rewrite the StringRef::find implementation to be simpler, clearer, 2015-09-10 11:17:49 +00:00
StringSaver.cpp There is only one saver of strings. 2015-08-13 01:07:02 +00:00
SystemUtils.cpp
TargetParser.cpp [ARM] Handle +t2dsp feature as an ArchExtKind in ARMTargetParser.def 2015-09-24 17:31:16 +00:00
TargetRegistry.cpp
Threading.cpp
ThreadLocal.cpp
Timer.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
TimeValue.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ToolOutputFile.cpp
Triple.cpp [ADT] Micro-optimize the Triple constructor by doing a single split and 2015-09-10 07:51:43 +00:00
Twine.cpp Reformat. 2015-05-25 01:43:34 +00:00
Unicode.cpp
Valgrind.cpp Support: Clean up TSan annotations. 2015-08-18 22:31:24 +00:00
Watchdog.cpp
YAMLParser.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
YAMLTraits.cpp [YAMLTraits] Use StringRef::copy. No functionality change. 2015-08-05 14:16:38 +00:00

Design Of lib/System
====================

The software in this directory is designed to completely shield LLVM from any
and all operating system specific functionality. It is not intended to be a
complete operating system wrapper (such as ACE), but only to provide the
functionality necessary to support LLVM.

The software located here, of necessity, has very specific and stringent design
rules. Violation of these rules means that cracks in the shield could form and
the primary goal of the library is defeated. By consistently using this library,
LLVM becomes more easily ported to new platforms since the only thing requiring
porting is this library.

Complete documentation for the library can be found in the file:
  llvm/docs/SystemLibrary.html
or at this URL:
  http://llvm.org/docs/SystemLibrary.html

While we recommend that you read the more detailed documentation, for the
impatient, here's a high level summary of the library's requirements.

 1. No system header files are to be exposed through the interface.
 2. Std C++ and Std C header files are okay to be exposed through the interface.
 3. No exposed system-specific functions.
 4. No exposed system-specific data.
 5. Data in lib/System classes must use only simple C++ intrinsic types.
 6. Errors are handled by returning "true" and setting an optional std::string
 7. Library must not throw any exceptions, period.
 8. Interface functions must not have throw() specifications.
 9. No duplicate function impementations are permitted within an operating
    system class.

To accomplish these requirements, the library has numerous design criteria that
must be satisfied. Here's a high level summary of the library's design criteria:

 1. No unused functionality (only what LLVM needs)
 2. High-Level Interfaces
 3. Use Opaque Classes
 4. Common Implementations
 5. Multiple Implementations
 6. Minimize Memory Allocation
 7. No Virtual Methods