[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
This commit is contained in:
DeForest Richards 2019-10-06 15:36:37 +00:00
parent f643fabb52
commit 6d19651410
6 changed files with 162 additions and 157 deletions

View File

@ -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.

View File

@ -8,13 +8,10 @@ For developers of applications which use LLVM as a library.
Atomics
CommandLine
CommandGuide/index
ExtendingLLVM
HowToSetUpLLVMStyleRTTI
ProgrammersManual
Extensions
LibFuzzer
FuzzingLLVM
ScudoHardenedAllocator
OptBisect
GwpAsan
@ -42,26 +39,8 @@ For developers of applications which use LLVM as a library.
: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.
A command line option for debugging optimization-induced failures.

View File

@ -3,27 +3,41 @@ Reference
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 @@ LLVM Reference
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.

View File

@ -13,14 +13,12 @@ For API clients and LLVM developers.
BitCodeFormat
BlockFrequencyTerminology
BranchWeightMetadata
Bugpoint
CodeGenerator
ExceptionHandling
AddingConstrainedIntrinsics
LinkTimeOptimization
SegmentedStacks
TableGenFundamentals
TableGen/index
DebuggingJITedCode
GoldPlugin
MarkedUpDisassembly
@ -28,15 +26,11 @@ For API clients and LLVM developers.
SupportLibrary
SourceLevelDebugging
Vectorizers
WritingAnLLVMBackend
GarbageCollection
WritingAnLLVMPass
HowToUseAttributes
StackMaps
InAlloca
BigEndianNEON
CoverageMappingFormat
Statepoints
MergeFunctions
TypeMetadata
TransformMetadata
@ -46,28 +40,12 @@ For API clients and LLVM developers.
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 @@ For API clients and LLVM developers.
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 @@ For API clients and LLVM developers.
: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 @@ For API clients and LLVM developers.
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).

View File

@ -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 @@ intermediate LLVM representation.
MarkdownQuickstartTemplate
Phabricator
Passes
YamlIO
GetElementPtr
Frontend/PerformanceTips
MCJITDesignAndImplementation
ORCv2
CodeOfConduct
@ -34,27 +32,14 @@ intermediate LLVM representation.
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 @@ Clang
.. __: 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.
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.

View File

@ -53,13 +53,17 @@ Getting Started, How-tos, Developer Guides, and Tutorials.
.. 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 @@ Getting Started, How-tos, Developer Guides, and Tutorials.
: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
=========