[libcxx-commits] [libcxx] 809855b - Bump the trunk major version to 16

Tom Stellard via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jul 26 21:40:46 PDT 2022


Author: Tom Stellard
Date: 2022-07-26T21:34:45-07:00
New Revision: 809855b56f06dd7182685f88fbbc64111df9339a

URL: https://github.com/llvm/llvm-project/commit/809855b56f06dd7182685f88fbbc64111df9339a
DIFF: https://github.com/llvm/llvm-project/commit/809855b56f06dd7182685f88fbbc64111df9339a.diff

LOG: Bump the trunk major version to 16

Added: 
    

Modified: 
    clang-tools-extra/docs/ReleaseNotes.rst
    clang/docs/ReleaseNotes.rst
    clang/docs/analyzer/conf.py
    libcxx/docs/ReleaseNotes.rst
    libcxx/docs/conf.py
    libcxx/include/__config
    libunwind/docs/conf.py
    lld/docs/ReleaseNotes.rst
    llvm/CMakeLists.txt
    llvm/docs/ReleaseNotes.rst
    llvm/utils/gn/secondary/llvm/version.gni
    llvm/utils/lit/lit/__init__.py
    openmp/docs/ReleaseNotes.rst
    pstl/docs/ReleaseNotes.rst
    pstl/include/pstl/internal/pstl_config.h
    pstl/test/pstl/version.pass.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 08eacd321d5ea..e645468016e0c 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -53,7 +53,6 @@ Inlay hints
 
 Diagnostics
 ^^^^^^^^^^^
-- Improved Fix-its of some clang-tidy checks when applied with clangd.
 
 Semantic Highlighting
 ^^^^^^^^^^^^^^^^^^^^^
@@ -97,178 +96,15 @@ The improvements are...
 Improvements to clang-tidy
 --------------------------
 
-- Added trace code to help narrow down any checks and the relevant source code
-  that result in crashes.
-
-- Clang-tidy now consideres newlines as separators of single elements in the `Checks` section in
-  `.clang-tidy` configuration files. Where previously a comma had to be used to distinguish elements in
-  this list from each other, newline characters now also work as separators in the parsed YAML. That
-  means it is advised to use YAML's block style initiated by the pipe character `|` for the `Checks`
-  section in order to benefit from the easier syntax that works without commas.
-
-- Fixed a regression introduced in clang-tidy 14.0.0, which prevented NOLINTs
-  from suppressing diagnostics associated with macro arguments. This fixes
-  `Issue 55134 <https://github.com/llvm/llvm-project/issues/55134>`_.
-
-- Added an option -verify-config which will check the config file to ensure each
-  `Checks` and `CheckOptions` entries are recognised.
-
-- .clang-tidy files can now use the more natural dictionary syntax for specifying `CheckOptions`.
-
 New checks
 ^^^^^^^^^^
 
-- New :doc:`bugprone-shared-ptr-array-mismatch <clang-tidy/checks/bugprone/shared-ptr-array-mismatch>` check.
-
-  Finds initializations of C++ shared pointers to non-array type that are initialized with an array.
-
-- New :doc:`bugprone-unchecked-optional-access
-  <clang-tidy/checks/bugprone/unchecked-optional-access>` check.
-
-  Warns when the code is unwrapping a `std::optional<T>`, `absl::optional<T>`,
-  or `base::Optional<T>` object without assuring that it contains a value.
-
-- New :doc:`misc-confusable-identifiers <clang-tidy/checks/misc/confusable-identifiers>` check.
-
-  Detects confusable Unicode identifiers.
-
-- New :doc:`bugprone-assignment-in-if-condition
-  <clang-tidy/checks/bugprone/assignment-in-if-condition>` check.
-
-  Warns when there is an assignment within an if statement condition expression.
-
-- New :doc:`misc-const-correctness
-  <clang-tidy/checks/misc/const-correctness>` check.
-
-  Detects unmodified local variables and suggest adding ``const`` if the transformation is possible.
-
-- New :doc:`modernize-macro-to-enum
-  <clang-tidy/checks/modernize/macro-to-enum>` check.
-
-  Replaces groups of adjacent macros with an unscoped anonymous enum.
-
-- New :doc:`portability-std-allocator-const <clang-tidy/checks/portability/std-allocator-const>` check.
-
-  Report use of ``std::vector<const T>`` (and similar containers of const
-  elements). These are not allowed in standard C++ due to undefined
-  ``std::allocator<const T>``. They do not compile with libstdc++ or MSVC.
-  Future libc++ will remove the extension (`D120996
-  <https://reviews.llvm.org/D120996>`).
-
 New check aliases
 ^^^^^^^^^^^^^^^^^
 
-- New alias :doc:`cppcoreguidelines-macro-to-enum
-  <clang-tidy/checks/cppcoreguidelines/macro-to-enum>` to :doc:`modernize-macro-to-enum
-  <clang-tidy/checks/modernize/macro-to-enum>` was added.
-
 Changes in existing checks
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-- Fixed nonsensical suggestion of :doc:`altera-struct-pack-align
-  <clang-tidy/checks/altera/struct-pack-align>` check for empty structs.
-
-- Fixed a false positive in :doc:`bugprone-branch-clone
-  <clang-tidy/checks/bugprone/branch-clone>` when the branches
-  involve unknown expressions.
-
-- Fixed some false positives in :doc:`bugprone-infinite-loop
-  <clang-tidy/checks/bugprone/infinite-loop>` involving dependent expressions.
-
-- Fixed a crash in :doc:`bugprone-sizeof-expression
-  <clang-tidy/checks/bugprone/sizeof-expression>` when `sizeof(...)` is
-  compared against a `__int128_t`.
-
-- Fixed bugs in :doc:`bugprone-use-after-move
-  <clang-tidy/checks/bugprone/use-after-move>`:
-
-  - Treat a move in a lambda capture as happening in the function that defines
-    the lambda, not within the body of the lambda (as we were previously doing
-    erroneously).
-
-  - Don't emit an erroneous warning on self-moves.
-
-- Improved :doc:`cert-dcl58-cpp
-  <clang-tidy/checks/cert/dcl58-cpp>` check.
-
-  The check now detects explicit template specializations that are handled specially.
-
-- Made :doc:`cert-oop57-cpp <clang-tidy/checks/cert/oop57-cpp>` more sensitive
-  by checking for an arbitrary expression in the second argument of ``memset``.
-
-- Made the fix-it of :doc:`cppcoreguidelines-init-variables
-  <clang-tidy/checks/cppcoreguidelines/init-variables>` use ``false`` to initialize
-  boolean variables.
-
-- Improved :doc:`cppcoreguidelines-prefer-member-initializer
-  <clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>` check.
-
-  Fixed an issue when there was already an initializer in the constructor and
-  the check would try to create another initializer for the same member.
-
-- Fixed a false positive in :doc:`cppcoreguidelines-virtual-class-destructor
-  <clang-tidy/checks/cppcoreguidelines/virtual-class-destructor>` involving
-  ``final`` classes. The check will not diagnose classes marked ``final``, since
-  those cannot be used as base classes, consequently, they can not violate the
-  rule.
-
-- Fixed a crash in :doc:`llvmlibc-callee-namespace
-  <clang-tidy/checks/llvmlibc/callee-namespace>` when executing for C++ code
-  that contain calls to advanced constructs, e.g. overloaded operators.
-
-- Fixed false positives in :doc:`misc-redundant-expression
-  <clang-tidy/checks/misc/redundant-expression>`:
-
-  - Fixed a false positive involving overloaded comparison operators.
-
-  - Fixed a false positive involving assignments in
-    conditions. This fixes `Issue 35853 <https://github.com/llvm/llvm-project/issues/35853>`_.
-
-- Fixed a false positive in :doc:`misc-unused-parameters
-  <clang-tidy/checks/misc/unused-parameters>`
-  where invalid parameters were implicitly being treated as being unused. 
-  This fixes `Issue 56152 <https://github.com/llvm/llvm-project/issues/56152>`_.
-
-- Fixed false positives in :doc:`misc-unused-using-decls
-  <clang-tidy/checks/misc/unused-using-decls>` where `using` statements bringing
-  operators into the scope where incorrectly marked as unused. 
-  This fixes `issue 55095 <https://github.com/llvm/llvm-project/issues/55095>`_.
-
-- Fixed a false positive in :doc:`modernize-deprecated-headers
-  <clang-tidy/checks/modernize/deprecated-headers>` involving including
-  C header files from C++ files wrapped by ``extern "C" { ... }`` blocks.
-  Such includes will be ignored by now.
-  By default now it doesn't warn for including deprecated headers from header
-  files, since that header file might be used from C source files. By passing
-  the ``CheckHeaderFile=true`` option if header files of the project only
-  included by C++ source files.
-
-- Improved :doc:`performance-inefficient-vector-operation
-  <clang-tidy/checks/performance/inefficient-vector-operation>` to work when
-  the vector is a member of a structure.
-
-- Fixed a crash in :doc:`performance-unnecessary-value-param
-  <clang-tidy/checks/performance/unnecessary-value-param>` when the specialization
-  template has an unnecessary value parameter. Removed the fix for a template.
-
-- Fixed a crash in :doc:`readability-const-return-type
-  <clang-tidy/checks/readability/const-return-type>` when a pure virtual function
-  overrided has a const return type. Removed the fix for a virtual function.
-
-- Skipped addition of extra parentheses around member accesses (``a.b``) in fix-it for
-  :doc:`readability-container-data-pointer <clang-tidy/checks/readability/container-data-pointer>`.
-
-- Fixed incorrect suggestions for :doc:`readability-container-size-empty
-  <clang-tidy/checks/readability/container-size-empty>` when smart pointers are involved.
-
-- Fixed a false positive in :doc:`readability-non-const-parameter
-  <clang-tidy/checks/readability/non-const-parameter>` when the parameter is
-  referenced by an lvalue.
-
-- Expanded :doc:`readability-simplify-boolean-expr
-  <clang-tidy/checks/readability/simplify-boolean-expr>` to simplify expressions
-  using DeMorgan's Theorem.
-
 Removed checks
 ^^^^^^^^^^^^^^
 
@@ -290,7 +126,5 @@ The improvements are...
 Improvements to pp-trace
 ------------------------
 
-- Added `HashLoc` information to `InclusionDirective` callback output.
-
 Clang-tidy Visual Studio plugin
 -------------------------------

diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 84c74335ea5d1..4f5e71e0ba808 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -47,324 +47,17 @@ sections with improvements to Clang's support for those languages.
 Major New Features
 ------------------
 
-- Clang now supports the ``-fzero-call-used-regs`` feature for x86. The purpose
-  of this feature is to limit Return-Oriented Programming (ROP) exploits and
-  information leakage. It works by zeroing out a selected class of registers
-  before function return --- e.g., all GPRs that are used within the function.
-  There is an analogous ``zero_call_used_regs`` attribute to allow for finer
-  control of this feature.
-
-- Clang now supports randomizing structure layout in C. This feature is a
-  compile-time hardening technique, making it more 
diff icult for an attacker to
-  retrieve data from structures. Specify randomization with the
-  ``randomize_layout`` attribute. The corresponding ``no_randomize_layout``
-  attribute can be used to turn the feature off.
-
-  A seed value is required to enable randomization, and is deterministic based
-  on a seed value. Use the ``-frandomize-layout-seed=`` or
-  ``-frandomize-layout-seed-file=`` flags.
-
-  .. note::
-
-      Randomizing structure layout is a C-only feature.
-
-- Clang now supports the ``-fstrict-flex-arrays=<arg>`` option to control which
-  array bounds lead to flexible array members. The option yields more accurate
-  ``__builtin_object_size`` and ``__builtin_dynamic_object_size`` results in
-  most cases but may be overly conservative for some legacy code.
-- Experimental support for HLSL has been added. The implementation is
-  incomplete and highly experimental. For more information about the ongoing
-  work to support HLSL see the `documentation
-  <https://clang.llvm.org/docs/HLSLSupport.html>`_, or the `GitHub project
-  <https://github.com/orgs/llvm/projects/4>`_.
-
 Bug Fixes
 ---------
-- ``CXXNewExpr::getArraySize()`` previously returned a ``llvm::Optional``
-  wrapping a ``nullptr`` when the ``CXXNewExpr`` did not have an array
-  size expression. This was fixed and ``::getArraySize()`` will now always
-  either return ``None`` or a ``llvm::Optional`` wrapping a valid ``Expr*``.
-  This fixes `Issue 53742 <https://github.com/llvm/llvm-project/issues/53742>`_.
-- We now ignore full expressions when traversing cast subexpressions. This
-  fixes `Issue 53044 <https://github.com/llvm/llvm-project/issues/53044>`_.
-- Allow ``-Wno-gnu`` to silence GNU extension diagnostics for pointer
-  arithmetic diagnostics. Fixes `Issue 54444
-  <https://github.com/llvm/llvm-project/issues/54444>`_.
-- Placeholder constraints, as in ``Concept auto x = f();``, were not checked
-  when modifiers like ``auto&`` or ``auto**`` were added. These constraints are
-  now checked.
-  This fixes  `Issue 53911 <https://github.com/llvm/llvm-project/issues/53911>`_
-  and  `Issue 54443 <https://github.com/llvm/llvm-project/issues/54443>`_.
-- Previously invalid member variables with template parameters would crash clang.
-  Now fixed by setting identifiers for them.
-  This fixes `Issue 28475 (PR28101) <https://github.com/llvm/llvm-project/issues/28475>`_.
-- Now allow the ``restrict`` and ``_Atomic`` qualifiers to be used in
-  conjunction with ``__auto_type`` to match the behavior in GCC. This fixes
-  `Issue 53652 <https://github.com/llvm/llvm-project/issues/53652>`_.
-- No longer crash when specifying a variably-modified parameter type in a
-  function with the ``naked`` attribute. This fixes
-  `Issue 50541 <https://github.com/llvm/llvm-project/issues/50541>`_.
-- Allow multiple ``#pragma weak`` directives to name the same undeclared (if an
-  alias, target) identifier instead of only processing one such ``#pragma weak``
-  per identifier.
-  Fixes `Issue 28985 <https://github.com/llvm/llvm-project/issues/28985>`_.
-- Assignment expressions in C11 and later mode now properly strip the _Atomic
-  qualifier when determining the type of the assignment expression. Fixes
-  `Issue 48742 <https://github.com/llvm/llvm-project/issues/48742>`_.
-- Improved the diagnostic when accessing a member of an atomic structure or
-  union object in C; was previously an unhelpful error, but now issues a
-  ``-Watomic-access`` warning which defaults to an error. Fixes
-  `Issue 54563 <https://github.com/llvm/llvm-project/issues/54563>`_.
-- Unevaluated lambdas in dependant contexts no longer result in clang crashing.
-  This fixes Issues `50376 <https://github.com/llvm/llvm-project/issues/50376>`_,
-  `51414 <https://github.com/llvm/llvm-project/issues/51414>`_,
-  `51416 <https://github.com/llvm/llvm-project/issues/51416>`_,
-  and `51641 <https://github.com/llvm/llvm-project/issues/51641>`_.
-- The builtin function __builtin_dump_struct would crash clang when the target
-  struct contains a bitfield. It now correctly handles bitfields.
-  This fixes Issue `Issue 54462 <https://github.com/llvm/llvm-project/issues/54462>`_.
-- Statement expressions are now disabled in default arguments in general.
-  This fixes Issue `Issue 53488 <https://github.com/llvm/llvm-project/issues/53488>`_.
-- According to `CWG 1394 <https://wg21.link/cwg1394>`_ and
-  `C++20 [dcl.fct.def.general]p2 <https://timsong-cpp.github.io/cppwp/n4868/dcl.fct.def#general-2.sentence-3>`_,
-  Clang should not diagnose incomplete types in function definitions if the function body is "= delete;".
-  This fixes Issue `Issue 52802 <https://github.com/llvm/llvm-project/issues/52802>`_.
-- Unknown type attributes with a ``[[]]`` spelling are no longer diagnosed twice.
-  This fixes Issue `Issue 54817 <https://github.com/llvm/llvm-project/issues/54817>`_.
-- Clang should no longer incorrectly diagnose a variable declaration inside of
-  a lambda expression that shares the name of a variable in a containing
-  if/while/for/switch init statement as a redeclaration.
-  This fixes `Issue 54913 <https://github.com/llvm/llvm-project/issues/54913>`_.
-- Overload resolution for constrained function templates could use the partial
-  order of constraints to select an overload, even if the parameter types of
-  the functions were 
diff erent. It now diagnoses this case correctly as an
-  ambiguous call and an error. Fixes
-  `Issue 53640 <https://github.com/llvm/llvm-project/issues/53640>`_.
-- No longer crash when trying to determine whether the controlling expression
-  argument to a generic selection expression has side effects in the case where
-  the expression is result dependent. This fixes
-  `Issue 50227 <https://github.com/llvm/llvm-project/issues/50227>`_.
-- Fixed an assertion when constant evaluating an initializer for a GCC/Clang
-  floating-point vector type when the width of the initialization is exactly
-  the same as the elements of the vector being initialized.
-  Fixes `Issue 50216 <https://github.com/llvm/llvm-project/issues/50216>`_.
-- Fixed a crash when the ``__bf16`` type is used such that its size or
-  alignment is calculated on a target which does not support that type. This
-  fixes `Issue 50171 <https://github.com/llvm/llvm-project/issues/50171>`_.
-- Fixed a false positive diagnostic about an unevaluated expression having no
-  side effects when the expression is of VLA type and is an operand of the
-  ``sizeof`` operator. Fixes `Issue 48010 <https://github.com/llvm/llvm-project/issues/48010>`_.
-- Fixed a false positive diagnostic about scoped enumerations being a C++11
-  extension in C mode. A scoped enumeration's enumerators cannot be named in C
-  because there is no way to fully qualify the enumerator name, so this
-  "extension" was unintentional and useless. This fixes
-  `Issue 42372 <https://github.com/llvm/llvm-project/issues/42372>`_.
-- Clang will now find and emit a call to an allocation function in a
-  promise_type body for coroutines if there is any allocation function
-  declaration in the scope of promise_type. Additionally, to implement CWG2585,
-  a coroutine will no longer generate a call to a global allocation function
-  with the signature (std::size_t, p0, ..., pn).
-  This fixes Issue `Issue 54881 <https://github.com/llvm/llvm-project/issues/54881>`_.
-- Implement `CWG 2394 <https://wg21.link/cwg2394>`_: Const class members
-  may be initialized with a defaulted default constructor under the same
-  conditions it would be allowed for a const object elsewhere.
-- ``__has_unique_object_representations`` no longer reports that ``_BitInt`` types
-  have unique object representations if they have padding bits.
-- Unscoped and scoped enumeration types can no longer be initialized from a
-  brace-init-list containing a single element of a 
diff erent scoped enumeration
-  type.
-- Allow use of an elaborated type specifier as a ``_Generic`` selection
-  association in C++ mode. This fixes
-  `Issue 55562 <https://github.com/llvm/llvm-project/issues/55562>`_.
-- Clang will allow calling a ``consteval`` function in a default argument. This
-  fixes `Issue 48230 <https://github.com/llvm/llvm-project/issues/48230>`_.
-- Fixed memory leak due to ``VarTemplateSpecializationDecl`` using
-  ``TemplateArgumentListInfo`` instead of ``ASTTemplateArgumentListInfo``.
-- An initializer for a static variable declaration, which is nested
-  inside a statement expression in an aggregate initializer, is now
-  emitted as a dynamic initializer. Previously the variable would
-  incorrectly be zero-initialized. In contexts where a dynamic
-  initializer is not allowed this is now diagnosed as an error.
-- Clang now correctly emits symbols for implicitly instantiated constexpr
-  template function. Fixes `Issue 55560 <https://github.com/llvm/llvm-project/issues/55560>`_.
-- Clang now checks ODR violations when merging concepts from 
diff erent modules.
-  Note that this may possibly break existing code, and is done so intentionally.
-  Fixes `Issue 56310 <https://github.com/llvm/llvm-project/issues/56310>`_.
-- Clang will now look through type sugar when checking a member function is a
-  move assignment operator. Fixes `Issue 56456 <https://github.com/llvm/llvm-project/issues/56456>`_.
-- Fixed a crash when a variable with a bool enum type that has no definition
-  used in comparison operators. Fixes `Issue 56560 <https://github.com/llvm/llvm-project/issues/56560>`_.
-- Fix that ``if consteval`` could evaluate to ``true`` at runtime because it was incorrectly
-  constant folded. Fixes `Issue 55638 <https://github.com/llvm/llvm-project/issues/55638>`_.
-- Fixed incompatibility of Clang's ``<stdatomic.h>`` with MSVC ``<atomic>``.
-  Fixes `MSVC STL Issue 2862 <https://github.com/microsoft/STL/issues/2862>`_.
-- Empty enums and enums with a single enumerator with value zero will be
-  considered to have one positive bit in order to represent the underlying
-  value. This effects whether we consider the store of the value one to be well
-  defined.
-- An operator introduced to the scope via a `using` statement now correctly references this
-  statement in clangd (hover over the symbol, jump to definition) as well as in the AST dump.
-  This also fixes `issue 55095 <https://github.com/llvm/llvm-project/issues/#55095>`_ as a
-  side-effect.
 
 Improvements to Clang's diagnostics
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-- ``-Wliteral-range`` will warn on floating-point equality comparisons with
-  constants that are not representable in a casted value. For example,
-  ``(float) f == 0.1`` is always false.
-- ``-Winline-namespace-reopened-noninline`` now takes into account that the
-  ``inline`` keyword must appear on the original but not necessarily all
-  extension definitions of an inline namespace and therefore points its note
-  at the original definition. This fixes `Issue 50794 (PR51452)
-  <https://github.com/llvm/llvm-project/issues/50794>`_.
-- ``-Wunused-but-set-variable`` now also warns if the variable is only used
-  by unary operators.
-- ``-Wunused-variable`` no longer warn for references extending the lifetime
-  of temporaries with side effects. This fixes `Issue 54489
-  <https://github.com/llvm/llvm-project/issues/54489>`_.
-- Modified the behavior of ``-Wstrict-prototypes`` and added a new, related
-  diagnostic ``-Wdeprecated-non-prototype``. The strict prototypes warning will
-  now only diagnose deprecated declarations and definitions of functions
-  without a prototype where the behavior in C2x will remain correct. This
-  diagnostic remains off by default but is now enabled via ``-pedantic`` due to
-  it being a deprecation warning. ``-Wstrict-prototypes`` has no effect in C2x
-  or when ``-fno-knr-functions`` is enabled. ``-Wdeprecated-non-prototype``
-  will diagnose cases where the deprecated declarations or definitions of a
-  function without a prototype will change behavior in C2x. Additionally, it
-  will diagnose calls which pass arguments to a function without a prototype.
-  This warning is enabled only when the ``-Wdeprecated-non-prototype`` option
-  is enabled at the function declaration site, which allows a developer to
-  disable the diagnostic for all callers at the point of declaration. This
-  diagnostic is grouped under the ``-Wstrict-prototypes`` warning group, but is
-  enabled by default. ``-Wdeprecated-non-prototype`` has no effect in C2x or
-  when ``-fno-knr-functions`` is enabled.
-- Clang now appropriately issues an error in C when a definition of a function
-  without a prototype and with no arguments is an invalid redeclaration of a
-  function with a prototype. e.g., ``void f(int); void f() {}`` is now properly
-  diagnosed.
-- The ``-Wimplicit-function-declaration`` warning diagnostic now defaults to
-  an error in C99 and later. Prior to C2x, it may be downgraded to a warning
-  with ``-Wno-error=implicit-function-declaration``, or disabled entirely with
-  ``-Wno-implicit-function-declaration``. As of C2x, support for implicit
-  function declarations has been removed, and the warning options will have no
-  effect.
-- The ``-Wimplicit-int`` warning diagnostic now defaults to an error in C99 and
-  later. Prior to C2x, it may be downgraded to a warning with
-  ``-Wno-error=implicit-int``, or disabled entirely with ``-Wno-implicit-int``.
-  As of C2x, support for implicit int has been removed, and the warning options
-  will have no effect. Specifying ``-Wimplicit-int`` in C89 mode will now issue
-  warnings instead of being a noop.
-- No longer issue a "declaration specifiers missing, defaulting to int"
-  diagnostic in C89 mode because it is not an extension in C89, it was valid
-  code. The diagnostic has been removed entirely as it did not have a
-  diagnostic group to disable it, but it can be covered wholly by
-  ``-Wimplicit-int``.
-- ``-Wmisexpect`` warns when the branch weights collected during profiling
-  conflict with those added by ``llvm.expect``.
-- ``-Wthread-safety-analysis`` now considers overloaded compound assignment and
-  increment/decrement operators as writing to their first argument, thus
-  requiring an exclusive lock if the argument is guarded.
-- ``-Wenum-conversion`` now warns on converting a signed enum of one type to an
-  unsigned enum of a 
diff erent type (or vice versa) rather than
-  ``-Wsign-conversion``.
-- Added the ``-Wunreachable-code-generic-assoc`` diagnostic flag (grouped under
-  the ``-Wunreachable-code`` flag) which is enabled by default and warns the
-  user about ``_Generic`` selection associations which are unreachable because
-  the type specified is an array type or a qualified type.
-- Added the ``-Wgnu-line-marker`` diagnostic flag (grouped under the ``-Wgnu``
-  flag) which is a portability warning about use of GNU linemarker preprocessor
-  directives. Fixes `Issue 55067 <https://github.com/llvm/llvm-project/issues/55067>`_.
-- Using ``#warning``, ``#elifdef`` and ``#elifndef`` that are incompatible with C/C++
-  standards before C2x/C++2b are now warned via ``-pedantic``. Additionally,
-  on such language mode, ``-Wpre-c2x-compat`` and ``-Wpre-c++2b-compat``
-  diagnostic flags report a compatibility issue.
-  Fixes `Issue 55306 <https://github.com/llvm/llvm-project/issues/55306>`_.
-- Clang now checks for stack resource exhaustion when recursively parsing
-  declarators in order to give a diagnostic before we run out of stack space.
-  This fixes `Issue 51642 <https://github.com/llvm/llvm-project/issues/51642>`_.
-- Unknown preprocessor directives in a skipped conditional block are now given
-  a typo correction suggestion if the given directive is sufficiently similar
-  to another preprocessor conditional directive. For example, if ``#esle``
-  appears in a skipped block, we will warn about the unknown directive and
-  suggest ``#else`` as an alternative. ``#elifdef`` and ``#elifndef`` are only
-  suggested when in C2x or C++2b mode. Fixes
-  `Issue 51598 <https://github.com/llvm/llvm-project/issues/51598>`_.
-- The ``-Wdeprecated`` diagnostic will now warn on out-of-line ``constexpr``
-  declarations downgraded to definitions in C++1z, in addition to the
-  existing warning on out-of-line ``const`` declarations.
-- ``-Wshift-overflow`` will not warn for signed left shifts in C++20 mode
-  (and newer), as it will always wrap and never overflow. This fixes
-  `Issue 52873 <https://github.com/llvm/llvm-project/issues/52873>`_.
-- When using class templates without arguments, clang now tells developers
-  that template arguments are missing in certain contexts.
-  This fixes `Issue 55962 <https://github.com/llvm/llvm-project/issues/55962>`_.
-- Printable Unicode characters within `static_assert` messages are no longer
-  escaped.
-- The ``-Winfinite-recursion`` diagnostic no longer warns about
-  unevaluated operands of a ``typeid`` expression, as they are now
-  modeled correctly in the CFG. This fixes
-  `Issue 21668 <https://github.com/llvm/llvm-project/issues/21668>`_.
-- ``-Wself-assign``, ``-Wself-assign-overloaded`` and ``-Wself-move`` will
-  suggest a fix if the decl being assigned is a parameter that shadows a data
-  member of the contained class.
-- Added ``-Winvalid-utf8`` which diagnoses invalid UTF-8 code unit sequences in
-  comments.
-- The ``-Wint-conversion`` warning diagnostic for implicit int <-> pointer
-  conversions now defaults to an error in all C language modes. It may be
-  downgraded to a warning with ``-Wno-error=int-conversion``, or disabled
-  entirely with ``-Wno-int-conversion``.
-
 
 Non-comprehensive list of changes in this release
 -------------------------------------------------
 
-- Improve __builtin_dump_struct:
-
-  - Support bitfields in struct and union.
-  - Improve the dump format, dump both bitwidth(if its a bitfield) and field
-    value.
-  - Remove anonymous tag locations and flatten anonymous struct members.
-  - Beautify dump format, add indent for struct members.
-  - Support passing additional arguments to the formatting function, allowing
-    use with ``fprintf`` and similar formatting functions.
-  - Support use within constant evaluation in C++, if a ``constexpr``
-    formatting function is provided.
-  - Support formatting of base classes in C++.
-  - Support calling a formatting function template in C++, which can provide
-    custom formatting for non-aggregate types.
-
-- Previously disabled sanitizer options now enabled by default:
-  - ASAN_OPTIONS=detect_stack_use_after_return=1 (only on Linux).
-  - MSAN_OPTIONS=poison_in_dtor=1.
-
-- Some type-trait builtins, such as ``__has_trivial_assign``, have been documented
-  as deprecated for a while because their semantics don't mix well with post-C++11 type-traits.
-  Clang now emits deprecation warnings for them under the flag ``-Wdeprecated-builtins``.
-
 New Compiler Flags
 ------------------
-- Added the ``-fno-knr-functions`` flag to allow users to opt into the C2x
-  behavior where a function with an empty parameter list is treated as though
-  the parameter list were ``void``. There is no ``-fknr-functions`` or
-  ``-fno-no-knr-functions`` flag; this feature cannot be disabled in language
-  modes where it is required, such as C++ or C2x.
-- A new ARM pass to workaround Cortex-A57 Erratum 1742098 and Cortex-A72 Erratum
-  1655431 can be enabled using ``-mfix-cortex-a57-aes-1742098`` or
-  ``-mfix-cortex-a72-aes-1655431``. The pass is enabled when using either of
-  these cpus with ``-mcpu=`` and can be disabled using
-  ``-mno-fix-cortex-a57-aes-1742098`` or ``-mno-fix-cortex-a72-aes-1655431``.
-- Added the ``-fexperimental-max-bitint-width=`` option to increase the maximum
-  allowed bit width of ``_BitInt`` types beyond the default of 128 bits. Some
-  operations, such as division or float-to-integer conversion, on ``_BitInt``
-  types with more than 128 bits currently crash clang. This option will be
-  removed in the future once clang supports all such operations.
-- Added the ``-print-diagnostic-options`` option, which prints a list of
-  warnings the compiler supports.
-- Added the ``-Warray-parameter`` warning. It diagnoses 
diff erences between
-  array parameters between function redeclarations (arrays of 
diff erent extents,
-  etc). This flag is related to the same flag in GCC, but is 
diff erent in that
-  it does not accept an explicitly- specified warning level and use of this flag
-  has no effect on ``-Warray-bounds``.
 
 Deprecated Compiler Flags
 -------------------------
@@ -374,188 +67,38 @@ Modified Compiler Flags
 
 Removed Compiler Flags
 -------------------------
-- Removed the ``-fno-concept-satisfaction-caching`` flag. The flag was added
-  at the time when the draft of C++20 standard did not permit caching of
-  atomic constraints. The final standard permits such caching, see
-  `WG21 P2104R0 <http://wg21.link/p2104r0>`_.
 
 New Pragmas in Clang
 --------------------
-- Added support for MSVC's ``#pragma function``, which tells the compiler to
-  generate calls to functions listed in the pragma instead of using the
-  builtins.
-- Added support for MSVC's ``#pragma alloc_text``. The pragma names the code
-  section functions are placed in. The pragma only applies to functions with
-  C linkage.
-- Added support for an empty optimization list for MSVC's ``#pragma optimize``.
-  The pragma takes a list of optimizations to turn on or off which applies to
-  all functions following the pragma. At the moment, only an empty list is
-  supported.
-
 - ...
 
 Attribute Changes in Clang
 --------------------------
 
-- Added support for parameter pack expansion in ``clang::annotate``.
-
-- The ``overloadable`` attribute can now be written in all of the syntactic
-  locations a declaration attribute may appear.
-  This fixes `Issue 53805 <https://github.com/llvm/llvm-project/issues/53805>`_.
-
-- Improved namespace attributes handling:
-
-  - Handle GNU attributes before a namespace identifier and subsequent
-    attributes of 
diff erent kinds.
-  - Emit error on GNU attributes for a nested namespace definition.
-
-- Statement attributes ``[[clang::noinline]]`` and  ``[[clang::always_inline]]``
-  can be used to control inlining decisions at callsites.
-
-- ``#pragma clang attribute push`` now supports multiple attributes within a single directive.
-
-- The ``__declspec(naked)`` attribute can no longer be written on a member
-  function in Microsoft compatibility mode, matching the behavior of cl.exe.
-
-- Attribute ``no_builtin`` should now affect the generated code. It now disables
-  builtins (corresponding to the specific names listed in the attribute) in the
-  body of the function the attribute is on.
-
-- When the ``weak`` attribute is applied to a const qualified variable clang no longer
-  tells the backend it is allowed to optimize based on initializer value.
-
-- Added the ``clang::annotate_type`` attribute, which can be used to add
-  annotations to types (see documentation for details).
-
-- Added half float to types that can be represented by ``__attribute__((mode(XX)))``.
-
-- The ``format`` attribute can now be applied to non-variadic functions. The
-  format string must correctly format the fixed parameter types of the function.
-  Using the attribute this way emits a GCC compatibility diagnostic.
-
-- Support was added for ``__attribute__((function_return("thunk-extern")))``
-  to X86 to replace ``ret`` instructions with ``jmp __x86_return_thunk``. The
-  corresponding attribute to disable this,
-  ``__attribute__((function_return("keep")))`` was added. This is intended to
-  be used by the Linux kernel to mitigate RETBLEED.
-
-- Ignore the `__preferred_name__` attribute when writing for C++20 module interfaces.
-  This is a short-term workaround intentionally since clang doesn't take care of the
-  serialization and deserialization of `__preferred_name__`.  See
-  https://github.com/llvm/llvm-project/issues/56490 for example.
-
 Windows Support
 ---------------
 
-- Add support for MSVC-compatible ``/JMC``/``/JMC-`` flag in clang-cl (supports
-  X86/X64/ARM/ARM64). ``/JMC`` could only be used when ``/Zi`` or ``/Z7`` is
-  turned on. With this addition, clang-cl can be used in Visual Studio for the
-  JustMyCode feature. Note, you may need to manually add ``/JMC`` as additional
-  compile options in the Visual Studio since it currently assumes clang-cl does not support ``/JMC``.
-
-- Implemented generation of SEH unwind information on ARM. (C++ exception
-  handling in MSVC mode is still unimplemented though.)
-
-- Switched MinGW mode on ARM to use SEH instead of DWARF for unwind information.
-
 AIX Support
 -----------
 
-- The driver no longer adds ``-mignore-xcoff-visibility`` by default for AIX
-  targets when no other visibility command-line options are in effect, as
-  ignoring hidden visibility can silently have undesirable side effects (e.g
-  when libraries depend on visibility to hide non-ABI facing entities). The
-  ``-mignore-xcoff-visibility`` option can be manually specified on the
-  command-line to recover the previous behavior if desired.
-
 C Language Changes in Clang
 ---------------------------
 
 C2x Feature Support
 -------------------
 
-- Implemented `WG14 N2674 The noreturn attribute <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf>`_.
-- Implemented `WG14 N2935 Make false and true first-class language features <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2935.pdf>`_.
-- Implemented `WG14 N2763 Adding a fundamental type for N-bit integers <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2763.pdf>`_.
-- Implemented `WG14 N2775 Literal suffixes for bit-precise integers <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2775.pdf>`_.
-- Implemented the ``*_WIDTH`` macros to complete support for
-  `WG14 N2412 Two's complement sign representation for C2x <https://www9.open-std.org/jtc1/sc22/wg14/www/docs/n2412.pdf>`_.
-- Implemented `WG14 N2418 Adding the u8 character prefix <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2418.pdf>`_.
-- Removed support for implicit function declarations. This was a C89 feature
-  that was removed in C99, but cannot be supported in C2x because it requires
-  support for functions without prototypes, which no longer exist in C2x.
-- Implemented `WG14 N2841 No function declarators without prototypes <https://www9.open-std.org/jtc1/sc22/wg14/www/docs/n2841.htm>`_
-  and `WG14 N2432 Remove support for function definitions with identifier lists <https://www9.open-std.org/jtc1/sc22/wg14/www/docs/n2432.pdf>`_.
-- Implemented `WG14 N2836 Identifier Syntax using Unicode Standard Annex 31 <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2836.pdf>`_.
-
 C++ Language Changes in Clang
 -----------------------------
 
-- Improved ``-O0`` code generation for calls to ``std::move``, ``std::forward``,
-  ``std::move_if_noexcept``, ``std::addressof``, and ``std::as_const``. These
-  are now treated as compiler builtins and implemented directly, rather than
-  instantiating the definition from the standard library.
-- Fixed mangling of nested dependent names such as ``T::a::b``, where ``T`` is a
-  template parameter, to conform to the Itanium C++ ABI and be compatible with
-  GCC. This breaks binary compatibility with code compiled with earlier versions
-  of clang; use the ``-fclang-abi-compat=14`` option to get the old mangling.
-- Preprocessor character literals with a ``u8`` prefix are now correctly treated as
-  unsigned character literals. This fixes `Issue 54886 <https://github.com/llvm/llvm-project/issues/54886>`_.
-- Stopped allowing constraints on non-template functions to be compliant with
-  dcl.decl.general p4.
-- Improved ``copy elision`` optimization. It's possible to apply ``NRVO`` for an object if at the moment when
-  any return statement of this object is executed, the ``return slot`` won't be occupied by another object.
-
-
 C++20 Feature Support
 ^^^^^^^^^^^^^^^^^^^^^
-- Diagnose consteval and constexpr issues that happen at namespace scope. This
-  partially addresses `Issue 51593 <https://github.com/llvm/llvm-project/issues/51593>`_.
-- No longer attempt to evaluate a consteval UDL function call at runtime when
-  it is called through a template instantiation. This fixes
-  `Issue 54578 <https://github.com/llvm/llvm-project/issues/54578>`_.
-
-- Implemented ``__builtin_source_location()``, which enables library support
-  for ``std::source_location``.
-
-- The mangling scheme for C++20 modules has incompatibly changed. The
-  initial mangling was discovered not to be reversible, and the weak
-  ownership design decision did not give the backwards compatibility
-  that was hoped for. C++20 since added ``extern "C++"`` semantics
-  that can be used for such compatibility. The demangler now demangles
-  symbols with named module attachment.
-
-- Enhanced the support for C++20 Modules, including: Partitions,
-  Reachability, Header Unit and ``extern "C++"`` semantics.
-
-- Implemented `P1103R3: Merging Modules <https://wg21.link/P1103R3>`_.
-- Implemented `P1779R3: ABI isolation for member functions <https://wg21.link/P1779R3>`_.
-- Implemented `P1874R1: Dynamic Initialization Order of Non-Local Variables in Modules <https://wg21.link/P1874R1>`_.
-- Partially implemented `P1815R2: Translation-unit-local entities <https://wg21.link/P1815R2>`_.
-
-- As per "Conditionally Trivial Special Member Functions" (P0848), it is
-  now possible to overload destructors using concepts. Note that the rest
-  of the paper about other special member functions is not yet implemented.
 
 C++2b Feature Support
 ^^^^^^^^^^^^^^^^^^^^^
 
-- Implemented `P2128R6: Multidimensional subscript operator <https://wg21.link/P2128R6>`_.
-- Implemented `P0849R8: auto(x): decay-copy in the language <https://wg21.link/P0849R8>`_.
-- Implemented `P2242R3: Non-literal variables (and labels and gotos) in constexpr functions	<https://wg21.link/P2242R3>`_.
-- Implemented `LWG3659: Consider ATOMIC_FLAG_INIT undeprecation <https://wg21.link/LWG3659>`_.
-- Implemented `P2290R3 Delimited escape sequences <https://wg21.link/P2290R3>`_.
-  This feature is available as an extension in all C and C++ language modes.
-- Implemented `P2071R2 Named universal character escapes <https://wg21.link/P2290R2>`_.
-  This feature is available as an extension in all C and C++ language modes.
-- Implemented `P2327R1 De-deprecating volatile compound operations <https://wg21.link/P2327R1>`_
-
 CUDA/HIP Language Changes in Clang
 ----------------------------------
 
-- Added `__noinline__` as a keyword to avoid diagnostics due to usage of
-  `__attribute__((__noinline__))` in CUDA/HIP programs.
-
 Objective-C Language Changes in Clang
 -------------------------------------
 
@@ -567,33 +110,8 @@ OpenCL C Language Changes in Clang
 ABI Changes in Clang
 --------------------
 
-- GCC doesn't pack non-POD members in packed structs unless the packed
-  attribute is also specified on the member. Clang historically did perform
-  such packing. Clang now matches the gcc behavior (except on Darwin and PS4).
-  You can switch back to the old ABI behavior with the flag:
-  ``-fclang-abi-compat=14.0``.
-- When compiling C for ARM or AArch64, a zero-length bitfield in a ``struct``
-  (e.g. ``int : 0``) no longer prevents the structure from being considered a
-  homogeneous floating-point or vector aggregate. The new behavior agrees with
-  the AAPCS specification, and matches the similar bug fix in GCC 12.1.
-- Targeting AArch64, since D127209 LLVM now only preserves the z8-z23
-  and p4-p15 registers across a call if the registers z0-z7 or p0-p3 are
-  used to pass data into or out of a subroutine. The new behavior
-  matches the AAPCS. Previously LLVM preserved z8-z23 and p4-p15 across
-  a call if the callee had an SVE type anywhere in its signature. This
-  would cause an incorrect use of the caller-preserved z8-z23 and p4-p15
-  ABI for example if the 9th argument or greater were the first SVE type
-  in the signature of a function.
-- All copy constructors can now be trivial if they are not user-provided,
-  regardless of the type qualifiers of the argument of the defaulted constructor,
-  fixing dr2171.
-  You can switch back to the old ABI behavior with the flag:
-  ``-fclang-abi-compat=14.0``.
-
 OpenMP Support in Clang
 -----------------------
-* Added the support for ``atomic compare`` and ``atomic compare capture``
-  (``-fopenmp-version=51`` is required).
 
 ...
 
@@ -605,120 +123,35 @@ CUDA Support in Clang
 X86 Support in Clang
 --------------------
 
-- Support ``-mharden-sls=[none|all|return|indirect-jmp]`` for straight-line
-  speculation hardening.
-- Support for the ``_Float16`` type has been added for all targets with SSE2.
-  When AVX512-FP16 is not available, arithmetic on ``_Float16`` is emulated
-  using ``float``.
-- Added the ``-m[no-]rdpru`` flag to enable/disable the RDPRU instruction
-  provided by AMD Zen2 and later processors. Defined intrinsics for using
-  this instruction (see rdpruintrin.h).
-- Support ``-mstack-protector-guard-symbol=[SymbolName]`` to use the given
-  symbol for addressing the stack protector guard.
-- ``-mfunction-return=thunk-extern`` support was added to clang for x86. This
-  will be used by Linux kernel mitigations for RETBLEED. The corresponding flag
-  ``-mfunction-return=keep`` may be appended to disable the feature.
-
 DWARF Support in Clang
 ----------------------
 
-- clang now adds DWARF information for inline strings in C/C++ programs,
-  allowing ``line:column`` symbolization of strings. Some debugging programs may
-  require updating, as this takes advantage of DWARF ``DW_TAG_variable``
-  structures *without* a ``DW_AT_name`` field, which is valid DWARF, but may be
-  handled incorrectly by some software (e.g. new failures with incorrect
-  assertions).
-
 Arm and AArch64 Support in Clang
 --------------------------------
 
-- clang now supports the Cortex-M85 CPU, which can be chosen with
-  `-mcpu=cortex-m85`. By default, this has PACBTI turned on, but it can be
-  disabled with `-mcpu=cortex-m85+nopacbti`.
-
 Floating Point Support in Clang
 -------------------------------
 
 Internal API Changes
 --------------------
 
-- Added a new attribute flag ``AcceptsExprPack`` that when set allows
-  expression pack expansions in the parsed arguments of the corresponding
-  attribute. Additionally it introduces delaying of attribute arguments, adding
-  common handling for creating attributes that cannot be fully initialized
-  prior to template instantiation.
-
 Build System Changes
 --------------------
 
-* CMake ``-DCLANG_DEFAULT_PIE_ON_LINUX=ON`` is now the default. This is used by
-  linux-gnu systems to decide whether ``-fPIE -pie`` is the default (instead of
-  ``-fno-pic -no-pie``). This matches GCC installations on many Linux distros.
-  Note: linux-android and linux-musl always default to ``-fPIE -pie``, ignoring
-  this variable. ``-DCLANG_DEFAULT_PIE_ON_LINUX`` may be removed in the future.
-
 AST Matchers
 ------------
 
-- Expanded ``isInline`` narrowing matcher to support C++17 inline variables.
-
-- Added ``forEachTemplateArgument`` matcher which creates a match every
-  time a ``templateArgument`` matches the matcher supplied to it.
-
-- Added ``objcStringLiteral`` matcher which matches ObjectiveC String
-  literal expressions.
-
 clang-format
 ------------
 
-- **Important change**: Renamed ``IndentRequires`` to ``IndentRequiresClause``
-  and changed the default for all styles from ``false`` to ``true``.
-
-- Reworked and improved handling of concepts and requires. Added the
-  ``RequiresClausePosition`` option as part of that.
-
-- Changed ``BreakBeforeConceptDeclarations`` from ``Boolean`` to an enum.
-
-- Option ``InsertBraces`` has been added to insert optional braces after control
-  statements.
-
 clang-extdef-mapping
 --------------------
 
-- clang-extdef-mapping now accepts .ast files as input. This is faster than to
-  recompile the files from sources when extracting method definitons. This can
-  be really beneficial when creating .ast files for input to the clang-static-analyzer.
-
 libclang
 --------
 
-- The soversion for libclang will now change for each new LLVM major release.  This matches
-  the behavior of clang <= 13.
-
 Static Analyzer
 ---------------
-- `New CTU implementation
-  <https://discourse.llvm.org/t/rfc-much-faster-cross-translation-unit-ctu-analysis-implementation/61728>`_
-  that keeps the slow-down around 2x compared to the single-TU analysis, even
-  in case of complex C++ projects. Still, it finds the majority of the "old"
-  CTU findings. Besides, not more than ~3% of the bug reports are lost compared
-  to single-TU analysis, the lost reports are highly likely to be false
-  positives.
-
-- Added a new checker ``alpha.unix.cstring.UninitializedRead`` this will check for uninitialized reads
-  from common memory copy/manipulation functions such as ``memcpy``, ``mempcpy``, ``memmove``, ``memcmp``, `
-  `strcmp``, ``strncmp``, ``strcpy``, ``strlen``, ``strsep`` and many more. Although
-  this checker currently is in list of alpha checkers due to a false positive.
-
-- Added a new checker ``alpha.unix.Errno``. This can find the first read
-  of ``errno`` after successful standard function calls, such use of ``errno``
-  could be unsafe.
-
-- Deprecate the ``-analyzer-store region`` and
-  ``-analyzer-opt-analyze-nested-blocks`` analyzer flags.
-  These flags are still accepted, but a warning will be displayed.
-  These flags will be rejected, thus turned into a hard error starting with
-  ``clang-16``.
 
 .. _release-notes-ubsan:
 

diff  --git a/clang/docs/analyzer/conf.py b/clang/docs/analyzer/conf.py
index 761f17bf4c372..d86d1a4f1c11d 100644
--- a/clang/docs/analyzer/conf.py
+++ b/clang/docs/analyzer/conf.py
@@ -49,9 +49,9 @@
 # built documents.
 #
 # The short version.
-version = '15'
+version = '16'
 # The full version, including alpha/beta/rc tags.
-release = '15'
+release = '16'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.

diff  --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 96e98fd5c9ab3..f5ebc4e8e6430 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -1,5 +1,5 @@
 =========================================
-Libc++ 15.0.0 (In-Progress) Release Notes
+Libc++ 16.0.0 (In-Progress) Release Notes
 =========================================
 
 .. contents::
@@ -10,7 +10,7 @@ Written by the `Libc++ Team <https://libcxx.llvm.org>`_
 
 .. warning::
 
-   These are in-progress notes for the upcoming libc++ 15 release.
+   These are in-progress notes for the upcoming libc++ 16 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
@@ -18,7 +18,7 @@ Introduction
 ============
 
 This document contains the release notes for the libc++ C++ Standard Library,
-part of the LLVM Compiler Infrastructure, release 15.0.0. Here we describe the
+part of the LLVM Compiler Infrastructure, release 16.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,237 +32,23 @@ main Libc++ web page, this document applies to the *next* release, not
 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++ 15.0.0?
+What's New in Libc++ 16.0.0?
 ============================
 
-The main focus of the libc++ team has been to implement new C++20 and C++23
-features.
-
-The C++20 ``format`` library is feature complete, but not all Standard LWG
-issues have been addressed. Since it is expected that at least one of these
-issues will cause an ABI break the ``format`` library is considered
-experimental.
-
-The C++20 ``ranges`` library has progressed a lot since the last release and is
-almost complete. The ``ranges`` library is considered experimental.
-
-
 Implemented Papers
 ------------------
 
-- P0627R6 - Function to mark unreachable code
-- P1165R1 - Make stateful allocator propagation more consistent for ``operator+(basic_string)``
-- P0674R1 - Support arrays in ``make_shared`` and ``allocate_shared``
-- P0980R1 - Making ``std::string`` constexpr
-- P2216R3 - ``std::format`` improvements
-- P0174R2 - Deprecating Vestigial Library Parts in C++17
-- N4190 - Removing ``auto_ptr``, ``random_shuffle()``, And Old ``<functional>`` Stuff
-- P0154R1 - Hardware inference size
-- P0618R0 - Deprecating ``<codecvt>``
-- P2418R2 - Add support for ``std::generator``-like types to ``std::format``
-- LWG3659 - Consider ``ATOMIC_FLAG_INIT`` undeprecation
-- P1423R3 - ``char8_t`` backward compatibility remediation
-
-- Marked the following papers as "Complete" (note that some of those might have
-  been implemented in a previous release but not marked as such):
-
-    - P1207R4 - Movability of Single-pass Iterators
-    - P1474R1 - Helpful pointers for ``ContiguousIterator``
-    - P1522R1 - Iterator Difference Type and Integer Overflow
-    - P1523R1 - Views and Size Types
-    - P1456R1 - Move-only views
-    - P1870R1 - ``forwarding-range`` is too subtle
-    - P1878R1 - Constraining Readable Types
-    - P1970R2 - Consistency for ``size()`` functions: Add ``ranges::ssize``
-    - P1983R0 - Wording for GB301, US296, US292, US291, and US283
-
 Improvements and New Features
 -----------------------------
 
-- ``std::pop_heap`` now uses an algorithm known as "bottom-up heapsort" or
-  "heapsort with bounce" to reduce the number of comparisons, and rearranges
-  elements using move-assignment instead of ``std::swap``.
-
-- Libc++ now supports a variety of assertions that can be turned on to help catch
-  undefined behavior in user code. This new support is now separate from the old
-  (and incomplete) Debug Mode. Vendors can select whether the library they ship
-  should include assertions or not by default. For details, see
-  :ref:`the documentation <assertions-mode>` about this new feature.
-
-- Clang now implements the ``-fexperimental-library`` flag. This flag can be used to
-  enable experimental library features such as TSes and other in-progress work like
-  ``<ranges>`` and ``<format>``. Using this flag makes it unnecessary to manually link
-  against ``libc++experimental.a`` -- just use ``-fexperimental-library`` and the
-  compiler will do what's needed to make experimental features work. However, be
-  aware that experimental features are not stable!
-
-- The implementation of the function ``std::to_chars`` for integral types using
-  base 10 has moved from the dylib to the header. This means the function no
-  longer has a minimum deployment target.
-
-- The performance for ``std::to_chars``, for integral types using base 2, 8,
-  10, or 16 has been improved.
-
-- The functions ``std::from_chars`` and ``std::to_chars`` now have 128-bit integral
-  support.
-
-- The format functions (``std::format``, ``std::format_to``, ``std::format_to_n``, and
-  ``std::formatted_size``) now validate the format string at compile time.
-  When the format string is invalid this will make the code ill-formed instead
-  of throwing an exception at run-time.  (This does not affect the ``v``
-  functions.)
-
-- All format functions in ``<format>`` allow the usage of non-copyable types as
-  argument for the formatting functions. This change causes bit fields to become
-  invalid arguments for the formatting functions.
-
-- The ``_LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_VOID_SPECIALIZATION`` macro has been added to allow
-  re-enabling the ``allocator<void>`` specialization. When used in conjunction with
-  ``_LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS``, this ensures that the members of
-  ``allocator<void>`` removed in C++20 can be accessed.
-
-- ``boyer_moore_searcher`` and ``boyer_moore_horspool_searcher`` have been implemented.
-
-- ``vector<bool>::const_reference``, ``vector<bool>::const_iterator::reference``
-  and ``bitset::const_reference`` are now aliases for `bool` in the unstable ABI,
-  which improves libc++'s conformance to the Standard.
-
 Deprecations and Removals
 -------------------------
 
-- The header ``<experimental/filesystem>`` has been removed. Instead, use
-  ``<filesystem>`` header. The associated macro
-  ``_LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM`` has been removed too.
-
-- The C++14 function ``std::quoted(const char*)`` is no longer supported in
-  C++03 or C++11 modes.
-
-- Setting a custom debug handler with ``std::__libcpp_debug_function`` is not
-  supported anymore. Please migrate to using the new support for
-  :ref:`assertions <assertions-mode>` instead.
-
-- ``std::function`` has been removed in C++03. If you are using it, please remove usages
-  or upgrade to C++11 or later. It is possible to re-enable ``std::function`` in C++03 by defining
-  ``_LIBCPP_ENABLE_CXX03_FUNCTION``. This option will be removed in LLVM 16.
-
-- ``unary_function`` and ``binary_function`` are no longer available in C++17 and C++20.
-  They can be re-enabled by defining ``_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION``.
-  They are also marked as ``[[deprecated]]`` in C++11 and later. To disable deprecation warnings
-  you have to define ``_LIBCPP_DISABLE_DEPRECATION_WARNINGS``. Note that this disables
-  all deprecation warnings.
-
-- The contents of ``<codecvt>``, ``wstring_convert`` and ``wbuffer_convert`` have been marked as deprecated.
-  To disable deprecation warnings you have to define ``_LIBCPP_DISABLE_DEPRECATION_WARNINGS``. Note that this
-  disables all deprecation warnings.
-
-- The ``_LIBCPP_DISABLE_EXTERN_TEMPLATE`` macro is not honored anymore when defined by
-  users of libc++. Instead, users not wishing to take a dependency on libc++ should link
-  against the static version of libc++, which will result in no dependency being
-  taken against the shared library.
-
-- The ``_LIBCPP_ABI_UNSTABLE`` macro has been removed in favour of setting
-  ``_LIBCPP_ABI_VERSION=2``. This should not have any impact on users because
-  they were not supposed to set ``_LIBCPP_ABI_UNSTABLE`` manually, however we
-  still feel that it is worth mentioning in the release notes in case some users
-  had been doing it.
-
-- The integer distributions ``binomial_distribution``, ``discrete_distribution``,
-  ``geometric_distribution``, ``negative_binomial_distribution``, ``poisson_distribution``,
-  and ``uniform_int_distribution`` now conform to the Standard by rejecting
-  template parameter types other than ``short``, ``int``, ``long``, ``long long``,
-  and the unsigned versions thereof. As an extension, ``int8_t``, ``__int128_t`` and
-  their unsigned versions are supported too. In particular, instantiating these
-  distributions with non-integer types like ``bool`` and ``char`` will not compile
-  anymore.
-
 Upcoming Deprecations and Removals
 ----------------------------------
 
-- The ``_LIBCPP_DEBUG`` macro is not supported anymore. It will be honoured until
-  LLVM 16, and then it will be an error to define that macro. To enable basic
-  assertions (previously ``_LIBCPP_DEBUG=0``), please use ``_LIBCPP_ENABLE_ASSERTIONS=1``.
-  To enable the debug mode (previously ``_LIBCPP_DEBUG=1|2``), please ensure that
-  the library has been built with support for the debug mode, and it will be
-  enabled automatically (no need to define ``_LIBCPP_DEBUG``).
-
-- The experimental versions of ``boyer_moore_searcher`` and ``boyer_moore_horspool_searcher``
-  will be removed in LLVM 17. You can disable the deprecation warnings by defining
-  ``_LIBCPP_NO_EXPERIMENTAL_DEPRECATION_WARNING_SEARCHERS``.
-
-- The implementation of the Coroutines TS in ``std::experimental`` will be removed in LLVM 16.
-
-- Libc++ is getting ready to remove unnecessary transitive inclusions. This may
-  break your code in the future. To future-proof your code to these removals,
-  please compile your code with ``_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`` defined
-  and fix any compilation error resulting from missing includes.
-
 ABI Affecting Changes
 ---------------------
 
-- The ``_LIBCPP_ABI_USE_CXX03_NULLPTR_EMULATION`` macro controlling whether we use an
-  emulation for ``std::nullptr_t`` in C++03 mode has been removed. After this change,
-  ``_LIBCPP_ABI_USE_CXX03_NULLPTR_EMULATION`` will not be honoured anymore and there
-  will be no way to opt back into the C++03 emulation of ``std::nullptr_t``.
-
-- On FreeBSD, NetBSD, DragonFlyBSD and Solaris, ``std::random_device`` is now implemented on
-  top of ``arc4random()`` instead of reading from ``/dev/urandom``. Any implementation-defined
-  token used when constructing a ``std::random_device`` will now be ignored instead of
-  interpreted as a file to read entropy from.
-
-- ``std::valarray``'s unary operators ``!``, ``+``, ``~`` and ``-`` now return an expression
-  object instead of a ``valarray``. This was done to fix an issue where any expression involving
-  other ``valarray`` operators and one of these unary operators would end up with a dangling
-  reference. This is a potential ABI break for code that exposes ``std::valarray`` on an ABI
-  boundary, specifically if the return type of an ABI-boundary function is ``auto``-deduced
-  from an expression involving unary operators on ``valarray``. If you are concerned by this,
-  you can audit whether your executable or library exports any function that returns a
-  ``valarray``, and if so ensure that any such function uses ``std::valarray`` directly
-  as a return type instead of relying on the type of ``valarray``-expressions, which is
-  not guaranteed by the Standard anyway.
-
-- By default, the legacy debug mode symbols are not provided with the library anymore. If
-  you are a vendor and need to re-enable them, please use the ``LIBCXX_ENABLE_BACKWARDS_COMPATIBILITY_DEBUG_MODE_SYMBOLS``
-  CMake flag, and contact the libc++ developers as this will be removed in LLVM 16.
-  Furthermore, please note that ``LIBCXX_ENABLE_DEBUG_MODE_SUPPORT`` is not honored anymore.
-
 Build System Changes
 --------------------
-
-- Support for standalone builds have been entirely removed from libc++, libc++abi and
-  libunwind. Please use :ref:`these instructions <build instructions>` for building
-  libc++, libc++abi and/or libunwind.
-
-- The ``{LIBCXX,LIBCXXABI,LIBUNWIND}_TARGET_TRIPLE``, ``{LIBCXX,LIBCXXABI,LIBUNWIND}_SYSROOT`` and
-  ``{LIBCXX,LIBCXXABI,LIBUNWIND}_GCC_TOOLCHAIN`` CMake variables have been removed. Instead, please
-  use the ``CMAKE_CXX_COMPILER_TARGET``, ``CMAKE_SYSROOT`` and ``CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN``
-  variables provided by CMake.
-
-- When building for Windows, vendors who want to avoid dll-exporting symbols from the static libc++abi
-  library should set ``LIBCXXABI_HERMETIC_STATIC_LIBRARY=ON`` when configuring CMake. The current
-  behavior, which tries to guess the correct dll-export semantics based on whether we're building
-  the libc++ shared library, will be removed in LLVM 16.
-
-- Previously, the C++ ABI library headers would be installed inside ``<prefix>/include/c++/v1``
-  alongside the libc++ headers as part of building libc++. This is not the case anymore -- the
-  ABI library is expected to install its headers where it wants them as part of its own build.
-  Note that no action is required for most users, who build libc++ against libc++abi, since
-  libc++abi already installs its headers in the right location. However, vendors building
-  libc++ against alternate ABI libraries should make sure that their ABI library installs
-  its own headers.
-
-- The legacy testing configuration is now deprecated and will be removed in LLVM 16. For
-  most users, this should not have any impact. However, if you are testing libc++, libc++abi, or
-  libunwind in a configuration or on a platform that used to be supported by the legacy testing
-  configuration and isn't supported by one of the configurations in ``libcxx/test/configs``,
-  ``libcxxabi/test/configs``, or ``libunwind/test/configs``, please move to one of those
-  configurations or define your own.
-
-- MinGW DLL builds of libc++ no longer use dllimport in their headers, which
-  means that the same set of installed headers works for both DLL and static
-  linkage. This means that distributors finally can build both library
-  versions with a single CMake invocation.
-
-- The ``LIBCXX_HIDE_FROM_ABI_PER_TU_BY_DEFAULT`` configuration option has been removed. Indeed,
-  the risk of ODR violations from mixing 
diff erent versions of libc++ in the same program has
-  been mitigated with a 
diff erent technique that is simpler and does not have the drawbacks of
-  using internal linkage.

diff  --git a/libcxx/docs/conf.py b/libcxx/docs/conf.py
index 52414f21c3122..12876d18256d2 100644
--- a/libcxx/docs/conf.py
+++ b/libcxx/docs/conf.py
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '15.0'
+version = '16.0'
 # The full version, including alpha/beta/rc tags.
-release = '15.0'
+release = '16.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 8c2f7614af537..57b89a29d2083 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -24,7 +24,7 @@
 
 #ifdef __cplusplus
 
-#  define _LIBCPP_VERSION 15000
+#  define _LIBCPP_VERSION 16000
 
 #  define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
 #  define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y)

diff  --git a/libunwind/docs/conf.py b/libunwind/docs/conf.py
index 21f1b011723b0..3fe17d003c769 100644
--- a/libunwind/docs/conf.py
+++ b/libunwind/docs/conf.py
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '15.0'
+version = '16.0'
 # The full version, including alpha/beta/rc tags.
-release = '15.0'
+release = '16.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 936d800cabc37..aedfdfaf2c814 100644
--- a/lld/docs/ReleaseNotes.rst
+++ b/lld/docs/ReleaseNotes.rst
@@ -26,35 +26,12 @@ Non-comprehensive list of changes in this release
 ELF Improvements
 ----------------
 
-* ``-z pack-relative-relocs`` is now available to support ``DT_RELR`` for glibc 2.36+.
-  (`D120701 <https://reviews.llvm.org/D120701>`_)
-* ``--no-fortran-common`` (pre 12.0.0 behavior) is now the default.
-* ``FORCE_LLD_DIAGNOSTICS_CRASH`` environment variable is now available to force LLD to crash.
-  (`D128195 <https://reviews.llvm.org/D128195>`_)
-
 Breaking changes
 ----------------
 
-* The GNU ld incompatible ``--no-define-common`` has been removed.
-* The obscure ``-dc``/``-dp`` options have been removed.
-* ``-d`` is now ignored.
-* If a prevailing COMDAT group defines STB_WEAK symbol, having a STB_GLOBAL symbol in a non-prevailing group is now rejected with a diagnostic.
-  (`D120626 <https://reviews.llvm.org/D120626>`_)
-* Support for the legacy ``.zdebug`` format has been removed. Run
-  ``objcopy --decompress-debug-sections`` in case old object files use ``.zdebug``.
-  (`D126793 <https://reviews.llvm.org/D126793>`_)
-* ``--time-trace-file=<file>`` has been removed.
-  Use ``--time-trace=<file>`` instead.
-  (`D128451 <https://reviews.llvm.org/D128451>`_)
-
 COFF Improvements
 -----------------
 
-* Added autodetection of MSVC toolchain, a la clang-cl.  Also added
-  ``/winsysroot:`` support for explicit specification of MSVC toolchain
-  location, similar to clang-cl's ``/winsysroot``. For now,
-  ``/winsysroot:`` requires also passing in an explicit ``/machine:`` flag.
-  (`D118070 <https://reviews.llvm.org/D118070>`_)
 * ...
 
 MinGW Improvements
@@ -65,12 +42,6 @@ MinGW Improvements
 MachO Improvements
 ------------------
 
-* We now support proper relocation and pruning of EH frames. **Note:** this
-  comes at some performance overhead on x86_64 builds, and we recommend adding
-  the ``-femit-compact-unwind=no-compact-unwind`` compile flag to avoid it.
-  (`D129540 <https://reviews.llvm.org/D129540>`_,
-  `D122258 <https://reviews.llvm.org/D122258>`_)
-
 WebAssembly Improvements
 ------------------------
 

diff  --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 45399dc0537e1..6936462646bad 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -16,7 +16,7 @@ endif()
 set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR ON)
 
 if(NOT DEFINED LLVM_VERSION_MAJOR)
-  set(LLVM_VERSION_MAJOR 15)
+  set(LLVM_VERSION_MAJOR 16)
 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 3b374e2c613dd..4434a9663ac15 100644
--- a/llvm/docs/ReleaseNotes.rst
+++ b/llvm/docs/ReleaseNotes.rst
@@ -47,71 +47,12 @@ Non-comprehensive list of changes in this release
 Update on required toolchains to build LLVM
 -------------------------------------------
 
-With LLVM 15.x we will raise the version requirements of the toolchain used
-to build LLVM. The new requirements are as follows:
-
-* GCC >= 7.1
-* Clang >= 5.0
-* Apple Clang >= 9.3
-* Visual Studio 2019 >= 16.7
-
-In LLVM 15.x these requirements will be "soft" requirements and the version
-check can be skipped by passing -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON
-to CMake.
-
-With the release of LLVM 16.x these requirements will be hard and LLVM developers
-can start using C++17 features, making it impossible to build with older
-versions of these toolchains.
-
 Changes to the LLVM IR
 ----------------------
 
-* LLVM now uses `opaque pointers <OpaquePointers.html>`__. This means that
-  
diff erent pointer types like ``i8*``, ``i32*`` or ``void()**`` are now
-  represented as a single ``ptr`` type. See the linked document for migration
-  instructions.
-* Renamed ``llvm.experimental.vector.extract`` intrinsic to ``llvm.vector.extract``.
-* Renamed ``llvm.experimental.vector.insert`` intrinsic to ``llvm.vector.insert``.
-* The constant expression variants of the following instructions have been
-  removed:
-  * ``extractvalue``
-  * ``insertvalue``
-  * ``udiv``
-  * ``sdiv``
-  * ``urem``
-  * ``srem``
-  * ``fadd``
-  * ``fsub``
-  * ``fmul``
-  * ``fdiv``
-  * ``frem``
-* Added the support for ``fmax`` and ``fmin`` in ``atomicrmw`` instruction. The
-  comparison is expected to match the behavior of ``llvm.maxnum.*`` and
-  ``llvm.minnum.*`` respectively.
-* ``callbr`` instructions no longer use ``blockaddress`` arguments for labels.
-  Instead, label constraints starting with ``!`` refer directly to entries in
-  the ``callbr`` indirect destination list.
-
-.. code-block:: llvm
-
-    ; Old representation
-    %res = callbr i32 asm "", "=r,r,i"(i32 %x, i8 *blockaddress(@foo, %indirect))
-          to label %fallthrough [label %indirect]
-    ; New representation
-    %res = callbr i32 asm "", "=r,r,!i"(i32 %x)
-          to label %fallthrough [label %indirect]
-
 Changes to building LLVM
 ------------------------
 
-* Omitting ``CMAKE_BUILD_TYPE`` when using a single configuration generator is now
-  an error. You now have to pass ``-DCMAKE_BUILD_TYPE=<type>`` in order to configure
-  LLVM. This is done to help new users of LLVM select the correct type: since building
-  LLVM in Debug mode is very resource intensive, we want to make sure that new users
-  make the choice that lines up with their usage. We have also improved documentation
-  around this setting that should help new users. You can find this documentation
-  `here <https://llvm.org/docs/CMake.html#cmake-build-type>`_.
-
 Changes to TableGen
 -------------------
 
@@ -121,28 +62,9 @@ Changes to the AArch64 Backend
 Changes to the AMDGPU Backend
 -----------------------------
 
-* 8 and 16-bit atomic loads and stores are now supported
-
-
 Changes to the ARM Backend
 --------------------------
 
-* Added support for the Armv9-A, Armv9.1-A and Armv9.2-A architectures.
-* Added support for the Armv8.1-M PACBTI-M extension.
-* Added support for the Armv9-A, Armv9.1-A and Armv9.2-A architectures.
-* Added support for the Armv8.1-M PACBTI-M extension.
-* Removed the deprecation of ARMv8-A T32 Complex IT blocks. No deprecation
-  warnings will be generated and -mrestrict-it is now always off by default.
-  Previously it was on by default for Armv8 and off for all other architecture
-  versions.
-* Added a pass to workaround Cortex-A57 Erratum 1742098 and Cortex-A72
-  Erratum 1655431. This is enabled by default when targeting either CPU.
-* Implemented generation of Windows SEH unwind information.
-* Switched the MinGW target to use SEH instead of DWARF for unwind information.
-* Added support for the Cortex-M85 CPU.
-* Added support for a new -mframe-chain=(none|aapcs|aapcs+leaf) command-line
-  option, which controls the generation of AAPCS-compliant Frame Records.
-
 Changes to the AVR Backend
 --------------------------
 
@@ -151,13 +73,6 @@ Changes to the AVR Backend
 Changes to the DirectX Backend
 ------------------------------
 
-* DirectX has been added as an experimental target. Specify
-  ``-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=DirectX`` in your CMake configuration
-  to enable it. The target is not packaged in pre-built binaries.
-* The DirectX backend supports the ``dxil`` architecture which is based on LLVM
-  3.6 IR encoded as bitcode and is the format used for DirectX GPU Shader
-  programs.
-
 Changes to the Hexagon Backend
 ------------------------------
 
@@ -176,8 +91,6 @@ Changes to the PowerPC Backend
 Changes to the RISC-V Backend
 -----------------------------
 
-* The Zvfh extension was added.
-
 Changes to the WebAssembly Backend
 ----------------------------------
 
@@ -186,9 +99,6 @@ Changes to the WebAssembly Backend
 Changes to the X86 Backend
 --------------------------
 
-* Support ``half`` type on SSE2 and above targets.
-* Support ``rdpru`` instruction on Zen2 and above targets.
-
 Changes to the OCaml bindings
 -----------------------------
 
@@ -196,57 +106,6 @@ Changes to the OCaml bindings
 Changes to the C API
 --------------------
 
-* Add ``LLVMGetCastOpcode`` function to aid users of ``LLVMBuildCast`` in
-  resolving the best cast operation given a source value and destination type.
-  This function is a direct wrapper of ``CastInst::getCastOpcode``.
-
-* Add ``LLVMGetAggregateElement`` function as a wrapper for
-  ``Constant::getAggregateElement``, which can be used to fetch an element of a
-  constant struct, array or vector, independently of the underlying
-  representation. The ``LLVMGetElementAsConstant`` function is deprecated in
-  favor of the new function, which works on all constant aggregates, rather than
-  only instances of ``ConstantDataSequential``.
-
-* The following functions for creating constant expressions have been removed,
-  because the underlying constant expressions are no longer supported. Instead,
-  an instruction should be created using the ``LLVMBuildXYZ`` APIs, which will
-  constant fold the operands if possible and create an instruction otherwise:
-  * ``LLVMConstExtractValue``
-  * ``LLVMConstInsertValue``
-  * ``LLVMConstUDiv``
-  * ``LLVMConstExactUDiv``
-  * ``LLVMConstSDiv``
-  * ``LLVMConstExactSDiv``
-  * ``LLVMConstURem``
-  * ``LLVMConstSRem``
-  * ``LLVMConstFAdd``
-  * ``LLVMConstFSub``
-  * ``LLVMConstFMul``
-  * ``LLVMConstFDiv``
-  * ``LLVMConstFRem``
-
-* Add ``LLVMDeleteInstruction`` function which allows deleting instructions that
-  are not inserted into a basic block.
-
-* As part of the opaque pointer migration, the following APIs are deprecated and
-  will be removed in the next release:
-  * ``LLVMBuildLoad`` -> ``LLVMBuildLoad2``
-  * ``LLVMBuildCall`` -> ``LLVMBuildCall2``
-  * ``LLVMBuildInvoke`` -> ``LLVMBuildInvoke2``
-  * ``LLVMBuildGEP`` -> ``LLVMBuildGEP2``
-  * ``LLVMBuildInBoundsGEP`` -> ``LLVMBuildInBoundsGEP2``
-  * ``LLVMBuildStructGEP`` -> ``LLVMBuildStructGEP2``
-  * ``LLVMBuildPtrDiff`` -> ``LLVMBuildPtrDiff2``
-  * ``LLVMConstGEP`` -> ``LLVMConstGEP2``
-  * ``LLVMConstInBoundsGEP`` -> ``LLVMConstInBoundsGEP2``
-  * ``LLVMAddAlias`` -> ``LLVMAddAlias2``
-
-* Refactor compression namespaces across the project, making way for a possible
-  introduction of alternatives to zlib compression in the llvm toolchain.
-  Changes are as follows:
-  * Relocate the ``llvm::zlib`` namespace to ``llvm::compression::zlib``.
-  * Remove crc32 from zlib compression namespace, people should use the ``llvm::crc32`` instead.
-
 Changes to the Go bindings
 --------------------------
 
@@ -274,50 +133,15 @@ During this release ...
 Changes to the LLVM tools
 ---------------------------------
 
-* (Experimental) :manpage:`llvm-symbolizer(1)` now has ``--filter-markup`` to
-  filter :doc:`Symbolizer Markup </SymbolizerMarkupFormat>` into human-readable
-  form.
-* :doc:`llvm-objcopy <CommandGuide/llvm-objcopy>` has removed support for the legacy ``zlib-gnu`` format.
-* :doc:`llvm-objcopy <CommandGuide/llvm-objcopy>` now allows ``--set-section-flags src=... --rename-section src=tst``.
-  ``--add-section=.foo1=... --rename-section=.foo1=.foo2`` now adds ``.foo1`` instead of ``.foo2``.
-* The LLVM gold plugin now ignores bitcode from the ``.llvmbc`` section of ELF
-  files when doing LTO.  https://github.com/llvm/llvm-project/issues/47216
-
 Changes to LLDB
 ---------------------------------
 
-* The "memory region" command now has a "--all" option to list all
-  memory regions (including unmapped ranges). This is the equivalent
-  of using address 0 then repeating the command until all regions
-  have been listed.
-* Added "--show-tags" option to the "memory find" command. This is off by default.
-  When enabled, if the target value is found in tagged memory, the tags for that
-  memory will be shown inline with the memory contents.
-* Various memory related parts of LLDB have been updated to handle
-  non-address bits (such as AArch64 pointer signatures):
-
-  * "memory read", "memory write" and "memory find" can now be used with
-    addresses with non-address bits.
-  * All the read and write memory methods on SBProccess and SBTarget can
-    be used with addreses with non-address bits.
-  * When printing a pointer expression, LLDB can now dereference the result
-    even if it has non-address bits.
-  * The memory cache now ignores non-address bits when looking up memory
-    locations. This prevents us reading locations multiple times, or not
-    writing out new values if the addresses have 
diff erent non-address bits.
-
-* LLDB now supports reading memory tags from AArch64 Linux core files.
-
 Changes to Sanitizers
 ---------------------
 
 
 Other Changes
 -------------
-* The code for the `LLVM Visual Studio integration
-  <https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain>`_
-  has been removed. This had been obsolete and abandoned since Visual Studio
-  started including an integration by default in 2019.
 
 External Open Source Projects Using LLVM 15
 ===========================================

diff  --git a/llvm/utils/gn/secondary/llvm/version.gni b/llvm/utils/gn/secondary/llvm/version.gni
index 157929ea26d6d..0940557b8876f 100644
--- a/llvm/utils/gn/secondary/llvm/version.gni
+++ b/llvm/utils/gn/secondary/llvm/version.gni
@@ -1,4 +1,4 @@
-llvm_version_major = 15
+llvm_version_major = 16
 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 2ae93816daee6..25223230691cd 100644
--- a/llvm/utils/lit/lit/__init__.py
+++ b/llvm/utils/lit/lit/__init__.py
@@ -2,7 +2,7 @@
 
 __author__ = 'Daniel Dunbar'
 __email__ = 'daniel at minormatter.com'
-__versioninfo__ = (15, 0, 0)
+__versioninfo__ = (16, 0, 0)
 __version__ = '.'.join(str(v) for v in __versioninfo__) + 'dev'
 
 __all__ = []

diff  --git a/openmp/docs/ReleaseNotes.rst b/openmp/docs/ReleaseNotes.rst
index 697a9e1c21fcb..785332f11858f 100644
--- a/openmp/docs/ReleaseNotes.rst
+++ b/openmp/docs/ReleaseNotes.rst
@@ -1,10 +1,10 @@
 ===========================
-OpenMP 15.0.0 Release Notes
+OpenMP 16.0.0 Release Notes
 ===========================
 
 
 .. warning::
-   These are in-progress notes for the upcoming LLVM 15.0.0 release.
+   These are in-progress notes for the upcoming LLVM 16.0.0 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
@@ -12,7 +12,7 @@ OpenMP 15.0.0 Release Notes
 Introduction
 ============
 
-This document contains the release notes for the OpenMP runtime, release 15.0.0.
+This document contains the release notes for the OpenMP runtime, release 16.0.0.
 Here we describe the status of OpenMP, including major improvements
 from the previous release. All OpenMP releases may be downloaded
 from the `LLVM releases web site <https://llvm.org/releases/>`_.

diff  --git a/pstl/docs/ReleaseNotes.rst b/pstl/docs/ReleaseNotes.rst
index 5f4e04009cab2..ada24a49eba68 100644
--- a/pstl/docs/ReleaseNotes.rst
+++ b/pstl/docs/ReleaseNotes.rst
@@ -1,5 +1,5 @@
 =======================================
-PSTL 15.0.0 (In-Progress) Release Notes
+PSTL 16.0.0 (In-Progress) Release Notes
 =======================================
 
 .. contents::
@@ -10,7 +10,7 @@ Written by the `PSTL Team <https://pstl.llvm.org>`_
 
 .. warning::
 
-   These are in-progress notes for the upcoming pstl 15 release.
+   These are in-progress notes for the upcoming pstl 16 release.
    Release notes for previous releases can be found on
    `the Download Page <https://releases.llvm.org/download.html>`_.
 
@@ -18,7 +18,7 @@ Introduction
 ============
 
 This document contains the release notes for the PSTL parallel algorithms
-library, part of the LLVM Compiler Infrastructure, release 15.0.0. Here we
+library, part of the LLVM Compiler Infrastructure, release 16.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 @@ web page, this document applies to the *next* release, not 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 PSTL 15.0.0?
+What's New in PSTL 16.0.0?
 ==========================
 
 New Features

diff  --git a/pstl/include/pstl/internal/pstl_config.h b/pstl/include/pstl/internal/pstl_config.h
index ad0cb5d312b47..de89e7bd977e7 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 15000
+#define _PSTL_VERSION 16000
 #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 3f829c41cca68..8d462e00db63c 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 == 15000);
-static_assert(_PSTL_VERSION_MAJOR == 15);
+static_assert(_PSTL_VERSION == 16000);
+static_assert(_PSTL_VERSION_MAJOR == 16);
 static_assert(_PSTL_VERSION_MINOR == 00);
 static_assert(_PSTL_VERSION_PATCH == 0);
 


        


More information about the libcxx-commits mailing list