Welcome to mirror list, hosted at ThFree Co, Russian Federation.

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