Эх сурвалжийг харах

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373854 91177308-0d34-0410-b5e6-96231b3b80d8
DeForest Richards 5 жил өмнө
parent
commit
bee60d9c8a

+ 29 - 0
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.

+ 1 - 22
docs/ProgrammingDocumentation.rst

@@ -8,13 +8,10 @@ For developers of applications which use LLVM as a library.
 
 
    Atomics
    Atomics
    CommandLine
    CommandLine
-   CommandGuide/index
    ExtendingLLVM
    ExtendingLLVM
    HowToSetUpLLVMStyleRTTI
    HowToSetUpLLVMStyleRTTI
    ProgrammersManual
    ProgrammersManual
    Extensions
    Extensions
-   LibFuzzer
-   FuzzingLLVM
    ScudoHardenedAllocator
    ScudoHardenedAllocator
    OptBisect
    OptBisect
    GwpAsan
    GwpAsan
@@ -42,26 +39,8 @@ For developers of applications which use LLVM as a library.
 :doc:`GwpAsan`
 :doc:`GwpAsan`
   A sampled heap memory error detection toolkit designed for production use.
   A sampled heap memory error detection toolkit designed for production use.
 
 
-============
-Command Line
-============
-
 :doc:`CommandLine`
 :doc:`CommandLine`
   Provides information on using the command line parsing library.
   Provides information on using the command line parsing library.
 
 
 :doc:`OptBisect`
 :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.

+ 72 - 19
docs/Reference.rst

@@ -3,27 +3,41 @@ Reference
 
 
 LLVM and API reference documentation.
 LLVM and API reference documentation.
 
 
+.. contents::
+   :local:
+
 .. toctree::
 .. toctree::
    :hidden:
    :hidden:
 
 
-   LangRef
-   TestingGuide
+   Bugpoint
+   CommandGuide/index
    CompilerWriterInfo
    CompilerWriterInfo
+   FuzzingLLVM
+   GarbageCollection
+   GetElementPtr
+   LangRef
+   LibFuzzer
    MIRLangRef
    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
 LLVM Reference
-==============
+--------------
 
 
 :doc:`LLVM Language Reference Manual <LangRef>`
 :doc:`LLVM Language Reference Manual <LangRef>`
   Defines the LLVM intermediate representation and the assembly form of the
   Defines the LLVM intermediate representation and the assembly form of the
   different nodes.
   different nodes.
 
 
-:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`
-   A reference manual for using the LLVM testing infrastructure.
-
 :doc:`CompilerWriterInfo`
 :doc:`CompilerWriterInfo`
   A list of helpful links for compiler writers.
   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
    A reference manual for the MIR serialization format, which is used to test
    LLVM's code generation passes.
    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.

+ 1 - 45
docs/SubsystemDocumentation.rst

@@ -13,14 +13,12 @@ For API clients and LLVM developers.
    BitCodeFormat
    BitCodeFormat
    BlockFrequencyTerminology
    BlockFrequencyTerminology
    BranchWeightMetadata
    BranchWeightMetadata
-   Bugpoint
    CodeGenerator
    CodeGenerator
    ExceptionHandling
    ExceptionHandling
    AddingConstrainedIntrinsics
    AddingConstrainedIntrinsics
    LinkTimeOptimization
    LinkTimeOptimization
    SegmentedStacks
    SegmentedStacks
    TableGenFundamentals
    TableGenFundamentals
-   TableGen/index
    DebuggingJITedCode
    DebuggingJITedCode
    GoldPlugin
    GoldPlugin
    MarkedUpDisassembly
    MarkedUpDisassembly
@@ -28,15 +26,11 @@ For API clients and LLVM developers.
    SupportLibrary
    SupportLibrary
    SourceLevelDebugging
    SourceLevelDebugging
    Vectorizers
    Vectorizers
-   WritingAnLLVMBackend
-   GarbageCollection
-   WritingAnLLVMPass
    HowToUseAttributes
    HowToUseAttributes
    StackMaps
    StackMaps
    InAlloca
    InAlloca
    BigEndianNEON
    BigEndianNEON
    CoverageMappingFormat
    CoverageMappingFormat
-   Statepoints
    MergeFunctions
    MergeFunctions
    TypeMetadata
    TypeMetadata
    TransformMetadata
    TransformMetadata
@@ -46,28 +40,12 @@ For API clients and LLVM developers.
    XRay
    XRay
    XRayExample
    XRayExample
    XRayFDRFormat
    XRayFDRFormat
-   PDB/index
    CFIVerify
    CFIVerify
    SpeculativeLoadHardening
    SpeculativeLoadHardening
    StackSafetyAnalysis
    StackSafetyAnalysis
    LoopTerminology
    LoopTerminology
    DependenceGraphs/index
    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`
 :doc:`AliasAnalysis`
    Information on how to write a new alias analysis implementation or how to
    Information on how to write a new alias analysis implementation or how to
    use existing analyses.
    use existing analyses.
@@ -90,10 +68,6 @@ For API clients and LLVM developers.
    Gives the steps necessary when adding a new constrained math intrinsic
    Gives the steps necessary when adding a new constrained math intrinsic
    to LLVM.
    to LLVM.
 
 
-:doc:`Bugpoint`
-   Automatic bug finder and test-case reducer description and usage
-   information.
-
 :doc:`BitCodeFormat`
 :doc:`BitCodeFormat`
    This describes the file format and encoding used for LLVM "bc" files.
    This describes the file format and encoding used for LLVM "bc" files.
 
 
@@ -169,9 +143,6 @@ For API clients and LLVM developers.
 :doc:`XRayExample`
 :doc:`XRayExample`
   An example of how to debug an application with XRay.
   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`
 :doc:`CFIVerify`
   A description of the verification tool for Control Flow Integrity.
   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
   This document describes the design of the stack safety analysis of local
   variables.
   variables.
 
 
-:doc:`LoopTerminology`
-  A document describing Loops and associated terms as used in LLVM.
-
 :doc:`Dependence Graphs <DependenceGraphs/index>`
 :doc:`Dependence Graphs <DependenceGraphs/index>`
   A description of the design of the various dependence graphs such as
   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).

+ 51 - 44
docs/UserGuides.rst

@@ -1,13 +1,14 @@
 User Guides
 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,
 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
 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
 documentation here is intended for users who have a need to work with the
 intermediate LLVM representation.
 intermediate LLVM representation.
 
 
+.. contents::
+   :local:
+
 .. toctree::
 .. toctree::
    :hidden:
    :hidden:
 
 
@@ -22,9 +23,6 @@ intermediate LLVM representation.
    MarkdownQuickstartTemplate
    MarkdownQuickstartTemplate
    Phabricator
    Phabricator
    Passes
    Passes
-   YamlIO
-   GetElementPtr
-   Frontend/PerformanceTips
    MCJITDesignAndImplementation
    MCJITDesignAndImplementation
    ORCv2
    ORCv2
    CodeOfConduct
    CodeOfConduct
@@ -34,27 +32,14 @@ intermediate LLVM representation.
    Docker
    Docker
    BuildingADistribution
    BuildingADistribution
    Remarks
    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
 Clang
-=====
+-----
 
 
 :doc:`HowToBuildOnARM`
 :doc:`HowToBuildOnARM`
    Notes on building and testing LLVM/Clang on ARM.
    Notes on building and testing LLVM/Clang on ARM.
@@ -70,36 +55,58 @@ Clang
 
 
    .. __: http://clang.llvm.org/get_started.html
    .. __: 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`
 :doc:`Docker`
    A reference for using Dockerfiles provided with LLVM.
    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`
 :doc:`Passes`
    A list of optimizations and analyses implemented in LLVM.
    A list of optimizations and analyses implemented in LLVM.
 
 
-:doc:`TestSuiteGuide`
-  Describes how to compile and run the test-suite benchmarks.
+:doc:`LoopTerminology`
+  A document describing Loops and associated terms as used in LLVM.
 
 
-:doc:`YamlIO`
-   A reference guide for using LLVM's YAML I/O library.
+:doc:`Remarks`
+   A reference on the implementation of remarks in LLVM.
 
 
-:doc:`GetElementPtr`
-  Answers to some very frequent questions about LLVM's most frequently
-  misunderstood instruction.
+Code Generation
+---------------
 
 
-:doc:`Frontend/PerformanceTips`
-   A collection of tips for frontend authors on how to generate IR
-   which LLVM is able to effectively optimize.
+:doc:`WritingAnLLVMBackend`
+   Information on how to write LLVM backends for machine targets.
 
 
-:doc:`Remarks`
-   A reference on the implementation of remarks in LLVM.
+: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.

+ 6 - 25
docs/index.rst

@@ -53,14 +53,18 @@ Getting Started, How-tos, Developer Guides, and Tutorials.
 .. toctree::
 .. toctree::
    :hidden:
    :hidden:
 
 
-   UserGuides
+   GettingStartedTutorials
    ProgrammingDocumentation
    ProgrammingDocumentation
    Reference
    Reference
    SubsystemDocumentation
    SubsystemDocumentation
+   UserGuides
 
 
-:doc:`UserGuides`
+:doc:`GettingStartedTutorials`
   For those new to the LLVM system.
   For those new to the LLVM system.
 
 
+:doc:`UserGuides`
+  User guides and How-tos.
+
 :doc:`ProgrammingDocumentation`
 :doc:`ProgrammingDocumentation`
   For developers of applications which use LLVM as a library.
   For developers of applications which use LLVM as a library.
 
 
@@ -70,29 +74,6 @@ Getting Started, How-tos, Developer Guides, and Tutorials.
 :doc:`Reference`
 :doc:`Reference`
   LLVM and API reference documentation.
   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
 Community
 =========
 =========