diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 0f52c53..c12449f 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -1,6 +1,6 @@
-===================================================
-Extra Clang Tools 9.0.0 (In-Progress) Release Notes
-===================================================
+====================================================
+Extra Clang Tools 10.0.0 (In-Progress) Release Notes
+====================================================
 
 .. contents::
    :local:
@@ -10,7 +10,7 @@
 
 .. warning::
 
-   These are in-progress notes for the upcoming Extra Clang Tools 9 release.
+   These are in-progress notes for the upcoming Extra Clang Tools 10 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
@@ -18,7 +18,7 @@
 ============
 
 This document contains the release notes for the Extra Clang Tools, part of the
-Clang release 9.0.0. Here we describe the status of the Extra Clang Tools in
+Clang release 10.0.0. Here we describe the status of the Extra Clang Tools in
 some detail, including major improvements from the previous release and new
 feature work. All LLVM releases may be downloaded from the `LLVM releases web
 site <https://llvm.org/releases/>`_.
@@ -32,8 +32,8 @@
 the current one. To see the release notes for a specific release, please
 see the `releases page <https://llvm.org/releases/>`_.
 
-What's New in Extra Clang Tools 9.0.0?
-======================================
+What's New in Extra Clang Tools 10.0.0?
+=======================================
 
 Some of the major new features and improvements to Extra Clang Tools are listed
 here. Generic improvements to Extra Clang Tools as a whole or to its underlying
@@ -67,187 +67,7 @@
 Improvements to clang-tidy
 --------------------------
 
-- New OpenMP module.
-
-  For checks specific to `OpenMP <https://www.openmp.org/>`_ API.
-
-- New :doc:`abseil-duration-addition
-  <clang-tidy/checks/abseil-duration-addition>` check.
-
-  Checks for cases where addition should be performed in the ``absl::Time``
-  domain.
-
-- New :doc:`abseil-duration-conversion-cast
-  <clang-tidy/checks/abseil-duration-conversion-cast>` check.
-
-  Checks for casts of ``absl::Duration`` conversion functions, and recommends
-  the right conversion function instead.
-
-- New :doc:`abseil-duration-unnecessary-conversion
-  <clang-tidy/checks/abseil-duration-unnecessary-conversion>` check.
-
-  Finds and fixes cases where ``absl::Duration`` values are being converted to
-  numeric types and back again.
-
-- New :doc:`abseil-time-comparison
-  <clang-tidy/checks/abseil-time-comparison>` check.
-
-  Prefer comparisons in the ``absl::Time`` domain instead of the integer
-  domain.
-
-- New :doc:`abseil-time-subtraction
-  <clang-tidy/checks/abseil-time-subtraction>` check.
-
-  Finds and fixes ``absl::Time`` subtraction expressions to do subtraction
-  in the Time domain instead of the numeric domain.
-
-- New :doc:`android-cloexec-pipe
-  <clang-tidy/checks/android-cloexec-pipe>` check.
-
-  This check detects usage of ``pipe()``.
-
-- New :doc:`android-cloexec-pipe2
-  <clang-tidy/checks/android-cloexec-pipe2>` check.
-
-  This checks ensures that ``pipe2()`` is called with the ``O_CLOEXEC`` flag.
-
-- New :doc:`bugprone-branch-clone
-  <clang-tidy/checks/bugprone-branch-clone>` check.
-
-  Checks for repeated branches in ``if/else if/else`` chains, consecutive
-  repeated branches in ``switch`` statements and indentical true and false
-  branches in conditional operators.
-
-- New :doc:`bugprone-posix-return
-  <clang-tidy/checks/bugprone-posix-return>` check.
-
-  Checks if any calls to POSIX functions (except ``posix_openpt``) expect negative
-  return values.
-
-- New :doc:`bugprone-unhandled-self-assignment
-  <clang-tidy/checks/bugprone-unhandled-self-assignment>` check.
-
-  Finds user-defined copy assignment operators which do not protect the code
-  against self-assignment either by checking self-assignment explicitly or
-  using the copy-and-swap or the copy-and-move method.
-
-- New :doc:`fuchsia-default-arguments-calls
-  <clang-tidy/checks/fuchsia-default-arguments-calls>` check.
-
-  Warns if a function or method is called with default arguments.
-  This was previously done by `fuchsia-default-arguments check`, which has been
-  removed.
-
-- New :doc:`fuchsia-default-arguments-declarations
-  <clang-tidy/checks/fuchsia-default-arguments-declarations>` check.
-
-  Warns if a function or method is declared with default parameters.
-  This was previously done by `fuchsia-default-arguments check` check, which has
-  been removed.
-
-- New :doc:`google-objc-avoid-nsobject-new
-  <clang-tidy/checks/google-objc-avoid-nsobject-new>` check.
-
-  Checks for calls to ``+new`` or overrides of it, which are prohibited by the
-  Google Objective-C style guide.
-
-- New :doc:`google-readability-avoid-underscore-in-googletest-name
-  <clang-tidy/checks/google-readability-avoid-underscore-in-googletest-name>`
-  check.
-
-  Checks whether there are underscores in googletest test and test case names in
-  test macros, which is prohibited by the Googletest FAQ.
-
-- New :doc:`llvm-prefer-isa-or-dyn-cast-in-conditionals
-  <clang-tidy/checks/llvm-prefer-isa-or-dyn-cast-in-conditionals>` check.
-
-  Looks at conditionals and finds and replaces cases of ``cast<>``,
-  which will assert rather than return a null pointer, and
-  ``dyn_cast<>`` where the return value is not captured. Additionally,
-  finds and replaces cases that match the pattern ``var &&
-  isa<X>(var)``, where ``var`` is evaluated twice.
-
-- New :doc:`modernize-use-trailing-return-type
-  <clang-tidy/checks/modernize-use-trailing-return-type>` check.
-
-  Rewrites function signatures to use a trailing return type.
-
-- New :doc:`objc-super-self <clang-tidy/checks/objc-super-self>` check.
-
-  Finds invocations of ``-self`` on super instances in initializers of
-  subclasses of ``NSObject`` and recommends calling a superclass initializer
-  instead.
-
-- New :doc:`openmp-exception-escape
-  <clang-tidy/checks/openmp-exception-escape>` check.
-
-  Analyzes OpenMP Structured Blocks and checks that no exception escapes
-  out of the Structured Block it was thrown in.
-
-- New :doc:`openmp-use-default-none
-  <clang-tidy/checks/openmp-use-default-none>` check.
-
-  Finds OpenMP directives that are allowed to contain a ``default`` clause,
-  but either don't specify it or the clause is specified but with the kind
-  other than ``none``, and suggests to use the ``default(none)`` clause.
-
-- New :doc:`readability-convert-member-functions-to-static
-  <clang-tidy/checks/readability-convert-member-functions-to-static>` check.
-
-  Finds non-static member functions that can be made ``static``.
-
-- New alias :doc:`cert-oop54-cpp
-  <clang-tidy/checks/cert-oop54-cpp>` to
-  :doc:`bugprone-unhandled-self-assignment
-  <clang-tidy/checks/bugprone-unhandled-self-assignment>` was added.
-
-- New alias :doc:`cppcoreguidelines-explicit-virtual-functions
-  <clang-tidy/checks/cppcoreguidelines-explicit-virtual-functions>` to
-  :doc:`modernize-use-override
-  <clang-tidy/checks/modernize-use-override>` was added.
-
-- The :doc:`bugprone-argument-comment
-  <clang-tidy/checks/bugprone-argument-comment>` now supports
-  `CommentBoolLiterals`, `CommentIntegerLiterals`, `CommentFloatLiterals`,
-  `CommentUserDefiniedLiterals`, `CommentStringLiterals`,
-  `CommentCharacterLiterals` & `CommentNullPtrs` options.
-
-- The :doc:`bugprone-too-small-loop-variable
-  <clang-tidy/checks/bugprone-too-small-loop-variable>` now supports
-  `MagnitudeBitsUpperLimit` option. The default value was set to 16,
-  which greatly reduces warnings related to loops which are unlikely to
-  cause an actual functional bug.
-
-- Added `UseAssignment` option to :doc:`cppcoreguidelines-pro-type-member-init
-  <clang-tidy/checks/cppcoreguidelines-pro-type-member-init>`
-
-  If set to true, the check will provide fix-its with literal initializers
-  (``int i = 0;``) instead of curly braces (``int i{};``).
-
-- The `fuchsia-default-arguments` check has been removed.
-
-  Warnings of function or method calls and declarations with default arguments
-  were moved to :doc:`fuchsia-default-arguments-calls
-  <clang-tidy/checks/fuchsia-default-arguments-calls>` and
-  :doc:`fuchsia-default-arguments-declarations
-  <clang-tidy/checks/fuchsia-default-arguments-declarations>` checks
-  respectively.
-
-- The :doc:`google-runtime-int <clang-tidy/checks/google-runtime-int>`
-  check has been disabled in Objective-C++.
-
-- The :doc:`modernize-use-override
-  <clang-tidy/checks/modernize-use-override>` now supports `OverrideSpelling`
-  and `FinalSpelling` options.
-
-- The :doc:`misc-throw-by-value-catch-by-reference
-  <clang-tidy/checks/misc-throw-by-value-catch-by-reference>` now supports
-  `WarnOnLargeObject` and `MaxSize` options to warn on any large trivial
-  object caught by value.
-
-- The `Acronyms` and `IncludeDefaultAcronyms` options for the
-  :doc:`objc-property-declaration <clang-tidy/checks/objc-property-declaration>`
-  check have been removed.
+The improvements are...
 
 Improvements to include-fixer
 -----------------------------
@@ -267,5 +87,4 @@
 Improvements to pp-trace
 ------------------------
 
-- Added a new option `-callbacks` to filter preprocessor callbacks. It replaces
-  the `-ignore` option.
+The improvements are...
diff --git a/clang-tools-extra/docs/conf.py b/clang-tools-extra/docs/conf.py
index 16e8105..a025742 100644
--- a/clang-tools-extra/docs/conf.py
+++ b/clang-tools-extra/docs/conf.py
@@ -49,9 +49,9 @@
 # built documents.
 #
 # The short version.
-version = '9'
+version = '10'
 # The full version, including alpha/beta/rc tags.
-release = '9'
+release = '10'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index dadcc77..87245c8 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -1,6 +1,6 @@
-=======================================
-Clang 9.0.0 (In-Progress) Release Notes
-=======================================
+========================================
+Clang 10.0.0 (In-Progress) Release Notes
+========================================
 
 .. contents::
    :local:
@@ -10,7 +10,7 @@
 
 .. warning::
 
-   These are in-progress notes for the upcoming Clang 9 release.
+   These are in-progress notes for the upcoming Clang 10 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
@@ -18,7 +18,7 @@
 ============
 
 This document contains the release notes for the Clang C/C++/Objective-C
-frontend, part of the LLVM Compiler Infrastructure, release 9.0.0. Here we
+frontend, part of the LLVM Compiler Infrastructure, release 10.0.0. Here we
 describe the status of Clang in some detail, including major
 improvements from the previous release and new feature work. For the
 general LLVM release notes, see `the LLVM
@@ -35,8 +35,8 @@
 the current one. To see the release notes for a specific release, please
 see the `releases page <https://llvm.org/releases/>`_.
 
-What's New in Clang 9.0.0?
-==========================
+What's New in Clang 10.0.0?
+===========================
 
 Some of the major new features and improvements to Clang are listed
 here. Generic improvements to Clang as a whole or to its underlying
@@ -56,12 +56,6 @@
 Non-comprehensive list of changes in this release
 -------------------------------------------------
 
-- The ``__VERSION__`` macro has been updated.
-  Previously this macro contained the string '4.2.1 Compatible' to achieve
-  compatibility with GCC 4.2.1, but that should no longer be necessary.
-  However, to retrieve Clang's version, please favor the one of the macro
-  defined in :ref:`clang namespaced version macros <languageextensions-builtin-macros>`.
-
 - ...
 
 
@@ -81,8 +75,6 @@
 Modified Compiler Flags
 -----------------------
 
-- ``clang -dumpversion`` now returns the version of Clang itself.
-
 - ...
 
 New Pragmas in Clang
@@ -98,19 +90,11 @@
 Windows Support
 ---------------
 
-- clang-cl now treats non-existent files as possible typos for flags,
-  ``clang-cl /diagnostic:caret /c test.cc`` for example now produces
-  ``clang: error: no such file or directory: '/diagnostic:caret'; did you mean '/diagnostics:caret'?``
-
-
+- ...
 
 C Language Changes in Clang
 ---------------------------
 
-- ``__FILE_NAME__`` macro has been added as a Clang specific extension supported
-  in all C-family languages. This macro is similar to ``__FILE__`` except it
-  will always provide the last path component when possible.
-
 - ...
 
 C11 Feature Support
@@ -131,14 +115,7 @@
 Objective-C Language Changes in Clang
 -------------------------------------
 
-- Fixed encoding of ObjC pointer types that are pointers to typedefs.
-
-.. code-block:: objc
-
-      typedef NSArray<NSObject *> MyArray;
-
-      // clang used to encode this as "^{NSArray=#}" instead of "@".
-      const char *s0 = @encode(MyArray *);
+- ...
 
 OpenCL C Language Changes in Clang
 ----------------------------------
@@ -153,24 +130,24 @@
 OpenMP Support in Clang
 -----------------------
 
-- Added emission of the debug information for NVPTX target devices.
+- ...
 
 CUDA Support in Clang
 ---------------------
 
-- Added emission of the debug information for the device code.
+- ...
 
 Internal API Changes
 --------------------
 
-These are major API changes that have happened since the 8.0.0 release of
+These are major API changes that have happened since the 9.0.0 release of
 Clang. If upgrading an external codebase that uses Clang as a library,
 this section should help get you past the largest hurdles of upgrading.
 
 Build System Changes
 --------------------
 
-These are major changes to the build system that have happened since the 8.0.0
+These are major changes to the build system that have happened since the 9.0.0
 release of Clang. Users of the build system should adjust accordingly.
 
 - In 8.0.0 and below, the install-clang-headers target would install clang's
@@ -190,30 +167,18 @@
 clang-format
 ------------
 
-- Add language support for clang-formatting C# files.
-- Add Microsoft coding style to encapsulate default C# formatting style.
-- Added new option `PPDIS_BeforeHash` (in configuration: `BeforeHash`) to
-  `IndentPPDirectives` which indents preprocessor directives before the hash.
-- Added new option `AlignConsecutiveMacros` to align the C/C++ preprocessor
-  macros of consecutive lines.
+- ...
 
 libclang
 --------
 
-- When `CINDEXTEST_INCLUDE_ATTRIBUTED_TYPES` is not provided when making a
-  CXType, the equivalent type of the AttributedType is returned instead of the
-  modified type if the user does not want attribute sugar. The equivalent type
-  represents the minimally-desugared type which the AttributedType is
-  canonically equivalent to.
+- ...
 
 
 Static Analyzer
 ---------------
 
-- The UninitializedObject checker is now considered as stable.
-  (moved from the 'alpha.cplusplus' to the 'optin.cplusplus' package)
-
-...
+- ...
 
 .. _release-notes-ubsan:
 
diff --git a/clang/docs/conf.py b/clang/docs/conf.py
index dab7026..e16ff49 100644
--- a/clang/docs/conf.py
+++ b/clang/docs/conf.py
@@ -50,9 +50,9 @@
 # built documents.
 #
 # The short version.
-version = '9'
+version = '10'
 # The full version, including alpha/beta/rc tags.
-release = '9'
+release = '10'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index 5df3f25..1f32bb1 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -27,7 +27,7 @@
   project(libcxx CXX C)
 
   set(PACKAGE_NAME libcxx)
-  set(PACKAGE_VERSION 9.0.0svn)
+  set(PACKAGE_VERSION 10.0.0svn)
   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
   set(PACKAGE_BUGREPORT "llvm-bugs@lists.llvm.org")
 
diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 29cee44..f1dd6f9 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -1,6 +1,6 @@
-========================================
-Libc++ 9.0.0 (In-Progress) Release Notes
-========================================
+=========================================
+Libc++ 10.0.0 (In-Progress) Release Notes
+=========================================
 
 .. contents::
    :local:
@@ -10,7 +10,7 @@
 
 .. warning::
 
-   These are in-progress notes for the upcoming libc++ 9 release.
+   These are in-progress notes for the upcoming libc++ 10 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
@@ -18,7 +18,7 @@
 ============
 
 This document contains the release notes for the libc++ C++ Standard Library,
-part of the LLVM Compiler Infrastructure, release 9.0.0. Here we describe the
+part of the LLVM Compiler Infrastructure, release 10.0.0. Here we describe the
 status of libc++ in some detail, including major improvements from the previous
 release and new feature work. For the general LLVM release notes, see `the LLVM
 documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM releases may
@@ -32,8 +32,8 @@
 the current one. To see the release notes for a specific release, please
 see the `releases page <https://llvm.org/releases/>`_.
 
-What's New in Libc++ 9.0.0?
-===========================
+What's New in Libc++ 10.0.0?
+============================
 
 New Features
 ------------
diff --git a/libcxx/docs/conf.py b/libcxx/docs/conf.py
index e88b2d3..414f1bc 100644
--- a/libcxx/docs/conf.py
+++ b/libcxx/docs/conf.py
@@ -47,9 +47,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '9.0'
+version = '10.0'
 # The full version, including alpha/beta/rc tags.
-release = '9.0'
+release = '10.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 1ecced9..61ca544 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -32,7 +32,7 @@
 #  define _GNUC_VER_NEW 0
 #endif
 
-#define _LIBCPP_VERSION 9000
+#define _LIBCPP_VERSION 10000
 
 #ifndef _LIBCPP_ABI_VERSION
 #  define _LIBCPP_ABI_VERSION 1
diff --git a/libcxx/include/__libcpp_version b/libcxx/include/__libcpp_version
index d58c55a3..5caff40 100644
--- a/libcxx/include/__libcpp_version
+++ b/libcxx/include/__libcpp_version
@@ -1 +1 @@
-9000
+10000
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index b51922a..440141c 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -83,7 +83,7 @@
   endif()
 
   set(PACKAGE_NAME libunwind)
-  set(PACKAGE_VERSION 9.0.0svn)
+  set(PACKAGE_VERSION 10.0.0svn)
   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
   set(PACKAGE_BUGREPORT "llvm-bugs@lists.llvm.org")
 
diff --git a/libunwind/docs/conf.py b/libunwind/docs/conf.py
index 704a1d0..44935b6 100644
--- a/libunwind/docs/conf.py
+++ b/libunwind/docs/conf.py
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '9.0'
+version = '10.0'
 # The full version, including alpha/beta/rc tags.
-release = '9.0'
+release = '10.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/lld/docs/ReleaseNotes.rst b/lld/docs/ReleaseNotes.rst
index 76207fe..520a9fe 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -1,19 +1,19 @@
-=======================
-lld 9.0.0 Release Notes
-=======================
+========================
+lld 10.0.0 Release Notes
+========================
 
 .. contents::
     :local:
 
 .. warning::
-   These are in-progress notes for the upcoming LLVM 9.0.0 release.
+   These are in-progress notes for the upcoming LLVM 10.0.0 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
 Introduction
 ============
 
-This document contains the release notes for the lld linker, release 9.0.0.
+This document contains the release notes for the lld linker, release 10.0.0.
 Here we describe the status of lld, including major improvements
 from the previous release. All lld releases may be downloaded
 from the `LLVM releases web site <https://llvm.org/releases/>`_.
@@ -24,43 +24,17 @@
 ELF Improvements
 ----------------
 
-* ld.lld now has typo suggestions for flags:
-  ``$ ld.lld --call-shared`` now prints
-  ``unknown argument '--call-shared', did you mean '--call_shared'``.
-
 * ...
 
 COFF Improvements
 -----------------
 
-* Like the ELF driver, lld-link now has typo suggestions for flags.
-
-* lld-link now correctly reports duplicate symbol errors for obj files
-  that were compiled with /Gy.
-
-* lld-link now correctly reports duplicate symbol errors when several res
-  input files define resources with the same type, name, and language.
-  This can be demoted to a warning using ``/force:multipleres``.
-
-* Having more than two ``/natvis:`` now works correctly; it used to not
-  work for larger binaries before.
-
-* Undefined symbols are now printed only in demangled form. Pass
-  ``/demangle:no`` to see raw symbol names instead.
-
-* The following flags have been added: ``/functionpadmin``, ``/swaprun:``,
-  ``/threads:no``
-
-* Several speed and memory usage improvements.
-
 * ...
 
 MinGW Improvements
 ------------------
 
-* lld now correctly links crtend.o as the last object file, handling
-  terminators for the sections such as .eh_frame properly, fixing
-  DWARF exception handling with libgcc and gcc's crtend.o.
+* ...
 
 MachO Improvements
 ------------------
diff --git a/lld/docs/conf.py b/lld/docs/conf.py
index dd65859..9ce16f0 100644
--- a/lld/docs/conf.py
+++ b/lld/docs/conf.py
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short version.
-version = '9'
+version = '10'
 # The full version, including alpha/beta/rc tags.
-release = '9'
+release = '10'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index b8eb198..32cb5c2 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -16,7 +16,7 @@
 endif()
 
 if(NOT DEFINED LLVM_VERSION_MAJOR)
-  set(LLVM_VERSION_MAJOR 9)
+  set(LLVM_VERSION_MAJOR 10)
 endif()
 if(NOT DEFINED LLVM_VERSION_MINOR)
   set(LLVM_VERSION_MINOR 0)
diff --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst
index ebf2c8d..169a713 100644
--- a/llvm/docs/ReleaseNotes.rst
+++ b/llvm/docs/ReleaseNotes.rst
@@ -1,12 +1,12 @@
-========================
-LLVM 9.0.0 Release Notes
-========================
+=========================
+LLVM 10.0.0 Release Notes
+=========================
 
 .. contents::
     :local:
 
 .. warning::
-   These are in-progress notes for the upcoming LLVM 9 release.
+   These are in-progress notes for the upcoming LLVM 10 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
@@ -15,7 +15,7 @@
 ============
 
 This document contains the release notes for the LLVM Compiler Infrastructure,
-release 9.0.0.  Here we describe the status of LLVM, including major improvements
+release 10.0.0.  Here we describe the status of LLVM, including major improvements
 from the previous release, improvements in various subprojects of LLVM, and
 some of the current users of the code.  All LLVM releases may be downloaded
 from the `LLVM releases web site <https://llvm.org/releases/>`_.
@@ -40,15 +40,6 @@
    functionality, or simply have a lot to talk about), see the `NOTE` below
    for adding a new subsection.
 
-* The optimizer will now convert calls to ``memcmp`` into a calls to ``bcmp`` in
-  some circumstances. Users who are building freestanding code (not depending on
-  the platform's libc) without specifying ``-ffreestanding`` may need to either
-  pass ``-fno-builtin-bcmp``, or provide a ``bcmp`` function.
-
-* Two new extension points, namely ``EP_FullLinkTimeOptimizationEarly`` and
-  ``EP_FullLinkTimeOptimizationLast`` are available for plugins to specialize
-  the legacy pass manager full LTO pipeline.
-
 .. NOTE
    If you would like to document a larger change, then you can add a
    subsection about it right here. You can copy the following boilerplate
@@ -62,30 +53,9 @@
 Changes to the LLVM IR
 ----------------------
 
-* Added ``immarg`` parameter attribute. This indicates an intrinsic
-  parameter is required to be a simple constant. This annotation must
-  be accurate to avoid possible miscompiles.
-
-* The 2-field form of global variables ``@llvm.global_ctors`` and
-  ``@llvm.global_dtors`` has been deleted. The third field of their element
-  type is now mandatory. Specify `i8* null` to migrate from the obsoleted
-  2-field form.
-
-* The ``byval`` attribute can now take a type parameter:
-  ``byval(<ty>)``. If present it must be identical to the argument's
-  pointee type. In the next release we intend to make this parameter
-  mandatory in preparation for opaque pointer types.
-
-* ``atomicrmw xchg`` now allows floating point types
-
-* ``atomicrmw`` now supports ``fadd`` and ``fsub``
-
 Changes to building LLVM
 ------------------------
 
-* Building LLVM with Visual Studio now requires version 2017 or later.
-
-
 Changes to the ARM Backend
 --------------------------
 
@@ -111,14 +81,6 @@
 Changes to the AMDGPU Target
 -----------------------------
 
-* Function call support is now enabled by default
-
-* Improved support for 96-bit loads and stores
-
-* DPP combiner pass is now enabled by default
-
-* Support for gfx10
-
 Changes to the AVR Target
 -----------------------------
 
@@ -145,16 +107,8 @@
 Changes to LLDB
 ===============
 
-* Backtraces are now color highlighting in the terminal.
-
-* DWARF4 (debug_types) and DWARF5 (debug_info) type units are now supported.
-
-* This release will be the last where ``lldb-mi`` is shipped as part of LLDB.
-  The tool will still be available in a `downstream repository on GitHub
-  <https://github.com/lldb-tools/lldb-mi>`_.
-
-External Open Source Projects Using LLVM 9
-==========================================
+External Open Source Projects Using LLVM 10
+===========================================
 
 * A project...
 
diff --git a/llvm/docs/conf.py b/llvm/docs/conf.py
index 4a52df8..a0357cf 100644
--- a/llvm/docs/conf.py
+++ b/llvm/docs/conf.py
@@ -51,9 +51,9 @@
 # built documents.
 #
 # The short version.
-version = '9'
+version = '10'
 # The full version, including alpha/beta/rc tags.
-release = '9'
+release = '10'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/llvm/utils/gn/secondary/llvm/version.gni b/llvm/utils/gn/secondary/llvm/version.gni
index fd448d9..39961ef 100644
--- a/llvm/utils/gn/secondary/llvm/version.gni
+++ b/llvm/utils/gn/secondary/llvm/version.gni
@@ -1,4 +1,4 @@
-llvm_version_major = 9
+llvm_version_major = 10
 llvm_version_minor = 0
 llvm_version_patch = 0
 llvm_version = "$llvm_version_major.$llvm_version_minor.$llvm_version_patch"
diff --git a/llvm/utils/release/build_llvm_package.bat b/llvm/utils/release/build_llvm_package.bat
index 580708e..dcde9f3 100755
--- a/llvm/utils/release/build_llvm_package.bat
+++ b/llvm/utils/release/build_llvm_package.bat
@@ -26,8 +26,8 @@
 
 set revision=%1
 set branch=trunk
-set package_version=9.0.0-r%revision%
-set clang_format_vs_version=9.0.0.%revision%
+set package_version=10.0.0-r%revision%
+set clang_format_vs_version=10.0.0.%revision%
 set build_dir=llvm_package_%revision%
 
 echo Branch: %branch%
diff --git a/polly/docs/ReleaseNotes.rst b/polly/docs/ReleaseNotes.rst
index a9e8c98..1d9aacc 100644
--- a/polly/docs/ReleaseNotes.rst
+++ b/polly/docs/ReleaseNotes.rst
@@ -1,8 +1,8 @@
-============================
-Release Notes 9.0 (upcoming)
-============================
+=============================
+Release Notes 10.0 (upcoming)
+=============================
 
-In Polly 9 the following important changes have been incorporated.
+In Polly 10 the following important changes have been incorporated.
 
 .. warning::
 
diff --git a/polly/docs/conf.py b/polly/docs/conf.py
index a881b91..2449b03 100644
--- a/polly/docs/conf.py
+++ b/polly/docs/conf.py
@@ -49,9 +49,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '9.0-devel'
+version = '10.0-devel'
 # The full version, including alpha/beta/rc tags.
-release = '9.0-devel'
+release = '10.0-devel'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/pstl/docs/ReleaseNotes.rst b/pstl/docs/ReleaseNotes.rst
index b889c55..dd707ec 100644
--- a/pstl/docs/ReleaseNotes.rst
+++ b/pstl/docs/ReleaseNotes.rst
@@ -1,6 +1,6 @@
-========================================
-PSTL 9.0.0 (In-Progress) Release Notes
-========================================
+=======================================
+PSTL 10.0.0 (In-Progress) Release Notes
+=======================================
 
 .. contents::
    :local:
@@ -10,7 +10,7 @@
 
 .. warning::
 
-   These are in-progress notes for the upcoming pstl 9 release.
+   These are in-progress notes for the upcoming pstl 10 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
@@ -18,7 +18,7 @@
 ============
 
 This document contains the release notes for the PSTL parallel algorithms
-library, part of the LLVM Compiler Infrastructure, release 9.0.0. Here we
+library, part of the LLVM Compiler Infrastructure, release 10.0.0. Here we
 describe the status of the library in some detail, including major improvements
 from the previous release and new feature work. For the general LLVM release
 notes, see `the LLVM documentation <https://llvm.org/docs/ReleaseNotes.html>`_.
@@ -30,8 +30,8 @@
 To see the release notes for a specific release, please see the `releases
 page <https://llvm.org/releases/>`_.
 
-What's New in PSTL 9.0.0?
-=========================
+What's New in PSTL 10.0.0?
+==========================
 
 New Features
 ------------
diff --git a/pstl/include/pstl/internal/pstl_config.h b/pstl/include/pstl/internal/pstl_config.h
index 50267cf..31dd47a 100644
--- a/pstl/include/pstl/internal/pstl_config.h
+++ b/pstl/include/pstl/internal/pstl_config.h
@@ -11,7 +11,7 @@
 #define _PSTL_CONFIG_H
 
 // The version is XYYZ, where X is major, YY is minor, and Z is patch (i.e. X.YY.Z)
-#define _PSTL_VERSION 9000
+#define _PSTL_VERSION 10000
 #define _PSTL_VERSION_MAJOR (_PSTL_VERSION / 1000)
 #define _PSTL_VERSION_MINOR ((_PSTL_VERSION % 1000) / 10)
 #define _PSTL_VERSION_PATCH (_PSTL_VERSION % 10)
