forked from OSchip/llvm-project
Bump the trunk major version to 13
and clear the release notes.
This commit is contained in:
parent
8e464dd76b
commit
5369517d20
|
@ -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 @@ Written by the `LLVM Team <https://llvm.org/>`_
|
|||
|
||||
.. 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 @@ Introduction
|
|||
============
|
||||
|
||||
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 @@ main Clang 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 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 @@ Major New Features
|
|||
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 @@ The improvements are...
|
|||
Improvements to clang-query
|
||||
---------------------------
|
||||
|
||||
- The IgnoreImplicitCastsAndParentheses traversal mode has been removed.
|
||||
The improvements are...
|
||||
|
||||
Improvements to clang-rename
|
||||
----------------------------
|
||||
|
@ -77,123 +67,7 @@ The improvements are...
|
|||
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
|
||||
-----------------------------
|
||||
|
|
|
@ -49,9 +49,9 @@ copyright = u'2007-%d, The Clang Team' % date.today().year
|
|||
# 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.
|
||||
|
|
|
@ -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 @@ Written by the `LLVM Team <https://llvm.org/>`_
|
|||
|
||||
.. 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 @@ Introduction
|
|||
============
|
||||
|
||||
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 @@ main Clang 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 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 @@ Improvements to Clang's diagnostics
|
|||
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 @@ New Pragmas in Clang
|
|||
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 @@ CUDA Support in Clang
|
|||
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 @@ this section should help get you past the largest hurdles of upgrading.
|
|||
Build System Changes
|
||||
--------------------
|
||||
|
||||
These are major changes to the build system that have happened since the 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 @@ release of Clang. Users of the build system should adjust accordingly.
|
|||
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
|
||||
--------
|
||||
|
|
|
@ -49,9 +49,9 @@ copyright = u'2013-%d, Analyzer Team' % date.today().year
|
|||
# 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.
|
||||
|
|
|
@ -29,7 +29,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUIL
|
|||
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")
|
||||
|
||||
|
|
|
@ -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 @@ Written by the `Libc++ Team <https://libcxx.llvm.org>`_
|
|||
|
||||
.. 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 @@ Introduction
|
|||
============
|
||||
|
||||
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 @@ 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++ 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.
|
||||
- ...
|
||||
|
|
|
@ -47,9 +47,9 @@ copyright = u'2011-2020, LLVM Project'
|
|||
# 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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -24,7 +24,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_B
|
|||
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")
|
||||
|
||||
|
|
|
@ -48,9 +48,9 @@ copyright = u'2011-%d, LLVM Project' % date.today().year
|
|||
# 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.
|
||||
|
|
|
@ -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 @@ Non-comprehensive list of changes in this release
|
|||
ELF Improvements
|
||||
----------------
|
||||
|
||||
* ``--error-handling-script`` is added to allow for user-defined handlers upon
|
||||
missing libraries. (`D87758 <https://reviews.llvm.org/D87758>`_)
|
||||
* ...
|
||||
|
||||
Breaking changes
|
||||
----------------
|
||||
|
|
|
@ -48,9 +48,9 @@ copyright = u'2011-%d, LLVM Project' % date.today().year
|
|||
# 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.
|
||||
|
|
|
@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.13.4)
|
|||
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)
|
||||
|
|
|
@ -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 @@ Introduction
|
|||
============
|
||||
|
||||
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 @@ Non-comprehensive list of changes in this release
|
|||
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 @@ Changes to the LLVM IR
|
|||
|
||||
* ...
|
||||
|
||||
* 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 @@ Changes to the X86 Target
|
|||
|
||||
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 @@ Changes to the Debug Info
|
|||
|
||||
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...
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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__ = []
|
||||
|
|
|
@ -27,8 +27,8 @@ set python64_dir=C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python36
|
|||
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%
|
||||
|
|
|
@ -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 @@ In Polly 12 the following important changes have been incorporated.
|
|||
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.
|
||||
|
|
|
@ -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 @@ copyright = u'2010-%d, The Polly Team' % date.today().year
|
|||
# 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.
|
||||
|
|
|
@ -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 @@ Written by the `PSTL Team <https://pstl.llvm.org>`_
|
|||
|
||||
.. 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 @@ Introduction
|
|||
============
|
||||
|
||||
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 @@ 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 12.0.0?
|
||||
What's New in PSTL 13.0.0?
|
||||
==========================
|
||||
|
||||
New Features
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue