diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 2960aad..0f0b8cf 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -1,5 +1,5 @@
 ====================================================
-Extra Clang Tools 12.0.0 (In-Progress) Release Notes
+Extra Clang Tools 13.0.0 (In-Progress) Release Notes
 ====================================================
 
 .. contents::
@@ -10,7 +10,7 @@
 
 .. warning::
 
-   These are in-progress notes for the upcoming Extra Clang Tools 12 release.
+   These are in-progress notes for the upcoming Extra Clang Tools 13 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 12.0.0. Here we describe the status of the Extra Clang Tools in
+Clang release 13.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,7 +32,7 @@
 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 12.0.0?
+What's New in Extra Clang Tools 13.0.0?
 =======================================
 
 Some of the major new features and improvements to Extra Clang Tools are listed
@@ -47,17 +47,7 @@
 Improvements to clangd
 ----------------------
 
-- clangd's memory usage is significantly reduced on most Linux systems.
-  In particular, memory usage should not increase dramatically over time.
-
-  The standard allocator on most systems is glibc's ptmalloc2, and it creates
-  disproportionately large heaps when handling clangd's allocation patterns.
-  By default, clangd will now periodically call ``malloc_trim`` to release free
-  pages on glibc systems.
-
-  Users of other allocators (such as ``jemalloc`` or ``tcmalloc``) on glibc
-  systems can disable this using ``--malloc_trim=0`` or the CMake flag
-  ``-DCLANGD_MALLOC_TRIM=0``.
+The improvements are...
 
 Improvements to clang-doc
 -------------------------
@@ -67,7 +57,7 @@
 Improvements to clang-query
 ---------------------------
 
-- The IgnoreImplicitCastsAndParentheses traversal mode has been removed.
+The improvements are...
 
 Improvements to clang-rename
 ----------------------------
@@ -77,123 +67,7 @@
 Improvements to clang-tidy
 --------------------------
 
-- Checks that allow configuring names of headers to include now support wrapping
-  the include in angle brackets to create a system include. For example,
-  :doc:`cppcoreguidelines-init-variables
-  <clang-tidy/checks/cppcoreguidelines-init-variables>` and
-  :doc:`modernize-make-unique <clang-tidy/checks/modernize-make-unique>`.
-
-- CheckOptions that take boolean values now support all spellings supported in 
-  the `YAML format <https://yaml.org/type/bool.html>`_.
-
-New modules
-^^^^^^^^^^^
-
-- New ``altera`` module.
-
-  Includes checks related to OpenCL for FPGA coding guidelines, based on the
-  `Altera SDK for OpenCL: Best Practices Guide
-  <https://www.altera.com/en_US/pdfs/literature/hb/opencl-sdk/aocl_optimization_guide.pdf>`_.
-
-- New ``concurrency`` module.
-
-  Includes checks related to concurrent programming (e.g. threads, fibers,
-  coroutines, etc.).
-
-New checks
-^^^^^^^^^^
-
-- New :doc:`altera-kernel-name-restriction
-  <clang-tidy/checks/altera-kernel-name-restriction>` check.
-
-  Finds kernel files and include directives whose filename is `kernel.cl`,
-  `Verilog.cl`, or `VHDL.cl`.
-
-- New :doc:`altera-single-work-item-barrier
-  <clang-tidy/checks/altera-single-work-item-barrier>` check.
-
-  Finds OpenCL kernel functions that call a barrier function but do not call
-  an ID function.
-
-- New :doc:`altera-struct-pack-align
-  <clang-tidy/checks/altera-struct-pack-align>` check.
-
-  Finds structs that are inefficiently packed or aligned, and recommends
-  packing and/or aligning of said structs as needed.
-
-- New :doc:`cppcoreguidelines-prefer-member-initializer
-  <clang-tidy/checks/cppcoreguidelines-prefer-member-initializer>` check.
-
-  Finds member initializations in the constructor body which can be placed into
-  the initialization list instead.
-
-- New :doc:`bugprone-misplaced-pointer-arithmetic-in-alloc
-  <clang-tidy/checks/bugprone-misplaced-pointer-arithmetic-in-alloc>` check.
-
-- New :doc:`bugprone-redundant-branch-condition
-  <clang-tidy/checks/bugprone-redundant-branch-condition>` check.
-
-  Finds condition variables in nested ``if`` statements that were also checked
-  in the outer ``if`` statement and were not changed.
-
-- New :doc:`concurrency-mt-unsafe <clang-tidy/checks/concurrency-mt-unsafe>`
-  check.
-
-  Finds thread-unsafe functions usage. Currently knows about POSIX and
-  Glibc function sets.
-
-- New :doc:`bugprone-signal-handler
-  <clang-tidy/checks/bugprone-signal-handler>` check.
-
-  Finds functions registered as signal handlers that call non asynchronous-safe
-  functions.
-
-- New :doc:`cert-sig30-c
-  <clang-tidy/checks/cert-sig30-c>` check.
-
-  Alias to the :doc:`bugprone-signal-handler
-  <clang-tidy/checks/bugprone-signal-handler>` check.
-
-- New :doc:`performance-no-int-to-ptr
-  <clang-tidy/checks/performance-no-int-to-ptr>` check.
-
-  Diagnoses every integer to pointer cast.
-
-- New :doc:`readability-function-cognitive-complexity
-  <clang-tidy/checks/readability-function-cognitive-complexity>` check.
-
-  Flags functions with Cognitive Complexity metric exceeding the configured limit.
-
-Changes in existing checks
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-- Improved :doc:`modernize-loop-convert
-  <clang-tidy/checks/modernize-loop-convert>` check.
-
-  Now able to transform iterator loops using ``rbegin`` and ``rend`` methods.
-
-- Improved :doc:`readability-identifier-naming
-  <clang-tidy/checks/readability-identifier-naming>` check.
-
-  Added an option `GetConfigPerFile` to support including files which use
-  different naming styles.
-
-  Now renames overridden virtual methods if the method they override has a
-  style violation.
-  
-  Added support for specifying the style of scoped ``enum`` constants. If 
-  unspecified, will fall back to the style for regular ``enum`` constants.
-
-  Added an option `IgnoredRegexp` per identifier type to suppress identifier
-  naming checks for names matching a regular expression.
-
-- Removed `google-runtime-references` check because the rule it checks does
-  not exist in the Google Style Guide anymore.
-
-- Improved :doc:`readability-redundant-string-init
-  <clang-tidy/checks/readability-redundant-string-init>` check.
-
-  Added `std::basic_string_view` to default list of ``string``-like types.
+The improvements are...
 
 Improvements to include-fixer
 -----------------------------
diff --git a/clang-tools-extra/docs/conf.py b/clang-tools-extra/docs/conf.py
index a7579d5..be67b57 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 = '12'
+version = '13'
 # The full version, including alpha/beta/rc tags.
-release = '12'
+release = '13'
 
 # 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 3001d6f..b0c6c66 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -1,5 +1,5 @@
 ========================================
-Clang 12.0.0 (In-Progress) Release Notes
+Clang 13.0.0 (In-Progress) Release Notes
 ========================================
 
 .. contents::
@@ -10,7 +10,7 @@
 
 .. warning::
 
-   These are in-progress notes for the upcoming Clang 12 release.
+   These are in-progress notes for the upcoming Clang 13 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 12.0.0. Here we
+frontend, part of the LLVM Compiler Infrastructure, release 13.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,7 +35,7 @@
 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 12.0.0?
+What's New in Clang 13.0.0?
 ===========================
 
 Some of the major new features and improvements to Clang are listed
@@ -56,84 +56,27 @@
 Non-comprehensive list of changes in this release
 -------------------------------------------------
 
-- The builtin intrinsics ``__builtin_bitreverse8``, ``__builtin_bitreverse16``,
-  ``__builtin_bitreverse32`` and ``__builtin_bitreverse64`` may now be used
-  within constant expressions.
-
-- The builtin intrinsics ``__builtin_rotateleft8``, ``__builtin_rotateleft16``,
-  ``__builtin_rotateleft32`` and ``__builtin_rotateleft64`` may now be used
-  within constant expressions.
-
-- The builtin intrinsics ``__builtin_rotateright8``, ``__builtin_rotateright16``,
-  ``__builtin_rotateright32`` and ``__builtin_rotateright64`` may now be used
-  within constant expressions.
+- ...
 
 New Compiler Flags
 ------------------
 
 - ...
 
-- -fpch-codegen and -fpch-debuginfo generate shared code and/or debuginfo
-  for contents of a precompiled header in a separate object file. This object
-  file needs to be linked in, but its contents do not need to be generated
-  for other objects using the precompiled header. This should usually save
-  compile time. If not using clang-cl, the separate object file needs to
-  be created explicitly from the precompiled header.
-  Example of use:
-
-  .. code-block:: console
-
-    $ clang++ -x c++-header header.h -o header.pch -fpch-codegen -fpch-debuginfo
-    $ clang++ -c header.pch -o shared.o
-    $ clang++ -c source.cpp -o source.o -include-pch header.pch
-    $ clang++ -o binary source.o shared.o
-
-  - Using -fpch-instantiate-templates when generating the precompiled header
-    usually increases the amount of code/debuginfo that can be shared.
-  - In some cases, especially when building with optimizations enabled, using
-    -fpch-codegen may generate so much code in the shared object that compiling
-    it may be a net loss in build time.
-  - Since headers may bring in private symbols of other libraries, it may be
-    sometimes necessary to discard unused symbols (such as by adding
-    -Wl,--gc-sections on ELF platforms to the linking command, and possibly
-    adding -fdata-sections -ffunction-sections to the command generating
-    the shared object).
-- New option ``-fbinutils-version=`` specifies the targeted binutils version.
-  For example, ``-fbinutils-version=2.35`` means compatibility with GNU as/ld
-  before 2.35 is not needed: new features can be used and there is no need to
-  work around old GNU as/ld bugs.
-
 Deprecated Compiler Flags
 -------------------------
 
-The following options are deprecated and ignored. They will be removed in
-future versions of Clang.
-
 - ...
 
 Modified Compiler Flags
 -----------------------
 
-- On ELF, ``-gz`` now defaults to ``-gz=zlib`` with the integrated assembler.
-  It produces ``SHF_COMPRESSED`` style compression of debug information. GNU
-  binutils 2.26 or newer, or lld is required to link produced object files. Use
-  ``-gz=zlib-gnu`` to get the old behavior.
-- Now that `this` pointers are tagged with `nonnull` and `dereferenceable(N)`,
-  `-fno-delete-null-pointer-checks` has gained the power to remove the
-  `nonnull` attribute on `this` for configurations that need it to be nullable.
-- ``-gsplit-dwarf`` no longer implies ``-g2``.
-- ``-fasynchronous-unwind-tables`` is now the default on Linux AArch64/PowerPC.
-  This behavior matches newer GCC.
-  (`D91760 <https://reviews.llvm.org/D91760>`_)
-  (`D92054 <https://reviews.llvm.org/D92054>`_)
+- ...
 
 Removed Compiler Flags
 -------------------------
 
-The following options no longer exist.
-
-- clang-cl's ``/Zd`` flag no longer exist. But ``-gline-tables-only`` still
-  exists and does the same thing.
+- ...
 
 New Pragmas in Clang
 --------------------
@@ -143,9 +86,7 @@
 Attribute Changes in Clang
 --------------------------
 
-- Added support for the C++20 likelihood attributes ``[[likely]]`` and
-  ``[[unlikely]]``. As an extension they can be used in C++11 and newer.
-  This extension is enabled by default.
+- ...
 
 Windows Support
 ---------------
@@ -188,49 +129,12 @@
 X86 Support in Clang
 --------------------
 
-- The x86 intrinsics ``_mm_popcnt_u32``, ``_mm_popcnt_u64``, ``_popcnt32``,
-  ``_popcnt64``, ``__popcntd`` and ``__popcntq``  may now be used within
-  constant expressions.
-
-- The x86 intrinsics ``_bit_scan_forward``, ``__bsfd`` and ``__bsfq`` may now
-  be used within constant expressions.
-
-- The x86 intrinsics ``_bit_scan_reverse``, ``__bsrd`` and ``__bsrq`` may now
-  be used within constant expressions.
-
-- The x86 intrinsics ``__bswap``, ``__bswapd``, ``__bswap64`` and ``__bswapq``
-  may now be used within constant expressions.
-
-- The x86 intrinsics ``_castf32_u32``, ``_castf64_u64``, ``_castu32_f32`` and
-  ``_castu64_f64`` may now be used within constant expressions.
-
-- The x86 intrinsics ``__rolb``, ``__rolw``, ``__rold``, ``__rolq`, ``_rotl``,
-  ``_rotwl`` and ``_lrotl`` may now be used within constant expressions.
-
-- The x86 intrinsics ``__rorb``, ``__rorw``, ``__rord``, ``__rorq`, ``_rotr``,
-  ``_rotwr`` and ``_lrotr`` may now be used within constant expressions.
-
-- Support for ``-march=alderlake``, ``-march=sapphirerapids`` and
-  ``-march=znver3`` was added.
-
-- Support for ``-march=x86-64-v[234]`` has been added.
-  See :doc:`UsersManual` for details about these micro-architecture levels.
-
-- The -mtune command line option is no longer ignored for X86. This can be used
-  to request microarchitectural optimizations independent on -march. -march=<cpu>
-  implies -mtune=<cpu>. -mtune=generic is the default with no -march or -mtune
-  specified.
-
-- Support for ``HRESET`` instructions has been added.
-
-- Support for ``UINTR`` instructions has been added.
-
-- Support for ``AVXVNNI`` instructions has been added.
+- ...
 
 Internal API Changes
 --------------------
 
-These are major API changes that have happened since the 11.0.0 release of
+These are major API changes that have happened since the 12.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.
 
@@ -239,7 +143,7 @@
 Build System Changes
 --------------------
 
-These are major changes to the build system that have happened since the 11.0.0
+These are major changes to the build system that have happened since the 12.0.0
 release of Clang. Users of the build system should adjust accordingly.
 
 - ...
@@ -247,68 +151,12 @@
 AST Matchers
 ------------
 
-- The behavior of TK_IgnoreUnlessSpelledInSource with the traverse() matcher
-  has been changed to no longer match on template instantiations or on
-  implicit nodes which are not spelled in the source.
-
-- The TK_IgnoreImplicitCastsAndParentheses traversal kind was removed. It
-  is recommended to use TK_IgnoreUnlessSpelledInSource instead.
-
-- The behavior of the forEach() matcher was changed to not internally ignore
-  implicit and parenthesis nodes.
+- ...
 
 clang-format
 ------------
 
-- Option ``BitFieldColonSpacing`` has been added that decides how
-  space should be added around identifier, colon and bit-width in
-  bitfield definitions.
-
-  .. code-block:: c++
-
-    // Both (default)
-    struct F {
-      unsigned dscp : 6;
-      unsigned ecn  : 2; // AlignConsecutiveBitFields=true
-    };
-    // None
-    struct F {
-      unsigned dscp:6;
-      unsigned ecn :2;
-    };
-    // Before
-    struct F {
-      unsigned dscp :6;
-      unsigned ecn  :2;
-    };
-    // After
-    struct F {
-      unsigned dscp: 6;
-      unsigned ecn : 2;
-    };
-
-
-- Experimental Support in clang-format for concepts has been improved, to
-  aid this the follow options have been added
-
-- Option ``IndentRequires`` has been added to indent the ``requires`` keyword
-  in templates.
-
-- Option ``BreakBeforeConceptDeclarations`` has been added to aid the formatting of concepts.
-
-- Option ``IndentPragmas`` has been added to allow #pragma to indented with the current scope
-  level. This is especially useful when using #pragma to mark OpenMP sections of code.
-
-- Option ``SpaceBeforeCaseColon`` has been added to add a space before the
-  colon in a case or default statement.
-
-- Option ``StatementAttributeLikeMacros`` has been added to declare
-  macros which are not parsed as a type in front of a statement. See
-  the documentation for an example.
-
-- Options ``AlignConsecutiveAssignments``, ``AlignConsecutiveBitFields``,
-  ``AlignConsecutiveDeclarations`` and ``AlignConsecutiveMacros`` have been modified to allow
-  alignment across empty lines and/or comments.
+- ...
 
 libclang
 --------
diff --git a/clang/docs/analyzer/conf.py b/clang/docs/analyzer/conf.py
index 4fa65b2..1742a7f 100644
--- a/clang/docs/analyzer/conf.py
+++ b/clang/docs/analyzer/conf.py
@@ -49,9 +49,9 @@
 # built documents.
 #
 # The short version.
-version = '12'
+version = '13'
 # The full version, including alpha/beta/rc tags.
-release = '12'
+release = '13'
 
 # 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 4e7e8f9..43f7cbb 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -29,7 +29,7 @@
   project(libcxx CXX C)
 
   set(PACKAGE_NAME libcxx)
-  set(PACKAGE_VERSION 12.0.0git)
+  set(PACKAGE_VERSION 13.0.0git)
   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 696275e..00ada48 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -1,5 +1,5 @@
 =========================================
-Libc++ 12.0.0 (In-Progress) Release Notes
+Libc++ 13.0.0 (In-Progress) Release Notes
 =========================================
 
 .. contents::
@@ -10,7 +10,7 @@
 
 .. warning::
 
-   These are in-progress notes for the upcoming libc++ 12 release.
+   These are in-progress notes for the upcoming libc++ 13 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 12.0.0. Here we describe the
+part of the LLVM Compiler Infrastructure, release 13.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,56 +32,15 @@
 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++ 12.0.0?
+What's New in Libc++ 13.0.0?
 ============================
 
 New Features
 ------------
-- Random device support has been made optional. It's enabled by default and can
-  be disabled by building libc++ with ``-DLIBCXX_ENABLE_RANDOM_DEVICE=OFF``.
-  Disabling random device support can be useful when building the library for
-  platforms that don't have a source of randomness, such as some embedded
-  platforms. When this is not supported, most of ``<random>`` will still be
-  available, but ``std::random_device`` will not.
-- Localization support has been made optional. It's enabled by default and can
-  be disabled by building libc++ with ``-DLIBCXX_ENABLE_LOCALIZATION=OFF``.
-  Disabling localization can be useful when porting to platforms that don't
-  support the C locale API (e.g. embedded). When localization is not
-  supported, several parts of the library will be disabled: ``<iostream>``,
-  ``<regex>``, ``<locale>`` will be completely unusable, and other parts may be
-  only partly available.
-- If libc++ is compiled with a C++20 capable compiler it will be compiled in
-  C++20 mode. Else libc++ will be compiled in C++17 mode.
-- Several unqualified lookups in libc++ have been changed to qualified lookups.
-  This makes libc++ more ADL-proof.
-- The libc++ implementation status pages have been overhauled. Like other parts
-  documentation they now use restructured text instead of html. Starting with
-  libc++12 the status pages are part of libc++'s documentation.
-- More C++20 features have been implemented. :doc:`Cxx2aStatus` has the full
-  overview of libc++'s C++20 implementation status.
-- Work has started to implement new C++2b features. :doc:`Cxx2bStatus` has the
-  full overview of libc++'s C++2b implementation status.
 
+- ...
 
 API Changes
 -----------
-- By default, libc++ will _not_ include the definition for new and delete,
-  since those are provided in libc++abi. Vendors wishing to provide new and
-  delete in libc++ can build the library with ``-DLIBCXX_ENABLE_NEW_DELETE_DEFINITIONS=ON``
-  to get back the old behavior. This was done to avoid providing new and delete
-  in both libc++ and libc++abi, which is technically an ODR violation. Also
-  note that we couldn't decide to put the operators in libc++ only, because
-  they are needed from libc++abi (which would create a circular dependency).
-- During the C++20 standardization process some new low-level bit functions
-  have been renamed. Libc++ has renamed these functions to match the C++20
-  Standard.
-  - ``ispow2`` has been renamed to ``has_single_bit``
-  - ``ceil2`` has been renamed to ``bit_ceil``
-  - ``floor2`` has been renamed to ``bit_floor``
-  - ``log2p1`` has been renamed to ``bit_width``
 
-- In C++20 mode, ``std::filesystem::path::u8string()`` and
-  ``generic_u8string()`` now return ``std::u8string`` according to P0428,
-  while they return ``std::string`` in C++17. This can cause source
-  incompatibility, which is discussed and acknowledged in P1423, but that
-  paper doesn't suggest any remediation for this incompatibility.
+- ...
diff --git a/libcxx/docs/conf.py b/libcxx/docs/conf.py
index 95cd98b..c58b187 100644
--- a/libcxx/docs/conf.py
+++ b/libcxx/docs/conf.py
@@ -47,9 +47,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '12.0'
+version = '13.0'
 # The full version, including alpha/beta/rc tags.
-release = '12.0'
+release = '13.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 a3838c8..cd1f4da 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -32,7 +32,7 @@
 #  define _GNUC_VER_NEW 0
 #endif
 
-#define _LIBCPP_VERSION 12000
+#define _LIBCPP_VERSION 13000
 
 #ifndef _LIBCPP_ABI_VERSION
 #  define _LIBCPP_ABI_VERSION 1
diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index 8ae32fb..05131bd 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -24,7 +24,7 @@
   project(libunwind LANGUAGES C CXX ASM)
 
   set(PACKAGE_NAME libunwind)
-  set(PACKAGE_VERSION 12.0.0git)
+  set(PACKAGE_VERSION 13.0.0git)
   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 6217ead..07ffba7 100644
--- a/libunwind/docs/conf.py
+++ b/libunwind/docs/conf.py
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '12.0'
+version = '13.0'
 # The full version, including alpha/beta/rc tags.
-release = '12.0'
+release = '13.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 e0b17ca..3684e99 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -1,19 +1,19 @@
 ========================
-lld 12.0.0 Release Notes
+lld 13.0.0 Release Notes
 ========================
 
 .. contents::
     :local:
 
 .. warning::
-   These are in-progress notes for the upcoming LLVM 12.0.0 release.
+   These are in-progress notes for the upcoming LLVM 13.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 12.0.0.
+This document contains the release notes for the lld linker, release 13.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,8 +24,7 @@
 ELF Improvements
 ----------------
 
-* ``--error-handling-script`` is added to allow for user-defined handlers upon
-  missing libraries. (`D87758 <https://reviews.llvm.org/D87758>`_)
+* ...
 
 Breaking changes
 ----------------
diff --git a/lld/docs/conf.py b/lld/docs/conf.py
index da03afe..2df1aa7 100644
--- a/lld/docs/conf.py
+++ b/lld/docs/conf.py
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short version.
-version = '12'
+version = '13'
 # The full version, including alpha/beta/rc tags.
-release = '12'
+release = '13'
 
 # 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 454ec56..40be7a8 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -5,7 +5,7 @@
 set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR ON)
 
 if(NOT DEFINED LLVM_VERSION_MAJOR)
-  set(LLVM_VERSION_MAJOR 12)
+  set(LLVM_VERSION_MAJOR 13)
 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 de8431f..5def448 100644
--- a/llvm/docs/ReleaseNotes.rst
+++ b/llvm/docs/ReleaseNotes.rst
@@ -1,12 +1,12 @@
 =========================
-LLVM 12.0.0 Release Notes
+LLVM 13.0.0 Release Notes
 =========================
 
 .. contents::
     :local:
 
 .. warning::
-   These are in-progress notes for the upcoming LLVM 12 release.
+   These are in-progress notes for the upcoming LLVM 13 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 12.0.0.  Here we describe the status of LLVM, including major improvements
+release 13.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,9 +40,6 @@
    functionality, or simply have a lot to talk about), see the `NOTE` below
    for adding a new subsection.
 
-* The ConstantPropagation pass was removed. Users should use the InstSimplify
-  pass instead.
-
 
 .. NOTE
    If you would like to document a larger change, then you can add a
@@ -60,38 +57,13 @@
 
 * ...
 
-* Added the ``byref`` attribute to better represent argument passing
-  for the `amdgpu_kernel` calling convention.
-
-* Added type parameter to the ``sret`` attribute to continue work on
-  removing pointer element types.
-
-* The ``llvm.experimental.vector.reduce`` family of intrinsics have been renamed
-  to drop the "experimental" from the name, reflecting their now fully supported
-  status in the IR.
-
 
 Changes to building LLVM
 ------------------------
 
-* The internal ``llvm-build`` Python script and the associated ``LLVMBuild.txt``
-  files used to describe the LLVM component structure have been removed and
-  replaced by a pure ``CMake`` approach, where each component stores extra
-  properties in the created targets. These properties are processed once all
-  components are defined to resolve library dependencies and produce the header
-  expected by llvm-config.
-
 Changes to TableGen
 -------------------
 
-* The new "TableGen Programmer's Reference" replaces the "TableGen Language
-  Introduction" and "TableGen Language Reference" documents.
-
-* The syntax for specifying an integer range in a range list has changed.
-  The old syntax used a hyphen in the range (e.g., ``{0-9}``). The new syntax
-  uses the "`...`" range punctuation (e.g., ``{0...9}``). The hyphen syntax
-  is deprecated.
-
 Changes to the ARM Backend
 --------------------------
 
@@ -113,31 +85,11 @@
 
 During this release ...
 
-* The 'mpx' feature was removed from the backend. It had been removed from clang
-  frontend in 10.0. Mention of the 'mpx' feature in an IR file will print a
-  message to stderr, but IR should still compile.
-* Support for ``-march=alderlake``, ``-march=sapphirerapids``,
-  ``-march=znver3`` and ``-march=x86-64-v[234]`` has been added.
-* The assembler now has support for {disp32} and {disp8} pseudo prefixes for
-  controlling displacement size for memory operands and jump displacements. The
-  assembler also supports the .d32 and .d8 mnemonic suffixes to do the same.
-* A new function attribute "tune-cpu" has been added to support -mtune like gcc.
-  This allows microarchitectural optimizations to be applied independent from
-  the "target-cpu" attribute or TargetMachine CPU which will be used to select
-  Instruction Set. If the attribute is not present, the tune CPU will follow
-  the target CPU.
-* Support for ``HRESET`` instructions has been added.
-* Support for ``UINTR`` instructions has been added.
-* Support for ``AVXVNNI`` instructions has been added.
-
 Changes to the AMDGPU Target
 -----------------------------
 
 During this release ...
 
-* The new ``byref`` attribute is now the preferred method for
-  representing aggregate kernel arguments.
-
 Changes to the AVR Target
 -----------------------------
 
@@ -169,38 +121,16 @@
 
 During this release ...
 
-* The DIModule metadata is extended with a field to indicate if it is a
-  module declaration. This extension enables the emission of debug info
-  for a Fortran 'use <external module>' statement. For more information
-  on what the debug info entries should look like and how the debugger
-  can use them, please see test/DebugInfo/X86/dimodule-external-fortran.ll.
-
 Changes to the LLVM tools
 ---------------------------------
 
-* llvm-readobj and llvm-readelf behavior has changed to report an error when
-  executed with no input files instead of reading an input from stdin.
-  Reading from stdin can still be achieved by specifying `-` as an input file.
-
-* llvm-mca supports serialization of the timeline and summary views.
-  The `--json` command line option prints a JSON representation of
-  these views to stdout.
-
 Changes to LLDB
 ---------------------------------
 
 Changes to Sanitizers
 ---------------------
 
-The integer sanitizer `-fsanitize=integer` now has a new sanitizer:
-`-fsanitize=unsigned-shift-base`. It's not undefined behavior for an unsigned
-left shift to overflow (i.e. to shift bits out), but it has been the source of
-bugs and exploits in certain codebases in the past.
-
-Many Sanitizers (asan, cfi, lsan, msan, tsan, ubsan) have support for
-musl-based Linux distributions. Some of them may be rudimentary.
-
-External Open Source Projects Using LLVM 12
+External Open Source Projects Using LLVM 13
 ===========================================
 
 * A project...
diff --git a/llvm/utils/gn/secondary/llvm/version.gni b/llvm/utils/gn/secondary/llvm/version.gni
index a66a925..39c995f 100644
--- a/llvm/utils/gn/secondary/llvm/version.gni
+++ b/llvm/utils/gn/secondary/llvm/version.gni
@@ -1,4 +1,4 @@
-llvm_version_major = 12
+llvm_version_major = 13
 llvm_version_minor = 0
 llvm_version_patch = 0
 llvm_version = "$llvm_version_major.$llvm_version_minor.$llvm_version_patch"
diff --git a/llvm/utils/lit/lit/__init__.py b/llvm/utils/lit/lit/__init__.py
index 9c2aa51..c7d1fe9 100644
--- a/llvm/utils/lit/lit/__init__.py
+++ b/llvm/utils/lit/lit/__init__.py
@@ -2,7 +2,7 @@
 
 __author__ = 'Daniel Dunbar'
 __email__ = 'daniel@minormatter.com'
-__versioninfo__ = (12, 0, 0)
+__versioninfo__ = (13, 0, 0)
 __version__ = '.'.join(str(v) for v in __versioninfo__) + 'dev'
 
 __all__ = []
diff --git a/llvm/utils/release/build_llvm_package.bat b/llvm/utils/release/build_llvm_package.bat
index 35dcd9f..be20724 100755
--- a/llvm/utils/release/build_llvm_package.bat
+++ b/llvm/utils/release/build_llvm_package.bat
@@ -27,8 +27,8 @@
 for /f "usebackq" %%i in (`PowerShell ^(Get-Date^).ToString^('yyyyMMdd'^)`) do set datestamp=%%i
 
 set revision=%1
-set package_version=12.0.0-%revision:~0,8%
-set clang_format_vs_version=12.0.0.%datestamp%
+set package_version=13.0.0-%revision:~0,8%
+set clang_format_vs_version=13.0.0.%datestamp%
 set build_dir=llvm_package_%revision:~0,8%
 
 echo Revision: %revision%
diff --git a/polly/docs/ReleaseNotes.rst b/polly/docs/ReleaseNotes.rst
index df3f7ba..5392f3d 100644
--- a/polly/docs/ReleaseNotes.rst
+++ b/polly/docs/ReleaseNotes.rst
@@ -1,8 +1,8 @@
 =============================
-Release Notes 12.0 (upcoming)
+Release Notes 13.0 (upcoming)
 =============================
 
-In Polly 12 the following important changes have been incorporated.
+In Polly 13 the following important changes have been incorporated.
 
 .. warning::
 
@@ -11,8 +11,3 @@
   branch.
 
 - Change ...
-
- * The LLVM option -polly-isl-arg was added to pass options to ISL's
-   command line option parser. For instance,
-   -polly-isl-arg=--schedule-algorithm=feautrier switches to the
-   Feautrier scheduling algorithm.
diff --git a/polly/docs/conf.py b/polly/docs/conf.py
index 31af9c6..44bb82a 100644
--- a/polly/docs/conf.py
+++ b/polly/docs/conf.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 #
 # Polly documentation build configuration file, created by
-# sphinx-quickstart on Sun Dec  9 20:01:55 2012.
+# sphinx-quickstart on Sun Dec  9 20:01:55 2013.
 #
 # This file is execfile()d with the current directory set to its containing dir.
 #
@@ -49,9 +49,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '12.0-devel'
+version = '13.0-devel'
 # The full version, including alpha/beta/rc tags.
-release = '12.0-devel'
+release = '13.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 60e1c59..f4a15b1 100644
--- a/pstl/docs/ReleaseNotes.rst
+++ b/pstl/docs/ReleaseNotes.rst
@@ -1,5 +1,5 @@
 =======================================
-PSTL 12.0.0 (In-Progress) Release Notes
+PSTL 13.0.0 (In-Progress) Release Notes
 =======================================
 
 .. contents::
@@ -10,7 +10,7 @@
 
 .. warning::
 
-   These are in-progress notes for the upcoming pstl 12 release.
+   These are in-progress notes for the upcoming pstl 13 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 12.0.0. Here we
+library, part of the LLVM Compiler Infrastructure, release 13.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,7 +30,7 @@
 To see the release notes for a specific release, please see the `releases
 page <https://llvm.org/releases/>`_.
 
-What's New in PSTL 12.0.0?
+What's New in PSTL 13.0.0?
 ==========================
 
 New Features
diff --git a/pstl/include/pstl/internal/pstl_config.h b/pstl/include/pstl/internal/pstl_config.h
index fc04b6d..88fa2d1 100644
--- a/pstl/include/pstl/internal/pstl_config.h
+++ b/pstl/include/pstl/internal/pstl_config.h
@@ -13,7 +13,7 @@
 #include <__pstl_config_site>
 
 // The version is XYYZ, where X is major, YY is minor, and Z is patch (i.e. X.YY.Z)
-#define _PSTL_VERSION 12000
+#define _PSTL_VERSION 13000
 #define _PSTL_VERSION_MAJOR (_PSTL_VERSION / 1000)
 #define _PSTL_VERSION_MINOR ((_PSTL_VERSION % 1000) / 10)
 #define _PSTL_VERSION_PATCH (_PSTL_VERSION % 10)
diff --git a/pstl/test/pstl/version.pass.cpp b/pstl/test/pstl/version.pass.cpp
index 92d06cb..596b893 100644
--- a/pstl/test/pstl/version.pass.cpp
+++ b/pstl/test/pstl/version.pass.cpp
@@ -8,8 +8,8 @@
 
 #include <pstl/internal/pstl_config.h>
 
-static_assert(_PSTL_VERSION == 12000);
-static_assert(_PSTL_VERSION_MAJOR == 12);
+static_assert(_PSTL_VERSION == 13000);
+static_assert(_PSTL_VERSION_MAJOR == 13);
 static_assert(_PSTL_VERSION_MINOR == 00);
 static_assert(_PSTL_VERSION_PATCH == 0);
 
