[Docs] Adds new Getting Started/Tutorials page
Adds a new page for Getting Started/Tutorials topics. Also updates existing topic categories on the User Guides and Reference pages.
llvm-svn: 373854
diff --git a/llvm/docs/GettingStartedTutorials.rst b/llvm/docs/GettingStartedTutorials.rst
new file mode 100644
index 0000000..60a5ddf
--- /dev/null
+++ b/llvm/docs/GettingStartedTutorials.rst
@@ -0,0 +1,29 @@
+Getting Started/Tutorials
+=========================
+
+For those new to the LLVM system.
+
+.. toctree::
+ :hidden:
+
+ GettingStarted
+ GettingStartedVS
+ Frontend/PerformanceTips
+ tutorial/index
+
+: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.
+
+:doc:`Frontend/PerformanceTips`
+ A collection of tips for frontend authors on how to generate IR
+ which LLVM is able to effectively optimize.
\ No newline at end of file
diff --git a/llvm/docs/ProgrammingDocumentation.rst b/llvm/docs/ProgrammingDocumentation.rst
index 6a4d7aa..a36127a 100644
--- a/llvm/docs/ProgrammingDocumentation.rst
+++ b/llvm/docs/ProgrammingDocumentation.rst
@@ -8,13 +8,10 @@
Atomics
CommandLine
- CommandGuide/index
ExtendingLLVM
HowToSetUpLLVMStyleRTTI
ProgrammersManual
Extensions
- LibFuzzer
- FuzzingLLVM
ScudoHardenedAllocator
OptBisect
GwpAsan
@@ -42,26 +39,8 @@
:doc:`GwpAsan`
A sampled heap memory error detection toolkit designed for production use.
-============
-Command Line
-============
-
:doc:`CommandLine`
Provides information on using the command line parsing library.
:doc:`OptBisect`
- A command line option for debugging optimization-induced failures.
-
-:doc:`LLVM Command Guide <CommandGuide/index>`
- A reference manual for the LLVM command line utilities ("man" pages for LLVM
- tools).
-
-=========
-LibFuzzer
-=========
-
-:doc:`LibFuzzer`
- A library for writing in-process guided fuzzers.
-
-:doc:`FuzzingLLVM`
- 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
diff --git a/llvm/docs/Reference.rst b/llvm/docs/Reference.rst
index 49ff6b6..9346d4d 100644
--- a/llvm/docs/Reference.rst
+++ b/llvm/docs/Reference.rst
@@ -3,27 +3,41 @@
LLVM and API reference documentation.
+.. contents::
+ :local:
+
.. toctree::
:hidden:
- LangRef
- TestingGuide
+ Bugpoint
+ CommandGuide/index
CompilerWriterInfo
+ FuzzingLLVM
+ GarbageCollection
+ GetElementPtr
+ LangRef
+ LibFuzzer
MIRLangRef
- NVPTXUsage
- AMDGPUUsage
+ PDB/index
+ Statepoints
+ TestingGuide
+ YamlIO
-==============
+API Reference
+-------------
+
+`Doxygen generated documentation <http://llvm.org/doxygen/>`_
+ (`classes <http://llvm.org/doxygen/inherits.html>`_)
+
+`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_
+
LLVM Reference
-==============
+--------------
:doc:`LLVM Language Reference Manual <LangRef>`
Defines the LLVM intermediate representation and the assembly form of the
different nodes.
-:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`
- A reference manual for using the LLVM testing infrastructure.
-
:doc:`CompilerWriterInfo`
A list of helpful links for compiler writers.
@@ -31,17 +45,56 @@
A reference manual for the MIR serialization format, which is used to test
LLVM's code generation passes.
-:doc:`NVPTXUsage`
- This document describes using the NVPTX backend to compile GPU kernels.
+:doc:`YamlIO`
+ A reference guide for using LLVM's YAML I/O library.
-:doc:`AMDGPUUsage`
- This document describes using the AMDGPU backend to compile GPU kernels.
+:doc:`GetElementPtr`
+ Answers to some very frequent questions about LLVM's most frequently
+ misunderstood instruction.
-=============
-API Reference
-=============
+======================
+Command Line Utilities
+======================
-`Doxygen generated documentation <http://llvm.org/doxygen/>`_
- (`classes <http://llvm.org/doxygen/inherits.html>`_)
+:doc:`LLVM Command Guide <CommandGuide/index>`
+ A reference manual for the LLVM command line utilities ("man" pages for LLVM
+ tools).
-`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_
+:doc:`Bugpoint`
+ Automatic bug finder and test-case reducer description and usage
+ information.
+
+:doc:`The Microsoft PDB File Format <PDB/index>`
+ A detailed description of the Microsoft PDB (Program Database) file format.
+
+==================
+Garbage Collection
+==================
+
+:doc:`GarbageCollection`
+ The interfaces source-language compilers should use for compiling GC'd
+ programs.
+
+:doc:`Statepoints`
+ This describes a set of experimental extensions for garbage
+ collection support.
+
+=========
+LibFuzzer
+=========
+
+:doc:`LibFuzzer`
+ A library for writing in-process guided fuzzers.
+
+:doc:`FuzzingLLVM`
+ Information on writing and using Fuzzers to find bugs in LLVM.
+
+=======
+Testing
+=======
+
+:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`
+ A reference manual for using the LLVM testing infrastructure.
+
+:doc:`TestSuiteGuide`
+ Describes how to compile and run the test-suite benchmarks.
\ No newline at end of file
diff --git a/llvm/docs/SubsystemDocumentation.rst b/llvm/docs/SubsystemDocumentation.rst
index 69764cb..81feb43 100644
--- a/llvm/docs/SubsystemDocumentation.rst
+++ b/llvm/docs/SubsystemDocumentation.rst
@@ -13,14 +13,12 @@
BitCodeFormat
BlockFrequencyTerminology
BranchWeightMetadata
- Bugpoint
CodeGenerator
ExceptionHandling
AddingConstrainedIntrinsics
LinkTimeOptimization
SegmentedStacks
TableGenFundamentals
- TableGen/index
DebuggingJITedCode
GoldPlugin
MarkedUpDisassembly
@@ -28,15 +26,11 @@
SupportLibrary
SourceLevelDebugging
Vectorizers
- WritingAnLLVMBackend
- GarbageCollection
- WritingAnLLVMPass
HowToUseAttributes
StackMaps
InAlloca
BigEndianNEON
CoverageMappingFormat
- Statepoints
MergeFunctions
TypeMetadata
TransformMetadata
@@ -46,28 +40,12 @@
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.
@@ -90,10 +68,6 @@
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.
@@ -169,9 +143,6 @@
: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.
@@ -182,21 +153,6 @@
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).
-
-==================
-Garbage Collection
-==================
-
-:doc:`GarbageCollection`
- The interfaces source-language compilers should use for compiling GC'd
- programs.
-
-:doc:`Statepoints`
- This describes a set of experimental extensions for garbage
- collection support.
+ the DDG (Data Dependence Graph).
\ No newline at end of file
diff --git a/llvm/docs/UserGuides.rst b/llvm/docs/UserGuides.rst
index d75769a..7016a52 100644
--- a/llvm/docs/UserGuides.rst
+++ b/llvm/docs/UserGuides.rst
@@ -1,13 +1,14 @@
User Guides
===========
-For those new to the LLVM system.
-
NOTE: If you are a user who is only interested in using an LLVM-based compiler,
you should look into `Clang <http://clang.llvm.org>`_ instead. The
documentation here is intended for users who have a need to work with the
intermediate LLVM representation.
+.. contents::
+ :local:
+
.. toctree::
:hidden:
@@ -22,9 +23,6 @@
MarkdownQuickstartTemplate
Phabricator
Passes
- YamlIO
- GetElementPtr
- Frontend/PerformanceTips
MCJITDesignAndImplementation
ORCv2
CodeOfConduct
@@ -34,27 +32,14 @@
Docker
BuildingADistribution
Remarks
+ WritingAnLLVMPass
+ WritingAnLLVMBackend
+ TableGen/index
+ NVPTXUsage
+ AMDGPUUsage
-Building, Packaging, and Distributing LLVM
-------------------------------------------
-
-How to build, package, and distribute LLVM.
-
-=====
-CMake
-=====
-
-:doc:`BuildingADistribution`
- A best-practices guide for using LLVM's CMake build system to package and
- distribute LLVM-based tools.
-
-:doc:`CMake`
- An addendum to the main Getting Started guide for those using the `CMake
- build system <http://www.cmake.org>`_.
-
-=====
Clang
-=====
+-----
:doc:`HowToBuildOnARM`
Notes on building and testing LLVM/Clang on ARM.
@@ -70,36 +55,58 @@
.. __: http://clang.llvm.org/get_started.html
-======
-Docker
-======
+LLVM Builds and Distributions
+-----------------------------
+
+:doc:`BuildingADistribution`
+ A best-practices guide for using LLVM's CMake build system to package and
+ distribute LLVM-based tools.
+
+:doc:`CMake`
+ An addendum to the main Getting Started guide for those using the `CMake
+ build system <http://www.cmake.org>`_.
:doc:`Docker`
A reference for using Dockerfiles provided with LLVM.
-=================
-Additional Topics
-=================
+Optimizations
+-------------
-:doc:`HowToCrossCompileBuiltinsOnArm`
- Notes on cross-building and testing the compiler-rt builtins for Arm.
+:doc:`WritingAnLLVMPass`
+ Information on how to write LLVM transformations and analyses.
:doc:`Passes`
A list of optimizations and analyses implemented in LLVM.
-:doc:`TestSuiteGuide`
- Describes how to compile and run the test-suite benchmarks.
-
-:doc:`YamlIO`
- A reference guide for using LLVM's YAML I/O library.
-
-:doc:`GetElementPtr`
- Answers to some very frequent questions about LLVM's most frequently
- misunderstood instruction.
-
-:doc:`Frontend/PerformanceTips`
- A collection of tips for frontend authors on how to generate IR
- which LLVM is able to effectively optimize.
+:doc:`LoopTerminology`
+ A document describing Loops and associated terms as used in LLVM.
:doc:`Remarks`
- A reference on the implementation of remarks in LLVM.
\ No newline at end of file
+ A reference on the implementation of remarks in LLVM.
+
+Code Generation
+---------------
+
+: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.
+
+Additional Topics
+-----------------
+
+:doc:`HowToCrossCompileBuiltinsOnArm`
+ Notes on cross-building and testing the compiler-rt builtins for Arm.
+
+: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.
\ No newline at end of file
diff --git a/llvm/docs/index.rst b/llvm/docs/index.rst
index 17a0706..f64979e 100644
--- a/llvm/docs/index.rst
+++ b/llvm/docs/index.rst
@@ -53,13 +53,17 @@
.. toctree::
:hidden:
- UserGuides
+ GettingStartedTutorials
ProgrammingDocumentation
Reference
SubsystemDocumentation
+ UserGuides
+
+:doc:`GettingStartedTutorials`
+ For those new to the LLVM system.
:doc:`UserGuides`
- For those new to the LLVM system.
+ User guides and How-tos.
:doc:`ProgrammingDocumentation`
For developers of applications which use LLVM as a library.
@@ -70,29 +74,6 @@
: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
=========