diff options
Diffstat (limited to 'llvm/docs/ReleaseNotes.rst')
| -rw-r--r-- | llvm/docs/ReleaseNotes.rst | 93 |
1 files changed, 90 insertions, 3 deletions
diff --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst index e1e1652d1e0a..416b3952f1ac 100644 --- a/llvm/docs/ReleaseNotes.rst +++ b/llvm/docs/ReleaseNotes.rst @@ -66,6 +66,19 @@ Changes to the LLVM IR * ``icmp`` * ``fcmp`` + * ``shl`` +* LLVM has switched from using debug intrinsics in textual IR to using debug + records by default. Details of the change and instructions on how to update + any downstream tools and tests can be found in the `migration docs + <https://llvm.org/docs/RemoveDIsDebugInfo.html>`_. +* Semantics of MC/DC intrinsics have been changed. + + * ``llvm.instprof.mcdc.parameters``: 3rd argument has been changed + from bytes to bits. + * ``llvm.instprof.mcdc.condbitmap.update``: Removed. + * ``llvm.instprof.mcdc.tvbitmap.update``: 3rd argument has been + removed. The next argument has been changed from byte index to bit + index. Changes to LLVM infrastructure ------------------------------ @@ -73,7 +86,16 @@ Changes to LLVM infrastructure Changes to building LLVM ------------------------ -- The ``LLVM_ENABLE_TERMINFO`` flag has been removed. LLVM no longer depends on +* LLVM now has rpmalloc version 1.4.5 in-tree, as a replacement C allocator for + hosted toolchains. This supports several host platforms such as Mac or Unix, + however currently only the Windows 64-bit LLVM release uses it. + This has a great benefit in terms of build times on Windows when using ThinLTO + linking, especially on machines with lots of cores, to an order of magnitude + or more. Clang compilation is also improved. Please see some build timings in + (`#91862 <https://github.com/llvm/llvm-project/pull/91862#issue-2291033962>`_) + For more information, refer to the **LLVM_ENABLE_RPMALLOC** option in `CMake variables <https://llvm.org/docs/CMake.html#llvm-related-variables>`_. + +* The ``LLVM_ENABLE_TERMINFO`` flag has been removed. LLVM no longer depends on terminfo and now always uses the ``TERM`` environment variable for color support autodetection. @@ -88,14 +110,21 @@ Changes to Interprocedural Optimizations Changes to the AArch64 Backend ------------------------------ -* Added support for Cortex-A78AE, Cortex-A520AE, Cortex-A720AE, - Cortex-R82AE, Neoverse-N3, Neoverse-V3 and Neoverse-V3AE CPUs. +* Added support for Cortex-R82AE, Cortex-A78AE, Cortex-A520AE, Cortex-A720AE, + Cortex-A725, Cortex-X925, Neoverse-N3, Neoverse-V3 and Neoverse-V3AE CPUs. * ``-mbranch-protection=standard`` now enables FEAT_PAuth_LR by default when the feature is enabled. The new behaviour results in ``standard`` being equal to ``bti+pac-ret+pc`` when ``+pauth-lr`` is passed as part of ``-mcpu=`` options. +* SVE and SVE2 have been moved to the default extensions list for ARMv9.0, + making them optional per the Arm ARM. Existing v9.0+ CPUs in the backend that + support these extensions continue to have these features enabled by default + when specified via ``-march=`` or an ``-mcpu=`` that supports them. The + attribute ``"target-features"="+v9a"`` no longer implies ``"+sve"`` and + ``"+sve2"`` respectively. + Changes to the AMDGPU Backend ----------------------------- @@ -152,6 +181,9 @@ Changes to the RISC-V Backend * Zaamo and Zalrsc are no longer experimental. * Processors that enable post reg-alloc scheduling (PostMachineScheduler) by default should use the `UsePostRAScheduler` subtarget feature. Setting `PostRAScheduler = 1` in the scheduler model will have no effect on the enabling of the PostMachineScheduler. * Zabha is no longer experimental. +* B (the collection of the Zba, Zbb, Zbs extensions) is supported. +* Added smcdeleg, ssccfg, smcsrind, and sscsrind extensions to -march. +* ``-mcpu=syntacore-scr3-rv32`` and ``-mcpu=syntacore-scr3-rv64`` were added. Changes to the WebAssembly Backend ---------------------------------- @@ -213,6 +245,48 @@ Changes to the C API * ``LLVMConstICmp`` * ``LLVMConstFCmp`` + * ``LLVMConstShl`` + +**Note:** The following changes are due to the removal of the debug info +intrinsics from LLVM and to the introduction of debug records into LLVM. +They are described in detail in the `debug info migration guide <https://llvm.org/docs/RemoveDIsDebugInfo.html>`_. + +* Added the following functions to insert before the indicated instruction but + after any attached debug records. + + * ``LLVMPositionBuilderBeforeDbgRecords`` + * ``LLVMPositionBuilderBeforeInstrAndDbgRecords`` + + Same as ``LLVMPositionBuilder`` and ``LLVMPositionBuilderBefore`` except the + insertion position is set to before the debug records that precede the target + instruction. ``LLVMPositionBuilder`` and ``LLVMPositionBuilderBefore`` are + unchanged. + +* Added the following functions to get/set the new non-instruction debug info format. + They will be deprecated in the future and they are just a transition aid. + + * ``LLVMIsNewDbgInfoFormat`` + * ``LLVMSetIsNewDbgInfoFormat`` + +* Added the following functions to insert a debug record (new debug info format). + + * ``LLVMDIBuilderInsertDeclareRecordBefore`` + * ``LLVMDIBuilderInsertDeclareRecordAtEnd`` + * ``LLVMDIBuilderInsertDbgValueRecordBefore`` + * ``LLVMDIBuilderInsertDbgValueRecordAtEnd`` + +* Deleted the following functions that inserted a debug intrinsic (old debug info format). + + * ``LLVMDIBuilderInsertDeclareBefore`` + * ``LLVMDIBuilderInsertDeclareAtEnd`` + * ``LLVMDIBuilderInsertDbgValueBefore`` + * ``LLVMDIBuilderInsertDbgValueAtEnd`` + +* Added the following functions for accessing a Target Extension Type's data: + + * ``LLVMGetTargetExtTypeName`` + * ``LLVMGetTargetExtTypeNumTypeParams``/``LLVMGetTargetExtTypeTypeParam`` + * ``LLVMGetTargetExtTypeNumIntParams``/``LLVMGetTargetExtTypeIntParam`` Changes to the CodeGen infrastructure ------------------------------------- @@ -223,6 +297,13 @@ Changes to the Metadata Info Changes to the Debug Info --------------------------------- +* LLVM has switched from using debug intrinsics internally to using debug + records by default. This should happen transparently when using the DIBuilder + to construct debug variable information, but will require changes for any code + that interacts with debug intrinsics directly. Debug intrinsics will only be + supported on a best-effort basis from here onwards; for more information, see + the `migration docs <https://llvm.org/docs/RemoveDIsDebugInfo.html>`_. + Changes to the LLVM tools --------------------------------- * llvm-nm and llvm-objdump can now print symbol information from linked @@ -277,6 +358,12 @@ Changes to the LLVM tools now has a map for the mapped files. (`#92835 <https://github.com/llvm/llvm-project/pull/92835>`). +* llvm-cov now generates HTML report with JavaScript code to allow simple + jumping between uncovered parts (lines/regions/branches) of code + using buttons on top-right corner of the page or using keys (L/R/B or + jumping in reverse direction with shift+L/R/B). (`#95662 + <https://github.com/llvm/llvm-project/pull/95662>`). + Changes to LLDB --------------------------------- |
