diff --git a/llvm/docs/Reference.rst b/llvm/docs/Reference.rst
index c18b6d01375d..882d0dc9ab12 100644
--- a/llvm/docs/Reference.rst
+++ b/llvm/docs/Reference.rst
@@ -32,7 +32,6 @@ LLVM and API reference documentation.
LangRef
LibFuzzer
MarkedUpDisassembly
- MemorySSA
MIRLangRef
OptBisect
ORCv2
@@ -41,7 +40,6 @@ LLVM and API reference documentation.
SegmentedStacks
StackMaps
SpeculativeLoadHardening
- SupportLibrary
Statepoints
SystemLibrary
TestingGuide
@@ -58,6 +56,9 @@ API Reference
`Doxygen generated documentation `_
(`classes `_)
+:doc:`HowToUseAttributes`
+ Answers some questions about the new Attributes infrastructure.
+
`Documentation for Go bindings `_
:doc:`ORCv2`
@@ -67,76 +68,6 @@ API Reference
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 `
- 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 `
- 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 @@ XRay
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 `
+ 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
diff --git a/llvm/docs/UserGuides.rst b/llvm/docs/UserGuides.rst
index 5c035d1717d6..abaa98cc9e7e 100644
--- a/llvm/docs/UserGuides.rst
+++ b/llvm/docs/UserGuides.rst
@@ -37,6 +37,7 @@ intermediate LLVM representation.
LinkTimeOptimization
LoopTerminology
MarkdownQuickstartTemplate
+ MemorySSA
MergeFunctions
MCJITDesignAndImplementation
NVPTXUsage
@@ -44,8 +45,9 @@ intermediate LLVM representation.
Passes
ReportingGuide
Remarks
- StackSafetyAnalysis
SourceLevelDebugging
+ StackSafetyAnalysis
+ SupportLibrary
TableGen/index
TableGenFundamentals
Vectorizers
@@ -87,6 +89,10 @@ LLVM Builds and Distributions
:doc:`Docker`
A reference for using Dockerfiles provided with LLVM.
+:doc:`Support Library `
+ This document describes the LLVM Support Library (``lib/Support``) and
+ how to keep LLVM source code portable
+
Optimizations
-------------
@@ -107,6 +113,9 @@ Optimizations
Information on how to write a new alias analysis implementation or how to
use existing analyses.
+:doc:`MemorySSA`
+ Information about the MemorySSA utility in LLVM, as well as how to use it.
+
:doc:`LoopTerminology`
A document describing Loops and associated terms as used in LLVM.