Bump trunk version to 19.0.0git

This commit is contained in:
Tom Stellard 2024-01-23 18:21:59 -08:00
parent 93248729cf
commit 987087df90
10 changed files with 11 additions and 2012 deletions

View File

@ -69,9 +69,6 @@ Code completion
Code actions
^^^^^^^^^^^^
- The extract variable tweak gained support for extracting lambda expressions to a variable.
- A new tweak was added for turning unscoped into scoped enums.
Signature help
^^^^^^^^^^^^^^
@ -100,467 +97,15 @@ The improvements are...
Improvements to clang-tidy
--------------------------
- Preprocessor-level module header parsing is now disabled by default due to
the problems it caused in C++20 and above, leading to performance and code
parsing issues regardless of whether modules were used or not. This change
will impact only the following checks:
:doc:`modernize-replace-disallow-copy-and-assign-macro
<clang-tidy/checks/modernize/replace-disallow-copy-and-assign-macro>`,
:doc:`bugprone-reserved-identifier
<clang-tidy/checks/bugprone/reserved-identifier>`, and
:doc:`readability-identifier-naming
<clang-tidy/checks/readability/identifier-naming>`. Those checks will no
longer see macros defined in modules. Users can still enable this
functionality using the newly added command line option
`--enable-module-headers-parsing`.
- Remove configuration option `AnalyzeTemporaryDestructors`, which was deprecated since
:program:`clang-tidy` 16.
- Improved `--dump-config` to print check options in alphabetical order.
- Improved :program:`clang-tidy-diff.py` script.
* Return exit code `1` if any :program:`clang-tidy` subprocess exits with
a non-zero code or if exporting fixes fails.
* Accept a directory as a value for `-export-fixes` to export individual
yaml files for each compilation unit.
* Introduce a `-config-file` option that forwards a configuration file to
:program:`clang-tidy`. Corresponds to the `--config-file` option in
:program:`clang-tidy`.
- Improved :program:`run-clang-tidy.py` script. It now accepts a directory
as a value for `-export-fixes` to export individual yaml files for each
compilation unit.
New checks
^^^^^^^^^^
- New :doc:`bugprone-casting-through-void
<clang-tidy/checks/bugprone/casting-through-void>` check.
Detects unsafe or redundant two-step casting operations involving ``void*``.
- New :doc:`bugprone-chained-comparison
<clang-tidy/checks/bugprone/chained-comparison>` check.
Check detects chained comparison operators that can lead to unintended
behavior or logical errors.
- New :doc:`bugprone-compare-pointer-to-member-virtual-function
<clang-tidy/checks/bugprone/compare-pointer-to-member-virtual-function>` check.
Detects equality comparison between pointer to member virtual function and
anything other than null-pointer-constant.
- New :doc:`bugprone-inc-dec-in-conditions
<clang-tidy/checks/bugprone/inc-dec-in-conditions>` check.
Detects when a variable is both incremented/decremented and referenced inside
a complex condition and suggests moving them outside to avoid ambiguity in
the variable's value.
- New :doc:`bugprone-incorrect-enable-if
<clang-tidy/checks/bugprone/incorrect-enable-if>` check.
Detects incorrect usages of ``std::enable_if`` that don't name the nested
``type`` type.
- New :doc:`bugprone-multi-level-implicit-pointer-conversion
<clang-tidy/checks/bugprone/multi-level-implicit-pointer-conversion>` check.
Detects implicit conversions between pointers of different levels of
indirection.
- New :doc:`bugprone-optional-value-conversion
<clang-tidy/checks/bugprone/optional-value-conversion>` check.
Detects potentially unintentional and redundant conversions where a value is
extracted from an optional-like type and then used to create a new instance
of the same optional-like type.
- New :doc:`bugprone-unused-local-non-trivial-variable
<clang-tidy/checks/bugprone/unused-local-non-trivial-variable>` check.
Warns when a local non trivial variable is unused within a function.
- New :doc:`cppcoreguidelines-no-suspend-with-lock
<clang-tidy/checks/cppcoreguidelines/no-suspend-with-lock>` check.
Flags coroutines that suspend while a lock guard is in scope at the
suspension point.
- New :doc:`hicpp-ignored-remove-result
<clang-tidy/checks/hicpp/ignored-remove-result>` check.
Ensure that the result of ``std::remove``, ``std::remove_if`` and
``std::unique`` are not ignored according to rule 17.5.1.
- New :doc:`misc-coroutine-hostile-raii
<clang-tidy/checks/misc/coroutine-hostile-raii>` check.
Detects when objects of certain hostile RAII types persists across suspension
points in a coroutine. Such hostile types include scoped-lockable types and
types belonging to a configurable denylist.
- New :doc:`modernize-use-constraints
<clang-tidy/checks/modernize/use-constraints>` check.
Replace ``enable_if`` with C++20 requires clauses.
- New :doc:`modernize-use-starts-ends-with
<clang-tidy/checks/modernize/use-starts-ends-with>` check.
Checks whether a ``find`` or ``rfind`` result is compared with 0 and suggests
replacing with ``starts_with`` when the method exists in the class. Notably,
this will work with ``std::string`` and ``std::string_view``.
- New :doc:`modernize-use-std-numbers
<clang-tidy/checks/modernize/use-std-numbers>` check.
Finds constants and function calls to math functions that can be replaced
with C++20's mathematical constants from the ``numbers`` header and
offers fix-it hints.
- New :doc:`performance-enum-size
<clang-tidy/checks/performance/enum-size>` check.
Recommends the smallest possible underlying type for an ``enum`` or ``enum``
class based on the range of its enumerators.
- New :doc:`readability-avoid-nested-conditional-operator
<clang-tidy/checks/readability/avoid-nested-conditional-operator>` check.
Identifies instances of nested conditional operators in the code.
- New :doc:`readability-avoid-return-with-void-value
<clang-tidy/checks/readability/avoid-return-with-void-value>` check.
Finds return statements with ``void`` values used within functions with
``void`` result types.
- New :doc:`readability-redundant-casting
<clang-tidy/checks/readability/redundant-casting>` check.
Detects explicit type casting operations that involve the same source and
destination types, and subsequently recommend their removal.
- New :doc:`readability-redundant-inline-specifier
<clang-tidy/checks/readability/redundant-inline-specifier>` check.
Detects redundant ``inline`` specifiers on function and variable declarations.
- New :doc:`readability-reference-to-constructed-temporary
<clang-tidy/checks/readability/reference-to-constructed-temporary>` check.
Detects C++ code where a reference variable is used to extend the lifetime
of a temporary object that has just been constructed.
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
^^^^^^^^^^^^^^^^^^^^^^^^^^
- Improved :doc:`abseil-string-find-startswith
<clang-tidy/checks/abseil/string-find-startswith>` check to also consider
``std::basic_string_view`` in addition to ``std::basic_string`` by default.
- Improved :doc:`bugprone-assert-side-effect
<clang-tidy/checks/bugprone/assert-side-effect>` check to report usage of
non-const ``<<`` and ``>>`` operators in assertions and fixed some false-positives
with const operators.
- Improved :doc:`bugprone-dangling-handle
<clang-tidy/checks/bugprone/dangling-handle>` check to support functional
casting during type conversions at variable initialization, now with improved
compatibility for C++17 and later versions.
- Improved :doc:`bugprone-exception-escape
<clang-tidy/checks/bugprone/exception-escape>` check by extending the default
check function names to include ``iter_swap`` and ``iter_move``.
- Improved :doc:`bugprone-implicit-widening-of-multiplication-result
<clang-tidy/checks/bugprone/implicit-widening-of-multiplication-result>` check
to correctly emit fixes.
- Improved :doc:`bugprone-lambda-function-name
<clang-tidy/checks/bugprone/lambda-function-name>` check by adding option
`IgnoreMacros` to ignore warnings in macros.
- Improved :doc:`bugprone-non-zero-enum-to-bool-conversion
<clang-tidy/checks/bugprone/non-zero-enum-to-bool-conversion>` check by
eliminating false positives resulting from direct usage of bitwise operators.
- Improved :doc:`bugprone-reserved-identifier
<clang-tidy/checks/bugprone/reserved-identifier>` check, so that it does not
warn on macros starting with underscore and lowercase letter.
- Improved :doc:`bugprone-sizeof-expression
<clang-tidy/checks/bugprone/sizeof-expression>` check diagnostics to precisely
highlight specific locations, providing more accurate guidance.
- Improved :doc:`bugprone-unchecked-optional-access
<clang-tidy/checks/bugprone/unchecked-optional-access>` check, so that it does
not crash during handling of optional values.
- Improved :doc:`bugprone-undefined-memory-manipulation
<clang-tidy/checks/bugprone/undefined-memory-manipulation>` check to support
fixed-size arrays of non-trivial types.
- Improved :doc:`bugprone-unused-return-value
<clang-tidy/checks/bugprone/unused-return-value>` check diagnostic message,
added support for detection of unused results when cast to non-``void`` type.
Casting to ``void`` no longer suppresses issues by default, control this
behavior with the new `AllowCastToVoid` option.
- Improved :doc:`cppcoreguidelines-avoid-non-const-global-variables
<clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables>` check
to ignore ``static`` variables declared within the scope of
``class``/``struct``.
- Improved :doc:`cppcoreguidelines-avoid-reference-coroutine-parameters
<clang-tidy/checks/cppcoreguidelines/avoid-reference-coroutine-parameters>`
check to ignore false positives related to matching parameters of non
coroutine functions and increase issue detection for cases involving type
aliases with references.
- Improved :doc:`cppcoreguidelines-missing-std-forward
<clang-tidy/checks/cppcoreguidelines/missing-std-forward>` check to
address false positives in the capture list and body of lambdas.
- Improved :doc:`cppcoreguidelines-narrowing-conversions
<clang-tidy/checks/cppcoreguidelines/narrowing-conversions>` check by
extending the `IgnoreConversionFromTypes` option to include types without a
declaration, such as built-in types.
- Improved :doc:`cppcoreguidelines-prefer-member-initializer
<clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>` check to
ignore delegate constructors and ignore re-assignment for reference or when
initialization depend on field that is initialized before. Additionally, it
now provides valid fixes for member variables initialized with macros.
- Improved :doc:`cppcoreguidelines-pro-bounds-array-to-pointer-decay
<clang-tidy/checks/cppcoreguidelines/pro-bounds-array-to-pointer-decay>` check
to ignore predefined expression (e.g., ``__func__``, ...).
- Improved :doc:`cppcoreguidelines-pro-bounds-constant-array-index
<clang-tidy/checks/cppcoreguidelines/pro-bounds-constant-array-index>` check
to perform checks on derived classes of ``std::array``.
- Improved :doc:`cppcoreguidelines-pro-type-const-cast
<clang-tidy/checks/cppcoreguidelines/pro-type-const-cast>` check to ignore
casts to ``const`` or ``volatile`` type (controlled by `StrictMode` option)
and casts in implicitly invoked code.
- Improved :doc:`cppcoreguidelines-pro-type-member-init
<clang-tidy/checks/cppcoreguidelines/pro-type-member-init>` check to ignore
dependent delegate constructors.
- Improved :doc:`cppcoreguidelines-pro-type-static-cast-downcast
<clang-tidy/checks/cppcoreguidelines/pro-type-static-cast-downcast>` check to
disregard casts on non-polymorphic types when the `StrictMode` option is set
to `false`.
- Improved :doc:`cppcoreguidelines-pro-type-vararg
<clang-tidy/checks/cppcoreguidelines/pro-type-vararg>` check to ignore
false-positives in unevaluated context (e.g., ``decltype``, ``sizeof``, ...).
- Improved :doc:`cppcoreguidelines-rvalue-reference-param-not-moved
<clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved>` check
to ignore unused parameters when they are marked as unused and parameters of
deleted functions and constructors.
- Improved :doc:`google-readability-casting
<clang-tidy/checks/google/readability-casting>` check to ignore constructor
calls disguised as functional casts.
- Improved :doc:`google-runtime-int <clang-tidy/checks/google/runtime-int>`
check to ignore false positives on user defined-literals.
- Improved :doc:`llvm-namespace-comment
<clang-tidy/checks/llvm/namespace-comment>` check to provide fixes for
``inline`` namespaces in the same format as :program:`clang-format`.
- Improved :doc:`llvmlibc-callee-namespace
<clang-tidy/checks/llvmlibc/callee-namespace>` to support
customizable namespace. This matches the change made to implementation in
namespace.
- Improved :doc:`llvmlibc-implementation-in-namespace
<clang-tidy/checks/llvmlibc/implementation-in-namespace>` to support
customizable namespace. This further allows for testing the libc when the
system-libc is also LLVM's libc.
- Improved :doc:`llvmlibc-inline-function-decl
<clang-tidy/checks/llvmlibc/inline-function-decl>` to properly ignore implicit
functions, such as struct constructors, and explicitly deleted functions.
- Improved :doc:`misc-const-correctness
<clang-tidy/checks/misc/const-correctness>` check to avoid false positive when
using pointer to member function. Additionally, the check no longer emits
a diagnostic when a variable that is not type-dependent is an operand of a
type-dependent binary operator. Improved performance of the check through
optimizations. The check no longer emits a diagnostic for non-parameter-pack
variables in C++17 fold expressions.
- Improved :doc:`misc-include-cleaner
<clang-tidy/checks/misc/include-cleaner>` check by adding option
`DeduplicateFindings` to output one finding per symbol occurrence, avoid
inserting the same header multiple times, fix a bug where `IgnoreHeaders`
option won't work with verbatim/std headers.
- Improved :doc:`misc-redundant-expression
<clang-tidy/checks/misc/redundant-expression>` check to ignore
false-positives in unevaluated context (e.g., ``decltype``).
- Improved :doc:`misc-static-assert
<clang-tidy/checks/misc/static-assert>` check to ignore false-positives when
referring to non-``constexpr`` variables in non-unevaluated context.
- Improved :doc:`misc-unused-using-decls
<clang-tidy/checks/misc/unused-using-decls>` check to avoid false positive when
using in elaborated type and only check C++ files.
- Improved :doc:`modernize-avoid-bind
<clang-tidy/checks/modernize/avoid-bind>` check to
not emit a ``return`` for fixes when the function returns ``void`` and to
provide valid fixes for cases involving bound C++ operators.
- Improved :doc:`modernize-loop-convert
<clang-tidy/checks/modernize/loop-convert>` to support for-loops with
iterators initialized by free functions like ``begin``, ``end``, or ``size``
and avoid crash for array of dependent array and non-dereferenceable builtin
types used as iterators.
- Improved :doc:`modernize-make-shared
<clang-tidy/checks/modernize/make-shared>` check to support
``std::shared_ptr`` implementations that inherit the ``reset`` method from a
base class.
- Improved :doc:`modernize-return-braced-init-list
<clang-tidy/checks/modernize/return-braced-init-list>` check to ignore
false-positives when constructing the container with ``count`` copies of
elements with value ``value``.
- Improved :doc:`modernize-use-auto
<clang-tidy/checks/modernize/use-auto>` to avoid create incorrect fix hints
for pointer to array type and pointer to function type.
- Improved :doc:`modernize-use-emplace
<clang-tidy/checks/modernize/use-emplace>` to not replace aggregates that
``emplace`` cannot construct with aggregate initialization.
- Improved :doc:`modernize-use-equals-delete
<clang-tidy/checks/modernize/use-equals-delete>` check to ignore
false-positives when special member function is actually used or implicit.
- Improved :doc:`modernize-use-nullptr
<clang-tidy/checks/modernize/use-nullptr>` check by adding option
`IgnoredTypes` that can be used to exclude some pointer types.
- Improved :doc:`modernize-use-std-print
<clang-tidy/checks/modernize/use-std-print>` check to accurately generate
fixes for reordering arguments.
- Improved :doc:`modernize-use-using
<clang-tidy/checks/modernize/use-using>` check to fix function pointer and
forward declared ``typedef`` correctly. Added option `IgnoreExternC` to ignore
``typedef`` declaration in ``extern "C"`` scope.
- Improved :doc:`performance-faster-string-find
<clang-tidy/checks/performance/faster-string-find>` check to properly escape
single quotes.
- Improved :doc:`performance-for-range-copy
<clang-tidy/checks/performance/for-range-copy>` check to handle cases where
the loop variable is a structured binding.
- Improved :doc:`performance-noexcept-move-constructor
<clang-tidy/checks/performance/noexcept-move-constructor>` to better handle
conditional ``noexcept`` expressions, eliminating false-positives.
- Improved :doc:`performance-noexcept-swap
<clang-tidy/checks/performance/noexcept-swap>` check to enforce a stricter
match with the swap function signature and better handling of condition
``noexcept`` expressions, eliminating false-positives. ``iter_swap`` function
name is checked by default.
- Improved :doc:`readability-braces-around-statements
<clang-tidy/checks/readability/braces-around-statements>` check to
ignore false-positive for ``if constexpr`` in lambda expression.
- Improved :doc:`readability-avoid-const-params-in-decls
<clang-tidy/checks/readability/avoid-const-params-in-decls>` diagnostics to
highlight the ``const`` location
- Improved :doc:`readability-container-contains
<clang-tidy/checks/readability/container-contains>` to correctly handle
integer literals with suffixes in fix-its.
- Improved :doc:`readability-container-size-empty
<clang-tidy/checks/readability/container-size-empty>` check to
detect comparison between string and empty string literals and support
``length()`` method as an alternative to ``size()``. Resolved false positives
tied to negative values from size-like methods, and one triggered by size
checks below zero.
- Improved :doc:`readability-function-size
<clang-tidy/checks/readability/function-size>` check configuration to use
`none` rather than `-1` to disable some parameters.
- Improved :doc:`readability-identifier-naming
<clang-tidy/checks/readability/identifier-naming>` check to issue accurate
warnings when a type's forward declaration precedes its definition.
Additionally, it now provides appropriate warnings for ``struct`` and
``union`` in C, while also incorporating support for the
``Leading_upper_snake_case`` naming convention. The handling of ``typedef``
has been enhanced, particularly within complex types like function pointers
and cases where style checks were omitted when functions started with macros.
Added support for C++20 ``concept`` declarations. ``Camel_Snake_Case`` and
``camel_Snake_Case`` now detect more invalid identifier names. Fields in
anonymous records (i.e. anonymous structs and unions) now can be checked with
the naming rules associated with their enclosing scopes rather than the naming
rules of public ``struct``/``union`` members.
- Improved :doc:`readability-implicit-bool-conversion
<clang-tidy/checks/readability/implicit-bool-conversion>` check to take
do-while loops into account for the `AllowIntegerConditions` and
`AllowPointerConditions` options. It also now provides more consistent
suggestions when parentheses are added to the return value or expressions.
It also ignores false-positives for comparison containing bool bitfield.
- Improved :doc:`readability-misleading-indentation
<clang-tidy/checks/readability/misleading-indentation>` check to ignore
false-positives for line started with empty macro.
- Improved :doc:`readability-non-const-parameter
<clang-tidy/checks/readability/non-const-parameter>` check to ignore
false-positives in initializer list of record.
- Improved :doc:`readability-redundant-member-init
<clang-tidy/checks/readability/redundant-member-init>` check to now also
detect redundant in-class initializers.
- Improved :doc:`readability-simplify-boolean-expr
<clang-tidy/checks/readability/simplify-boolean-expr>` check by adding the
new option `IgnoreMacros` that allows to ignore boolean expressions originating
from expanded macros.
- Improved :doc:`readability-simplify-subscript-expr
<clang-tidy/checks/readability/simplify-subscript-expr>` check by extending
the default value of the `Types` option to include ``std::span``.
- Improved :doc:`readability-static-accessed-through-instance
<clang-tidy/checks/readability/static-accessed-through-instance>` check to
identify calls to static member functions with out-of-class inline definitions.
Removed checks
^^^^^^^^^^^^^^

File diff suppressed because it is too large Load Diff

View File

@ -62,7 +62,7 @@
// _LIBCPP_VERSION represents the version of libc++, which matches the version of LLVM.
// Given a LLVM release LLVM XX.YY.ZZ (e.g. LLVM 17.0.1 == 17.00.01), _LIBCPP_VERSION is
// defined to XXYYZZ.
# define _LIBCPP_VERSION 180000
# define _LIBCPP_VERSION 190000
# define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
# define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y)

View File

@ -26,21 +26,12 @@ Non-comprehensive list of changes in this release
ELF Improvements
----------------
* ``--fat-lto-objects`` option is added to support LLVM FatLTO.
Without ``--fat-lto-objects``, LLD will link LLVM FatLTO objects using the
relocatable object file. (`D146778 <https://reviews.llvm.org/D146778>`_)
* common-page-size can now be larger than the system page-size.
(`#57618 <https://github.com/llvm/llvm-project/issues/57618>`_)
Breaking changes
----------------
COFF Improvements
-----------------
* Added support for ``--time-trace`` and associated ``--time-trace-granularity``.
This generates a .json profile trace of the linker execution.
MinGW Improvements
------------------
@ -50,9 +41,5 @@ MachO Improvements
WebAssembly Improvements
------------------------
* Indexes are no longer required on archive files. Instead symbol information
is read from object files within the archive. This matches the behaviour of
the ELF linker.
Fixes
#####

View File

@ -16,7 +16,7 @@ if(NOT LLVM_NO_INSTALL_NAME_DIR_FOR_BUILD_TREE)
endif()
if(NOT DEFINED LLVM_VERSION_MAJOR)
set(LLVM_VERSION_MAJOR 18)
set(LLVM_VERSION_MAJOR 19)
endif()
if(NOT DEFINED LLVM_VERSION_MINOR)
set(LLVM_VERSION_MINOR 0)

View File

@ -50,79 +50,27 @@ Update on required toolchains to build LLVM
Changes to the LLVM IR
----------------------
* The `llvm.stacksave` and `llvm.stackrestore` intrinsics now use
an overloaded pointer type to support non-0 address spaces.
* The constant expression variants of the following instructions have been
removed:
* ``and``
* ``or``
* ``lshr``
* ``ashr``
* ``zext``
* ``sext``
* ``fptrunc``
* ``fpext``
* ``fptoui``
* ``fptosi``
* ``uitofp``
* ``sitofp``
* Added `llvm.exp10` intrinsic.
* Added a ``code_model`` attribute for the `global variable <LangRef.html#global-variables>`_.
Changes to LLVM infrastructure
------------------------------
* Minimum Clang version to build LLVM in C++20 configuration has been updated to clang-17.0.6.
Changes to building LLVM
------------------------
Changes to TableGen
-------------------
* Added constructs for debugging TableGen files:
* `dump` keyword to dump messages to standard error, see
https://github.com/llvm/llvm-project/pull/68793.
* `!repr` bang operator to inspect the content of values, see
https://github.com/llvm/llvm-project/pull/68716.
Changes to Interprocedural Optimizations
----------------------------------------
Changes to the AArch64 Backend
------------------------------
* Added support for Cortex-A520, Cortex-A720 and Cortex-X4 CPUs.
* Neoverse-N2 was incorrectly marked as an Armv8.5a core. This has been
changed to an Armv9.0a core. However, crypto options are not enabled
by default for Armv9 cores, so `-mcpu=neoverse-n2+crypto` is now required
to enable crypto for this core. As far as the compiler is concerned,
Armv9.0a has the same features enabled as Armv8.5a, with the exception
of crypto.
Changes to the AMDGPU Backend
-----------------------------
* `llvm.sqrt.f32` is now lowered correctly. Use `llvm.amdgcn.sqrt.f32`
for raw instruction access.
* Implemented `llvm.stacksave` and `llvm.stackrestore` intrinsics.
* Implemented :ref:`llvm.get.rounding <int_get_rounding>`
* The default :ref:`AMDHSA code object version <amdgpu-amdhsa-code-object-metadata-v5>` is now 5.
Changes to the ARM Backend
--------------------------
* Added support for Cortex-M52 CPUs.
* Added execute-only support for Armv6-M.
Changes to the AVR Backend
--------------------------
@ -135,21 +83,6 @@ Changes to the Hexagon Backend
Changes to the LoongArch Backend
--------------------------------
* Added intrinsics support for all LSX (128-bits SIMD) and LASX (256-bits SIMD)
instructions.
* Added definition and intrinsics support for new instructions that were
introduced in LoongArch Reference Manual V1.10.
* Emitted adjacent ``pcaddu18i+jirl`` instrunction sequence with one relocation
``R_LARCH_CALL36`` instead of ``pcalau12i+jirl`` with two relocations
``R_LARCH_PCALA_{HI20,LO12}`` for function call in medium code model.
* The code model of global variables can now be overridden by means of the newly
added LLVM IR attribute, ``code_model``.
* Added support for the ``llvm.is.fpclass`` intrinsic.
* ``mulodi4`` and ``muloti4`` libcalls were disabled due to absence in libgcc.
* Added initial support for auto vectorization.
* Added initial support for linker relaxation.
* Assorted codegen improvements.
Changes to the MIPS Backend
---------------------------
@ -159,146 +92,29 @@ Changes to the PowerPC Backend
Changes to the RISC-V Backend
-----------------------------
* The Zfa extension version was upgraded to 1.0 and is no longer experimental.
* Zihintntl extension version was upgraded to 1.0 and is no longer experimental.
* Intrinsics were added for Zk*, Zbb, and Zbc. See https://github.com/riscv-non-isa/riscv-c-api-doc/blob/master/riscv-c-api.md#scalar-bit-manipulation-extension-intrinsics
* Default ABI with F but without D was changed to ilp32f for RV32 and to lp64f for RV64.
* The Zvbb, Zvbc, Zvkb, Zvkg, Zvkn, Zvknc, Zvkned, Zvkng, Zvknha, Zvknhb, Zvks,
Zvksc, Zvksed, Zvksg, Zvksh, and Zvkt extension version was upgraded to 1.0
and is no longer experimental. However, the C intrinsics for these extensions
are still experimental. To use the C intrinsics for these extensions,
``-menable-experimental-extensions`` needs to be passed to Clang.
* XSfcie extension and SiFive CSRs and instructions that were associated with
it have been removed. None of these CSRs and instructions were part of
"SiFive Custom Instruction Extension" as SiFive defines it. The LLVM project
needs to work with SiFive to define and document real extension names for
individual CSRs and instructions.
* ``-mcpu=sifive-p450`` was added.
* CodeGen of RV32E/RV64E was supported experimentally.
* CodeGen of ilp32e/lp64e was supported experimentally.
* Support was added for the Ziccif, Ziccrse, Ziccamoa, Zicclsm, Za64rs, Za128rs
and Zic64b extensions which were introduced as a part of the RISC-V Profiles
specification.
* The Smepmp 1.0 extension is now supported.
* ``-mcpu=sifive-p670`` was added.
Changes to the WebAssembly Backend
----------------------------------
Changes to the Windows Target
-----------------------------
* The LLVM filesystem class ``UniqueID`` and function ``equivalent()``
no longer determine that distinct different path names for the same
hard linked file actually are equal. This is an intentional tradeoff in a
bug fix, where the bug used to cause distinct files to be considered
equivalent on some file systems. This change fixed the issues
https://github.com/llvm/llvm-project/issues/61401 and
https://github.com/llvm/llvm-project/issues/22079.
Changes to the X86 Backend
--------------------------
* The ``i128`` type now matches GCC and clang's ``__int128`` type. This mainly
benefits external projects such as Rust which aim to be binary compatible
with C, but also fixes code generation where LLVM already assumed that the
type matched and called into libgcc helper functions.
* Support ISA of ``USER_MSR``.
* Support ISA of ``AVX10.1-256`` and ``AVX10.1-512``.
* ``-mcpu=pantherlake`` and ``-mcpu=clearwaterforest`` are now supported.
* ``-mapxf`` is supported.
* Marking global variables with ``code_model = "small"/"large"`` in the IR now
overrides the global code model to allow 32-bit relocations or require 64-bit
relocations to the global variable.
* The medium code model's code generation was audited to be more similar to the
small code model where possible.
Changes to the OCaml bindings
-----------------------------
Changes to the Python bindings
------------------------------
* The python bindings have been removed.
Changes to the C API
--------------------
* Added ``LLVMGetTailCallKind`` and ``LLVMSetTailCallKind`` to
allow getting and setting ``tail``, ``musttail``, and ``notail``
attributes on call instructions.
* 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:
* ``LLVMConstAnd``
* ``LLVMConstOr``
* ``LLVMConstLShr``
* ``LLVMConstAShr``
* ``LLVMConstZExt``
* ``LLVMConstSExt``
* ``LLVMConstZExtOrBitCast``
* ``LLVMConstSExtOrBitCast``
* ``LLVMConstIntCast``
* ``LLVMConstFPTrunc``
* ``LLVMConstFPExt``
* ``LLVMConstFPToUI``
* ``LLVMConstFPToSI``
* ``LLVMConstUIToFP``
* ``LLVMConstSIToFP``
* ``LLVMConstFPCast``
* Added ``LLVMCreateTargetMachineWithOptions``, along with helper functions for
an opaque option structure, as an alternative to ``LLVMCreateTargetMachine``.
The option structure exposes an additional setting (i.e., the target ABI) and
provides default values for unspecified settings.
* Added ``LLVMGetNNeg`` and ``LLVMSetNNeg`` for getting/setting the new nneg flag
on zext instructions, and ``LLVMGetIsDisjoint`` and ``LLVMSetIsDisjoint``
for getting/setting the new disjoint flag on or instructions.
* Added the following functions for manipulating operand bundles, as well as
building ``call`` and ``invoke`` instructions that use operand bundles:
* ``LLVMBuildCallWithOperandBundles``
* ``LLVMBuildInvokeWithOperandBundles``
* ``LLVMCreateOperandBundle``
* ``LLVMDisposeOperandBundle``
* ``LLVMGetNumOperandBundles``
* ``LLVMGetOperandBundleAtIndex``
* ``LLVMGetNumOperandBundleArgs``
* ``LLVMGetOperandBundleArgAtIndex``
* ``LLVMGetOperandBundleTag``
* Added ``LLVMGetFastMathFlags`` and ``LLVMSetFastMathFlags`` for getting/setting
the fast-math flags of an instruction, as well as ``LLVMCanValueUseFastMathFlags``
for checking if an instruction can use such flags
Changes to the CodeGen infrastructure
-------------------------------------
* A new debug type ``isel-dump`` is added to show only the SelectionDAG dumps
after each ISel phase (i.e. ``-debug-only=isel-dump``). This new debug type
can be filtered by function names using ``-filter-print-funcs=<function names>``,
the same flag used to filter IR dumps after each Pass. Note that the existing
``-debug-only=isel`` will take precedence over the new behavior and
print SelectionDAG dumps of every single function regardless of
``-filter-print-funcs``'s values.
* ``PrologEpilogInserter`` no longer supports register scavenging
during forwards frame index elimination. Targets should use
backwards frame index elimination instead.
* ``RegScavenger`` no longer supports forwards register
scavenging. Clients should use backwards register scavenging
instead, which is preferred because it does not depend on accurate
kill flags.
Changes to the Metadata Info
---------------------------------
* Added a new loop metadata `!{!"llvm.loop.align", i32 64}`
Changes to the Debug Info
---------------------------------
@ -306,82 +122,16 @@ Changes to the Debug Info
Changes to the LLVM tools
---------------------------------
* llvm-symbolizer now treats invalid input as an address for which source
information is not found.
* llvm-readelf now supports ``--extra-sym-info`` (``-X``) to display extra
information (section name) when showing symbols.
* ``llvm-nm`` now supports the ``--line-numbers`` (``-l``) option to use
debugging information to print symbols' filenames and line numbers.
* llvm-symbolizer and llvm-addr2line now support addresses specified as symbol names.
* llvm-objcopy now supports ``--gap-fill`` and ``--pad-to`` options, for
ELF input and binary output files only.
Changes to LLDB
---------------------------------
* ``SBWatchpoint::GetHardwareIndex`` is deprecated and now returns -1
to indicate the index is unavailable.
* Methods in SBHostOS related to threads have had their implementations
removed. These methods will return a value indicating failure.
* ``SBType::FindDirectNestedType`` function is added. It's useful
for formatters to quickly find directly nested type when it's known
where to search for it, avoiding more expensive global search via
``SBTarget::FindFirstType``.
* ``lldb-vscode`` was renamed to ``lldb-dap`` and and its installation
instructions have been updated to reflect this. The underlying functionality
remains unchanged.
* The ``mte_ctrl`` register can now be read from AArch64 Linux core files.
* LLDB on AArch64 Linux now supports debugging the Scalable Matrix Extension
(SME) and Scalable Matrix Extension 2 (SME2) for both live processes and core
files. For details refer to the
`AArch64 Linux documentation <https://lldb.llvm.org/use/aarch64-linux.html>`_.
* LLDB now supports symbol and binary acquisition automatically using the
DEBUFINFOD protocol. The standard mechanism of specifying DEBUFINOD servers in
the ``DEBUGINFOD_URLS`` environment variable is used by default. In addition,
users can specify servers to request symbols from using the LLDB setting
``plugin.symbol-locator.debuginfod.server_urls``, override or adding to the
environment variable.
* When running on AArch64 Linux, ``lldb-server`` now provides register
field information for the following registers: ``cpsr``, ``fpcr``,
``fpsr``, ``svcr`` and ``mte_ctrl``. ::
(lldb) register read cpsr
cpsr = 0x80001000
= (N = 1, Z = 0, C = 0, V = 0, SS = 0, IL = 0, <...>
This is only available when ``lldb`` is built with XML support.
Where possible the CPU's capabilities are used to decide which
fields are present, however this is not always possible or entirely
accurate. If in doubt, refer to the numerical value.
Changes to Sanitizers
---------------------
* HWASan now defaults to detecting use-after-scope bugs.
Other Changes
-------------
* The ``Flags`` field of ``llvm::opt::Option`` has been split into ``Flags``
and ``Visibility`` to simplify option sharing between various drivers (such
as ``clang``, ``clang-cl``, or ``flang``) that rely on Clang's Options.td.
Overloads of ``llvm::opt::OptTable`` that use ``FlagsToInclude`` have been
deprecated. There is a script and instructions on how to resolve conflicts -
see https://reviews.llvm.org/D157150 and https://reviews.llvm.org/D157151 for
details.
* On Linux, FreeBSD, and NetBSD, setting the environment variable
``LLVM_ENABLE_SYMBOLIZER_MARKUP`` causes tools to print stacktraces using
:doc:`Symbolizer Markup <SymbolizerMarkupFormat>`.
This works even if the tools have no embedded symbol information (i.e. are
fully stripped); :doc:`llvm-symbolizer <CommandGuide/llvm-symbolizer>` can
symbolize the markup afterwards using ``debuginfod``.
External Open Source Projects Using LLVM 15
External Open Source Projects Using LLVM 19
===========================================
* A project...

View File

@ -1,4 +1,4 @@
llvm_version_major = 18
llvm_version_major = 19
llvm_version_minor = 0
llvm_version_patch = 0
llvm_version = "$llvm_version_major.$llvm_version_minor.$llvm_version_patch"

View File

@ -2,7 +2,7 @@
__author__ = "Daniel Dunbar"
__email__ = "daniel@minormatter.com"
__versioninfo__ = (18, 0, 0)
__versioninfo__ = (19, 0, 0)
__version__ = ".".join(str(v) for v in __versioninfo__) + "dev"
__all__ = []

View File

@ -1,10 +1,10 @@
===========================
OpenMP 17.0.0 Release Notes
OpenMP 19.0.0 Release Notes
===========================
.. warning::
These are in-progress notes for the upcoming LLVM 17.0.0 release.
These are in-progress notes for the upcoming LLVM 19.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 17.0.0 Release Notes
Introduction
============
This document contains the release notes for the OpenMP runtime, release 17.0.0.
This document contains the release notes for the OpenMP runtime, release 19.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/>`_.

View File

@ -1,5 +1,5 @@
=======================================
PSTL 18.0.0 (In-Progress) Release Notes
PSTL 19.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 17 release.
These are in-progress notes for the upcoming pstl 19 release.
Release notes for previous releases can be found on
`the Download Page <https://releases.llvm.org/download.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 18.0.0?
What's New in PSTL 19.0.0?
==========================
New Features