1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00

Restore documentation that 'svn update' unexpectedly yanked out from under me.

llvm-svn: 374045
This commit is contained in:
Kevin P. Neal 2019-10-08 13:38:42 +00:00
parent 2a094bb4d1
commit fcf18f9190
2 changed files with 260 additions and 0 deletions

View File

@ -0,0 +1,54 @@
Programming Documentation
=========================
For developers of applications which use LLVM as a library.
.. toctree::
:hidden:
Atomics
CommandLine
ExtendingLLVM
HowToSetUpLLVMStyleRTTI
ProgrammersManual
Extensions
LibFuzzer
FuzzingLLVM
ScudoHardenedAllocator
OptBisect
GwpAsan
:doc:`Atomics`
Information about LLVM's concurrency model.
:doc:`ProgrammersManual`
Introduction to the general layout of the LLVM sourcebase, important classes
and APIs, and some tips & tricks.
:doc:`Extensions`
LLVM-specific extensions to tools and formats LLVM seeks compatibility with.
:doc:`CommandLine`
Provides information on using the command line parsing library.
:doc:`HowToSetUpLLVMStyleRTTI`
How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
class hierarchy.
:doc:`ExtendingLLVM`
Look here to see how to add instructions and intrinsics to LLVM.
:doc:`LibFuzzer`
A library for writing in-process guided fuzzers.
:doc:`FuzzingLLVM`
Information on writing and using Fuzzers to find bugs in LLVM.
:doc:`ScudoHardenedAllocator`
A library that implements a security-hardened `malloc()`.
:doc:`OptBisect`
A command line option for debugging optimization-induced failures.
:doc:`GwpAsan`
A sampled heap memory error detection toolkit designed for production use.

View File

@ -0,0 +1,206 @@
.. _index-subsystem-docs:
Subsystem Documentation
=======================
For API clients and LLVM developers.
.. toctree::
:hidden:
AliasAnalysis
MemorySSA
BitCodeFormat
BlockFrequencyTerminology
BranchWeightMetadata
Bugpoint
CodeGenerator
ExceptionHandling
AddingConstrainedIntrinsics
LinkTimeOptimization
SegmentedStacks
TableGenFundamentals
TableGen/index
DebuggingJITedCode
GoldPlugin
MarkedUpDisassembly
SystemLibrary
SupportLibrary
SourceLevelDebugging
Vectorizers
WritingAnLLVMBackend
GarbageCollection
WritingAnLLVMPass
HowToUseAttributes
NVPTXUsage
AMDGPUUsage
StackMaps
InAlloca
BigEndianNEON
CoverageMappingFormat
Statepoints
MergeFunctions
TypeMetadata
TransformMetadata
FaultMaps
Coroutines
GlobalISel
XRay
XRayExample
XRayFDRFormat
PDB/index
CFIVerify
SpeculativeLoadHardening
StackSafetyAnalysis
LoopTerminology
DependenceGraphs/index
:doc:`WritingAnLLVMPass`
Information on how to write LLVM transformations and analyses.
:doc:`WritingAnLLVMBackend`
Information on how to write LLVM backends for machine targets.
:doc:`CodeGenerator`
The design and implementation of the LLVM code generator. Useful if you are
working on retargetting LLVM to a new architecture, designing a new codegen
pass, or enhancing existing components.
:doc:`TableGen <TableGen/index>`
Describes the TableGen tool, which is used heavily by the LLVM code
generator.
:doc:`AliasAnalysis`
Information on how to write a new alias analysis implementation or how to
use existing analyses.
:doc:`MemorySSA`
Information about the MemorySSA utility in LLVM, as well as how to use it.
:doc:`GarbageCollection`
The interfaces source-language compilers should use for compiling GC'd
programs.
:doc:`Source Level Debugging with LLVM <SourceLevelDebugging>`
This document describes the design and philosophy behind the LLVM
source-level debugger.
:doc:`Vectorizers`
This document describes the current status of vectorization in LLVM.
:doc:`ExceptionHandling`
This document describes the design and implementation of exception handling
in LLVM.
:doc:`AddingConstrainedIntrinsics`
Gives the steps necessary when adding a new constrained math intrinsic
to LLVM.
:doc:`Bugpoint`
Automatic bug finder and test-case reducer description and usage
information.
:doc:`BitCodeFormat`
This describes the file format and encoding used for LLVM "bc" files.
:doc:`Support Library <SupportLibrary>`
This document describes the LLVM Support Library (``lib/Support``) and
how to keep LLVM source code portable
:doc:`LinkTimeOptimization`
This document describes the interface between LLVM intermodular optimizer
and the linker and its design
:doc:`GoldPlugin`
How to build your programs with link-time optimization on Linux.
:doc:`DebuggingJITedCode`
How to debug JITed code with GDB.
:doc:`MCJITDesignAndImplementation`
Describes the inner workings of MCJIT execution engine.
:doc:`ORCv2`
Describes the design and implementation of the ORC APIs, including some
usage examples, and a guide for users transitioning from ORCv1 to ORCv2.
:doc:`BranchWeightMetadata`
Provides information about Branch Prediction Information.
:doc:`BlockFrequencyTerminology`
Provides information about terminology used in the ``BlockFrequencyInfo``
analysis pass.
:doc:`SegmentedStacks`
This document describes segmented stacks and how they are used in LLVM.
:doc:`MarkedUpDisassembly`
This document describes the optional rich disassembly output syntax.
:doc:`HowToUseAttributes`
Answers some questions about the new Attributes infrastructure.
:doc:`NVPTXUsage`
This document describes using the NVPTX backend to compile GPU kernels.
:doc:`AMDGPUUsage`
This document describes using the AMDGPU backend to compile GPU kernels.
:doc:`StackMaps`
LLVM support for mapping instruction addresses to the location of
values and allowing code to be patched.
:doc:`BigEndianNEON`
LLVM's support for generating NEON instructions on big endian ARM targets is
somewhat nonintuitive. This document explains the implementation and rationale.
:doc:`CoverageMappingFormat`
This describes the format and encoding used for LLVMs code coverage mapping.
:doc:`Statepoints`
This describes a set of experimental extensions for garbage
collection support.
:doc:`MergeFunctions`
Describes functions merging optimization.
:doc:`InAlloca`
Description of the ``inalloca`` argument attribute.
:doc:`FaultMaps`
LLVM support for folding control flow into faulting machine instructions.
:doc:`CompileCudaWithLLVM`
LLVM support for CUDA.
:doc:`Coroutines`
LLVM support for coroutines.
:doc:`GlobalISel`
This describes the prototype instruction selection replacement, GlobalISel.
:doc:`XRay`
High-level documentation of how to use XRay in LLVM.
:doc:`XRayExample`
An example of how to debug an application with XRay.
:doc:`The Microsoft PDB File Format <PDB/index>`
A detailed description of the Microsoft PDB (Program Database) file format.
:doc:`CFIVerify`
A description of the verification tool for Control Flow Integrity.
:doc:`SpeculativeLoadHardening`
A description of the Speculative Load Hardening mitigation for Spectre v1.
:doc:`StackSafetyAnalysis`
This document describes the design of the stack safety analysis of local
variables.
:doc:`LoopTerminology`
A document describing Loops and associated terms as used in LLVM.
:doc:`Dependence Graphs <DependenceGraphs/index>`
A description of the design of the various dependence graphs such as
the DDG (Data Dependence Graph).