--- /dev/null
+Getting Started/Tutorials\r
+=========================\r
+\r
+For those new to the LLVM system.\r
+\r
+.. toctree::\r
+ :hidden:\r
+\r
+ GettingStarted\r
+ GettingStartedVS\r
+ Frontend/PerformanceTips\r
+ tutorial/index\r
+\r
+:doc:`GettingStarted`\r
+ Discusses how to get up and running quickly with the LLVM infrastructure.\r
+ Everything from unpacking and compilation of the distribution to execution\r
+ of some tools.\r
+\r
+:doc:`tutorial/index`\r
+ Tutorials about using LLVM. Includes a tutorial about making a custom\r
+ language with LLVM.\r
+\r
+:doc:`GettingStartedVS`\r
+ An addendum to the main Getting Started guide for those using Visual Studio\r
+ on Windows.\r
+\r
+:doc:`Frontend/PerformanceTips`\r
+ A collection of tips for frontend authors on how to generate IR\r
+ which LLVM is able to effectively optimize.
\ No newline at end of file
\r
Atomics\r
CommandLine\r
- CommandGuide/index\r
ExtendingLLVM\r
HowToSetUpLLVMStyleRTTI\r
ProgrammersManual\r
Extensions\r
- LibFuzzer\r
- FuzzingLLVM\r
ScudoHardenedAllocator\r
OptBisect\r
GwpAsan\r
:doc:`GwpAsan`\r
A sampled heap memory error detection toolkit designed for production use.\r
\r
-============\r
-Command Line\r
-============\r
-\r
:doc:`CommandLine`\r
Provides information on using the command line parsing library.\r
\r
:doc:`OptBisect`\r
- A command line option for debugging optimization-induced failures.\r
-\r
-:doc:`LLVM Command Guide <CommandGuide/index>`\r
- A reference manual for the LLVM command line utilities ("man" pages for LLVM\r
- tools).\r
-\r
-=========\r
-LibFuzzer\r
-=========\r
-\r
-:doc:`LibFuzzer`\r
- A library for writing in-process guided fuzzers.\r
-\r
-:doc:`FuzzingLLVM`\r
- Information on writing and using Fuzzers to find bugs in LLVM.
\ No newline at end of file
+ A command line option for debugging optimization-induced failures.
\ No newline at end of file
\r
LLVM and API reference documentation.\r
\r
+.. contents::\r
+ :local:\r
+\r
.. toctree::\r
:hidden:\r
\r
- LangRef\r
- TestingGuide\r
+ Bugpoint\r
+ CommandGuide/index\r
CompilerWriterInfo\r
+ FuzzingLLVM\r
+ GarbageCollection\r
+ GetElementPtr\r
+ LangRef\r
+ LibFuzzer\r
MIRLangRef\r
- NVPTXUsage\r
- AMDGPUUsage\r
+ PDB/index\r
+ Statepoints\r
+ TestingGuide\r
+ YamlIO\r
+\r
+API Reference\r
+-------------\r
+\r
+`Doxygen generated documentation <http://llvm.org/doxygen/>`_\r
+ (`classes <http://llvm.org/doxygen/inherits.html>`_)\r
+\r
+`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_\r
\r
-==============\r
LLVM Reference\r
-==============\r
+--------------\r
\r
:doc:`LLVM Language Reference Manual <LangRef>`\r
Defines the LLVM intermediate representation and the assembly form of the\r
different nodes.\r
\r
-:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`\r
- A reference manual for using the LLVM testing infrastructure.\r
-\r
:doc:`CompilerWriterInfo`\r
A list of helpful links for compiler writers.\r
\r
A reference manual for the MIR serialization format, which is used to test\r
LLVM's code generation passes.\r
\r
-:doc:`NVPTXUsage`\r
- This document describes using the NVPTX backend to compile GPU kernels.\r
+:doc:`YamlIO`\r
+ A reference guide for using LLVM's YAML I/O library.\r
\r
-:doc:`AMDGPUUsage`\r
- This document describes using the AMDGPU backend to compile GPU kernels.\r
+:doc:`GetElementPtr`\r
+ Answers to some very frequent questions about LLVM's most frequently\r
+ misunderstood instruction.\r
\r
-=============\r
-API Reference\r
-=============\r
+======================\r
+Command Line Utilities\r
+======================\r
\r
-`Doxygen generated documentation <http://llvm.org/doxygen/>`_\r
- (`classes <http://llvm.org/doxygen/inherits.html>`_)\r
+:doc:`LLVM Command Guide <CommandGuide/index>`\r
+ A reference manual for the LLVM command line utilities ("man" pages for LLVM\r
+ tools).\r
\r
-`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_\r
+:doc:`Bugpoint`\r
+ Automatic bug finder and test-case reducer description and usage\r
+ information.\r
+\r
+:doc:`The Microsoft PDB File Format <PDB/index>`\r
+ A detailed description of the Microsoft PDB (Program Database) file format.\r
+\r
+==================\r
+Garbage Collection\r
+==================\r
+\r
+:doc:`GarbageCollection`\r
+ The interfaces source-language compilers should use for compiling GC'd\r
+ programs.\r
+\r
+:doc:`Statepoints`\r
+ This describes a set of experimental extensions for garbage\r
+ collection support.\r
+\r
+=========\r
+LibFuzzer\r
+=========\r
+\r
+:doc:`LibFuzzer`\r
+ A library for writing in-process guided fuzzers.\r
+\r
+:doc:`FuzzingLLVM`\r
+ Information on writing and using Fuzzers to find bugs in LLVM.\r
+\r
+=======\r
+Testing\r
+=======\r
+\r
+:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`\r
+ A reference manual for using the LLVM testing infrastructure.\r
+\r
+:doc:`TestSuiteGuide`\r
+ Describes how to compile and run the test-suite benchmarks.
\ No newline at end of file
BitCodeFormat\r
BlockFrequencyTerminology\r
BranchWeightMetadata\r
- Bugpoint\r
CodeGenerator\r
ExceptionHandling\r
AddingConstrainedIntrinsics\r
LinkTimeOptimization\r
SegmentedStacks\r
TableGenFundamentals\r
- TableGen/index\r
DebuggingJITedCode\r
GoldPlugin\r
MarkedUpDisassembly\r
SupportLibrary\r
SourceLevelDebugging\r
Vectorizers\r
- WritingAnLLVMBackend\r
- GarbageCollection\r
- WritingAnLLVMPass\r
HowToUseAttributes\r
StackMaps\r
InAlloca\r
BigEndianNEON\r
CoverageMappingFormat\r
- Statepoints\r
MergeFunctions\r
TypeMetadata\r
TransformMetadata\r
XRay\r
XRayExample\r
XRayFDRFormat\r
- PDB/index\r
CFIVerify\r
SpeculativeLoadHardening\r
StackSafetyAnalysis\r
LoopTerminology\r
DependenceGraphs/index\r
\r
-:doc:`WritingAnLLVMPass`\r
- Information on how to write LLVM transformations and analyses.\r
-\r
-:doc:`WritingAnLLVMBackend`\r
- Information on how to write LLVM backends for machine targets.\r
-\r
-:doc:`CodeGenerator`\r
- The design and implementation of the LLVM code generator. Useful if you are\r
- working on retargetting LLVM to a new architecture, designing a new codegen\r
- pass, or enhancing existing components.\r
-\r
-:doc:`TableGen <TableGen/index>`\r
- Describes the TableGen tool, which is used heavily by the LLVM code\r
- generator.\r
-\r
:doc:`AliasAnalysis`\r
Information on how to write a new alias analysis implementation or how to\r
use existing analyses.\r
Gives the steps necessary when adding a new constrained math intrinsic\r
to LLVM.\r
\r
-:doc:`Bugpoint`\r
- Automatic bug finder and test-case reducer description and usage\r
- information.\r
-\r
:doc:`BitCodeFormat`\r
This describes the file format and encoding used for LLVM "bc" files.\r
\r
:doc:`XRayExample`\r
An example of how to debug an application with XRay.\r
\r
-:doc:`The Microsoft PDB File Format <PDB/index>`\r
- A detailed description of the Microsoft PDB (Program Database) file format.\r
-\r
:doc:`CFIVerify`\r
A description of the verification tool for Control Flow Integrity.\r
\r
This document describes the design of the stack safety analysis of local\r
variables.\r
\r
-:doc:`LoopTerminology`\r
- A document describing Loops and associated terms as used in LLVM.\r
-\r
:doc:`Dependence Graphs <DependenceGraphs/index>`\r
A description of the design of the various dependence graphs such as\r
- the DDG (Data Dependence Graph).\r
-\r
-==================\r
-Garbage Collection\r
-==================\r
-\r
-:doc:`GarbageCollection`\r
- The interfaces source-language compilers should use for compiling GC'd\r
- programs.\r
-\r
-:doc:`Statepoints`\r
- This describes a set of experimental extensions for garbage\r
- collection support.\r
+ the DDG (Data Dependence Graph).
\ No newline at end of file
User Guides\r
===========\r
\r
-For those new to the LLVM system.\r
-\r
NOTE: If you are a user who is only interested in using an LLVM-based compiler,\r
you should look into `Clang <http://clang.llvm.org>`_ instead. The\r
documentation here is intended for users who have a need to work with the\r
intermediate LLVM representation.\r
\r
+.. contents::\r
+ :local:\r
+\r
.. toctree::\r
:hidden:\r
\r
MarkdownQuickstartTemplate\r
Phabricator\r
Passes\r
- YamlIO\r
- GetElementPtr\r
- Frontend/PerformanceTips\r
MCJITDesignAndImplementation\r
ORCv2\r
CodeOfConduct\r
Docker\r
BuildingADistribution\r
Remarks\r
+ WritingAnLLVMPass\r
+ WritingAnLLVMBackend\r
+ TableGen/index\r
+ NVPTXUsage\r
+ AMDGPUUsage\r
\r
-Building, Packaging, and Distributing LLVM\r
-------------------------------------------\r
-\r
-How to build, package, and distribute LLVM.\r
-\r
-=====\r
-CMake\r
-=====\r
-\r
-:doc:`BuildingADistribution`\r
- A best-practices guide for using LLVM's CMake build system to package and\r
- distribute LLVM-based tools.\r
-\r
-:doc:`CMake`\r
- An addendum to the main Getting Started guide for those using the `CMake\r
- build system <http://www.cmake.org>`_.\r
-\r
-=====\r
Clang\r
-=====\r
+-----\r
\r
:doc:`HowToBuildOnARM`\r
Notes on building and testing LLVM/Clang on ARM.\r
\r
.. __: http://clang.llvm.org/get_started.html\r
\r
-======\r
-Docker\r
-======\r
+LLVM Builds and Distributions\r
+-----------------------------\r
+\r
+:doc:`BuildingADistribution`\r
+ A best-practices guide for using LLVM's CMake build system to package and\r
+ distribute LLVM-based tools.\r
+\r
+:doc:`CMake`\r
+ An addendum to the main Getting Started guide for those using the `CMake\r
+ build system <http://www.cmake.org>`_.\r
\r
:doc:`Docker`\r
A reference for using Dockerfiles provided with LLVM.\r
\r
-=================\r
-Additional Topics\r
-=================\r
+Optimizations\r
+-------------\r
\r
-:doc:`HowToCrossCompileBuiltinsOnArm`\r
- Notes on cross-building and testing the compiler-rt builtins for Arm.\r
+:doc:`WritingAnLLVMPass`\r
+ Information on how to write LLVM transformations and analyses.\r
\r
:doc:`Passes`\r
A list of optimizations and analyses implemented in LLVM.\r
\r
-:doc:`TestSuiteGuide`\r
- Describes how to compile and run the test-suite benchmarks.\r
+:doc:`LoopTerminology`\r
+ A document describing Loops and associated terms as used in LLVM.\r
\r
-:doc:`YamlIO`\r
- A reference guide for using LLVM's YAML I/O library.\r
+:doc:`Remarks`\r
+ A reference on the implementation of remarks in LLVM.\r
\r
-:doc:`GetElementPtr`\r
- Answers to some very frequent questions about LLVM's most frequently\r
- misunderstood instruction.\r
+Code Generation\r
+---------------\r
\r
-:doc:`Frontend/PerformanceTips`\r
- A collection of tips for frontend authors on how to generate IR\r
- which LLVM is able to effectively optimize.\r
+:doc:`WritingAnLLVMBackend`\r
+ Information on how to write LLVM backends for machine targets.\r
\r
-:doc:`Remarks`\r
- A reference on the implementation of remarks in LLVM.
\ No newline at end of file
+:doc:`CodeGenerator`\r
+ The design and implementation of the LLVM code generator. Useful if you are\r
+ working on retargetting LLVM to a new architecture, designing a new codegen\r
+ pass, or enhancing existing components.\r
+\r
+:doc:`TableGen <TableGen/index>`\r
+ Describes the TableGen tool, which is used heavily by the LLVM code\r
+ generator.\r
+\r
+Additional Topics\r
+-----------------\r
+\r
+:doc:`HowToCrossCompileBuiltinsOnArm`\r
+ Notes on cross-building and testing the compiler-rt builtins for Arm.\r
+\r
+:doc:`NVPTXUsage`\r
+ This document describes using the NVPTX backend to compile GPU kernels.\r
+\r
+:doc:`AMDGPUUsage`\r
+ This document describes using the AMDGPU backend to compile GPU kernels.
\ No newline at end of file
.. toctree::
:hidden:
- UserGuides
+ GettingStartedTutorials
ProgrammingDocumentation
Reference
SubsystemDocumentation
+ UserGuides
-:doc:`UserGuides`
+:doc:`GettingStartedTutorials`
For those new to the LLVM system.
+:doc:`UserGuides`
+ User guides and How-tos.
+
:doc:`ProgrammingDocumentation`
For developers of applications which use LLVM as a library.
:doc:`Reference`
LLVM and API reference documentation.
-Getting Started/Tutorials
--------------------------
-
-.. toctree::
- :hidden:
-
- GettingStarted
- tutorial/index
- GettingStartedVS
-
-:doc:`GettingStarted`
- Discusses how to get up and running quickly with the LLVM infrastructure.
- Everything from unpacking and compilation of the distribution to execution
- of some tools.
-
-:doc:`tutorial/index`
- Tutorials about using LLVM. Includes a tutorial about making a custom
- language with LLVM.
-
-:doc:`GettingStartedVS`
- An addendum to the main Getting Started guide for those using Visual Studio
- on Windows.
-
Community
=========