summaryrefslogtreecommitdiff
path: root/llvm/docs/ReleaseNotes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/docs/ReleaseNotes.rst')
-rw-r--r--llvm/docs/ReleaseNotes.rst93
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
---------------------------------