[Docs] Adds section for Additional Topics on Reference page

Adds a new section for Additional Topics on the Reference documentation page. Also moves Support Library topic to User Guides page.

llvm-svn: 374230
diff --git a/llvm/docs/Reference.rst b/llvm/docs/Reference.rst
index c18b6d0..882d0dc 100644
--- a/llvm/docs/Reference.rst
+++ b/llvm/docs/Reference.rst
@@ -32,7 +32,6 @@
    LangRef

    LibFuzzer

    MarkedUpDisassembly

-   MemorySSA

    MIRLangRef

    OptBisect

    ORCv2

@@ -41,7 +40,6 @@
    SegmentedStacks

    StackMaps

    SpeculativeLoadHardening

-   SupportLibrary

    Statepoints

    SystemLibrary

    TestingGuide

@@ -58,6 +56,9 @@
 `Doxygen generated documentation <http://llvm.org/doxygen/>`_

   (`classes <http://llvm.org/doxygen/inherits.html>`_)

 

+:doc:`HowToUseAttributes`

+  Answers some questions about the new Attributes infrastructure.

+

 `Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_

 

 :doc:`ORCv2`

@@ -67,76 +68,6 @@
 LLVM Reference

 --------------

 

-:doc:`FaultMaps`

-  LLVM support for folding control flow into faulting machine instructions.

-

-:doc:`Atomics`

-  Information about LLVM's concurrency model.

-

-:doc:`ExceptionHandling`

-   This document describes the design and implementation of exception handling

-   in LLVM.

-

-:doc:`Extensions`

-  LLVM-specific extensions to tools and formats LLVM seeks compatibility with.

-

-:doc:`HowToSetUpLLVMStyleRTTI`

-  How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your

-  class hierarchy.

-

-:doc:`BlockFrequencyTerminology`

-   Provides information about terminology used in the ``BlockFrequencyInfo``

-   analysis pass.

-

-:doc:`BranchWeightMetadata`

-   Provides information about Branch Prediction Information.

-

-:doc:`MemorySSA`

-   Information about the MemorySSA utility in LLVM, as well as how to use it.

-

-:doc:`Support Library <SupportLibrary>`

-   This document describes the LLVM Support Library (``lib/Support``) and

-   how to keep LLVM source code portable

-

-:doc:`GetElementPtr`

-  Answers to some very frequent questions about LLVM's most frequently

-  misunderstood instruction.

-

-:doc:`ScudoHardenedAllocator`

-  A library that implements a security-hardened `malloc()`.

-

-:doc:`GwpAsan`

-  A sampled heap memory error detection toolkit designed for production use.

-

-:doc:`Dependence Graphs <DependenceGraphs/index>`

-  A description of the design of the various dependence graphs such as

-  the DDG (Data Dependence Graph).

-

-:doc:`CFIVerify`

-  A description of the verification tool for Control Flow Integrity.

-

-:doc:`SpeculativeLoadHardening`

-  A description of the Speculative Load Hardening mitigation for Spectre v1.

-

-:doc:`SegmentedStacks`

-   This document describes segmented stacks and how they are used in LLVM.

-

-:doc:`MarkedUpDisassembly`

-   This document describes the optional rich disassembly output syntax.

-

-:doc:`HowToUseAttributes`

-  Answers some questions about the new Attributes infrastructure.

-

-:doc:`StackMaps`

-  LLVM support for mapping instruction addresses to the location of

-  values and allowing code to be patched.

-

-:doc:`Coroutines`

-  LLVM support for coroutines.

-

-:doc:`YamlIO`

-   A reference guide for using LLVM's YAML I/O library.

-

 ======================

 Command Line Utilities

 ======================

@@ -216,4 +147,68 @@
   High-level documentation of how to use XRay in LLVM.

 

 :doc:`XRayExample`

-  An example of how to debug an application with XRay.
\ No newline at end of file
+  An example of how to debug an application with XRay.

+

+=================

+Additional Topics

+=================

+

+:doc:`FaultMaps`

+  LLVM support for folding control flow into faulting machine instructions.

+

+:doc:`Atomics`

+  Information about LLVM's concurrency model.

+

+:doc:`ExceptionHandling`

+   This document describes the design and implementation of exception handling

+   in LLVM.

+

+:doc:`Extensions`

+  LLVM-specific extensions to tools and formats LLVM seeks compatibility with.

+

+:doc:`HowToSetUpLLVMStyleRTTI`

+  How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your

+  class hierarchy.

+

+:doc:`BlockFrequencyTerminology`

+   Provides information about terminology used in the ``BlockFrequencyInfo``

+   analysis pass.

+

+:doc:`BranchWeightMetadata`

+   Provides information about Branch Prediction Information.

+

+:doc:`GetElementPtr`

+  Answers to some very frequent questions about LLVM's most frequently

+  misunderstood instruction.

+

+:doc:`ScudoHardenedAllocator`

+  A library that implements a security-hardened `malloc()`.

+

+:doc:`GwpAsan`

+  A sampled heap memory error detection toolkit designed for production use.

+

+:doc:`Dependence Graphs <DependenceGraphs/index>`

+  A description of the design of the various dependence graphs such as

+  the DDG (Data Dependence Graph).

+

+:doc:`CFIVerify`

+  A description of the verification tool for Control Flow Integrity.

+

+:doc:`SpeculativeLoadHardening`

+  A description of the Speculative Load Hardening mitigation for Spectre v1.

+

+:doc:`SegmentedStacks`

+   This document describes segmented stacks and how they are used in LLVM.

+

+:doc:`MarkedUpDisassembly`

+   This document describes the optional rich disassembly output syntax.

+

+:doc:`StackMaps`

+  LLVM support for mapping instruction addresses to the location of

+  values and allowing code to be patched.

+

+:doc:`Coroutines`

+  LLVM support for coroutines.

+

+:doc:`YamlIO`

+   A reference guide for using LLVM's YAML I/O library.
\ No newline at end of file