1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 11:33:24 +02:00
llvm-mirror/lib/Support
Nemanja Ivanovic 3b5ff305e9 [PowerPC] Add identification for POWER8NVL
This CPU type was not previously recognized by LLVM which led to emitting
poor (and sometimes incorrect) code in some JIT workloads on such a machine.

llvm-svn: 290961
2017-01-04 13:58:09 +00:00
..
Unix [ThinLTO] Add an API to trigger file-based API for returning objects to the linker 2016-12-14 04:56:42 +00:00
Windows Add missing includes on Windows. 2016-12-21 18:50:52 +00:00
Allocator.cpp
APFloat.cpp [ADT] APFloatBase: Prevent collapsing semPPCDoubleDouble and semBogus 2017-01-03 16:33:50 +00:00
APInt.cpp Missing includes. 2016-09-14 08:55:18 +00:00
APSInt.cpp Remove some unneeded headers and replace some headers with forward class declarations (NFC) 2016-04-16 07:51:28 +00:00
ARMBuildAttrs.cpp Use StringRef instead of raw pointers in ARMBuildAttrs (NFC) 2016-10-05 00:15:18 +00:00
ARMWinEH.cpp
Atomic.cpp Remove all of the legacy home-grown atomic operations LLVM provided 2016-06-02 17:11:11 +00:00
BlockFrequency.cpp Add - and -= operators to BlockFrequency using saturating arithmetic. 2015-10-12 18:34:00 +00:00
BranchProbability.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
CachePruning.cpp Remove TimeValue usage from llvm/Support 2016-10-24 10:59:17 +00:00
Chrono.cpp Reapply "Add Chrono.h - std::chrono support header" 2016-10-20 12:05:50 +00:00
circular_raw_ostream.cpp
CMakeLists.txt [ADT] Delete RefCountedBaseVPTR. 2016-12-29 19:59:26 +00:00
COM.cpp
CommandLine.cpp Add an assertion for cl::opt names: they can't start with '-' 2016-12-23 23:55:26 +00:00
Compression.cpp Define a dummy zlib::uncompress when zlib is not available. 2016-09-12 13:00:51 +00:00
ConvertUTF.cpp Move UTF functions into namespace llvm. 2016-09-30 00:38:45 +00:00
ConvertUTFWrapper.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
COPYRIGHT.regex
CrashRecoveryContext.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
DAGDeltaAlgorithm.cpp
DataExtractor.cpp
Debug.cpp Attempt to fix build bot after r290597 2016-12-27 10:24:58 +00:00
DeltaAlgorithm.cpp Missing includes. 2016-09-14 08:55:18 +00:00
Dwarf.cpp [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
DynamicLibrary.cpp [Support] Use HAVE_DLOPEN to guard dlopen(3) usage 2016-11-30 15:34:29 +00:00
Errno.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
Error.cpp Fix a linefeed at eof. 2016-11-29 17:32:43 +00:00
ErrorHandling.cpp [Support] Make all Errors convertible to std::error_code. 2016-03-23 23:57:28 +00:00
FileOutputBuffer.cpp Fix a real temp file leak in FileOutputBuffer 2016-09-02 01:10:53 +00:00
FileUtilities.cpp Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
FoldingSet.cpp PR30711: Fix incorrect profiling of 'long long' in FoldingSet, then use it to 2016-10-16 17:49:09 +00:00
FormattedStream.cpp
FormatVariadic.cpp [Support] Introduce llvm::formatv() function. 2016-11-11 23:57:40 +00:00
GlobPattern.cpp Move GlobPattern class from LLD to llvm/Support. 2016-12-20 23:09:09 +00:00
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 [PowerPC] Add identification for POWER8NVL 2017-01-04 13:58:09 +00:00
IntEqClasses.cpp Remove uses of builtin comma operator. 2016-02-18 22:09:30 +00:00
IntervalMap.cpp
JamCRC.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
LEB128.cpp
LineIterator.cpp
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00
Locale.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
LockFileManager.cpp Missing includes. 2016-09-14 08:55:18 +00:00
ManagedStatic.cpp [ManagedStatic] Reimplement double-checked locking with std::atomic. 2016-06-29 15:04:07 +00:00
MathExtras.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
MD5.cpp [MD5] Use write32le instead of spelling it out with shifts. 2016-11-23 11:49:28 +00:00
Memory.cpp
MemoryBuffer.cpp Add interface to compute number of physical cores on host system 2016-10-13 17:43:20 +00:00
Mutex.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
NativeFormatting.cpp [Support] Introduce llvm::formatv() function. 2016-11-11 23:57:40 +00:00
Options.cpp
Path.cpp [WebAssembly] Add llvm-objdump support for wasm file format 2016-11-30 16:49:11 +00:00
PluginLoader.cpp
PrettyStackTrace.cpp Include <cstdarg> in PrettyStackTrace.cpp, fixing the bots. 2016-12-14 19:19:53 +00:00
Process.cpp [Support] Creation of minidump after compiler crash on Windows 2016-05-04 16:56:51 +00:00
Program.cpp
RandomNumberGenerator.cpp [Support] Fix undefined behavior in RandomNumberGenerator. 2016-10-11 18:17:26 +00:00
raw_os_ostream.cpp
raw_ostream.cpp Re-commit r289184, "Support: Use a 64-bit seek in raw_fd_ostream::seek()." with a configure-time check for lseek64. 2016-12-09 05:20:43 +00:00
README.txt.system
regcclass.h
regcname.h
regcomp.c
regengine.inc
regerror.c
regex2.h
regex_impl.h
Regex.cpp [Support] - Fix possible crash in match() of llvm::Regex. 2016-09-02 08:44:46 +00:00
regexec.c
regfree.c
regstrlcpy.c
regutils.h
RWMutex.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
ScaledNumber.cpp Replace APFloatBase static fltSemantics data members with getter functions 2016-12-14 11:57:17 +00:00
ScopedPrinter.cpp [Support] Improve flexibility of binary blob formatter. 2016-11-10 20:16:45 +00:00
SearchForAddressOfSpecialSymbol.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
SHA1.cpp Fix builbots. 2016-11-23 03:58:12 +00:00
Signals.cpp Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00
SmallPtrSet.cpp [SmallPtrSet] Introduce a find primitive and rewrite count/erase in terms of it 2016-12-31 02:33:22 +00:00
SmallVector.cpp
SourceMgr.cpp Use StringRef for MemoryBuffer identifier API (NFC) 2016-10-01 16:38:28 +00:00
SpecialCaseList.cpp Use trigrams to speed up SpecialCaseList. 2016-12-01 02:54:54 +00:00
Statistic.cpp Statistic/Timer: Include timers in PrintStatisticsJSON(). 2016-11-18 19:43:24 +00:00
StringExtras.cpp
StringMap.cpp Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
StringPool.cpp
StringRef.cpp Tweak the core loop in StringRef::find to avoid calling memcmp on every 2016-12-11 07:46:21 +00:00
StringSaver.cpp Use StringRef in StringSaver API (NFC) 2016-10-05 01:32:41 +00:00
SystemUtils.cpp
TargetParser.cpp [ARM]: Add Cortex-R52 target to LLVM 2016-10-07 12:06:40 +00:00
TargetRegistry.cpp Revert "Use StringRef instead of raw pointer in TargetRegistry API (NFC)" 2016-10-01 07:08:23 +00:00
Threading.cpp Rename interface for querying physical hardware concurrency 2016-10-17 14:56:53 +00:00
ThreadLocal.cpp
ThreadPool.cpp [ThreadPool] Rollback recent changes until I figure out the breakage. 2016-11-28 09:17:12 +00:00
Timer.cpp Statistic/Timer: Include timers in PrintStatisticsJSON(). 2016-11-18 19:43:24 +00:00
ToolOutputFile.cpp
TrigramIndex.cpp Support escaping in TrigramIndex. 2016-12-02 23:30:16 +00:00
Triple.cpp Revert "[Triple] Add Facebook vendor" 2016-11-23 19:03:54 +00:00
Twine.cpp Add support for formatv to llvm::Twine. 2016-12-17 00:38:15 +00:00
Unicode.cpp
Valgrind.cpp Add a missing include of cstddef needed for size_t. 2015-10-15 19:41:54 +00:00
Watchdog.cpp
xxhash.cpp Add xxhash to llvm. 2016-09-27 15:45:57 +00:00
YAMLParser.cpp Improve error handling in YAML parsing 2016-11-28 21:38:52 +00:00
YAMLTraits.cpp Support: Add YAML I/O support for custom mappings. 2017-01-04 03:51:36 +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