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