1========================= 2LLVM 14.0.0 Release Notes 3========================= 4 5.. contents:: 6 :local: 7 8.. warning:: 9 These are in-progress notes for the upcoming LLVM 14 release. 10 Release notes for previous releases can be found on 11 `the Download Page <https://releases.llvm.org/download.html>`_. 12 13 14Introduction 15============ 16 17This document contains the release notes for the LLVM Compiler Infrastructure, 18release 14.0.0. Here we describe the status of LLVM, including major improvements 19from the previous release, improvements in various subprojects of LLVM, and 20some of the current users of the code. All LLVM releases may be downloaded 21from the `LLVM releases web site <https://llvm.org/releases/>`_. 22 23For more information about LLVM, including information about the latest 24release, please check out the `main LLVM web site <https://llvm.org/>`_. If you 25have questions or comments, the `LLVM Developer's Mailing List 26<https://lists.llvm.org/mailman/listinfo/llvm-dev>`_ is a good place to send 27them. 28 29Note that if you are reading this file from a Git checkout or the main 30LLVM web page, this document applies to the *next* release, not the current 31one. To see the release notes for a specific release, please see the `releases 32page <https://llvm.org/releases/>`_. 33 34Non-comprehensive list of changes in this release 35================================================= 36.. NOTE 37 For small 1-3 sentence descriptions, just add an entry at the end of 38 this list. If your description won't fit comfortably in one bullet 39 point (e.g. maybe you would like to give an example of the 40 functionality, or simply have a lot to talk about), see the `NOTE` below 41 for adding a new subsection. 42 43 44.. NOTE 45 If you would like to document a larger change, then you can add a 46 subsection about it right here. You can copy the following boilerplate 47 and un-indent it (the indentation causes it to be inside this comment). 48 49 Special New Feature 50 ------------------- 51 52 Makes programs 10x faster by doing Special New Thing. 53 54* ... 55 56Changes to the LLVM IR 57---------------------- 58 59* Using the legacy pass manager for the optimization pipeline is deprecated and 60 will be removed after LLVM 14. In the meantime, only minimal effort will be 61 made to maintain the legacy pass manager for the optimization pipeline. 62* Max allowed integer type was reduced from 2^24-1 bits to 2^23 bits. 63* Max allowed alignment was increased from 2^29 to 2^32. 64 65Changes to building LLVM 66------------------------ 67 68* ... 69 70Changes to TableGen 71------------------- 72 73Changes to the AArch64 Backend 74------------------------------ 75 76* Added support for the Armv9-A, Armv9.1-A and Armv9.2-A architectures. 77* The compiler now recognises the "tune-cpu" function attribute to support 78 the use of the -mtune frontend flag. This allows certain scheduling features 79 and optimisations to be enabled independently of the architecture. If the 80 "tune-cpu" attribute is absent it tunes according to the "target-cpu". 81 82Changes to the ARM Backend 83-------------------------- 84 85* Added support for the Armv9-A, Armv9.1-A and Armv9.2-A architectures. 86* Added support for the Armv8.1-M PACBTI-M extension. 87 88Changes to the MIPS Target 89-------------------------- 90 91During this release ... 92 93Changes to the Hexagon Target 94----------------------------- 95 96* ... 97 98Changes to the PowerPC Target 99----------------------------- 100 101During this release ... 102 103Changes to the X86 Target 104------------------------- 105 106During this release ... 107 108* Support for ``AVX512-FP16`` instructions has been added. 109 110Changes to the AMDGPU Target 111----------------------------- 112 113During this release ... 114 115Changes to the AVR Target 116----------------------------- 117 118During this release ... 119 120Changes to the WebAssembly Target 121--------------------------------- 122 123During this release ... 124 125Changes to the OCaml bindings 126----------------------------- 127 128 129Changes to the C API 130-------------------- 131 132* ``LLVMSetInstDebugLocation`` has been deprecated in favor of the more general 133 ``LLVMAddMetadataToInst``. 134 135Changes to the Go bindings 136-------------------------- 137 138 139Changes to the FastISel infrastructure 140-------------------------------------- 141 142* ... 143 144Changes to the DAG infrastructure 145--------------------------------- 146 147 148Changes to the Debug Info 149--------------------------------- 150 151During this release ... 152 153Changes to the LLVM tools 154--------------------------------- 155 156* llvm-cov: `-name-allowlist` is now accepted in addition to `-name-whitelist`. 157 `-name-whitelist` is marked as deprecated and to be removed in future 158 releases. 159 160Changes to LLDB 161--------------------------------- 162 163* A change in Clang's type printing has changed the way LLDB names array types 164 (from ``int [N]`` to ``int[N]``) - LLDB pretty printer type name matching 165 code may need to be updated to handle this. 166* The ``memory read`` command now ignores non-address bits in start and end 167 addresses. In addition, non-address bits will not be shown in the addresses 168 in the output. 169 170Changes to Sanitizers 171--------------------- 172 173External Open Source Projects Using LLVM 14 174=========================================== 175 176* A project... 177 178Additional Information 179====================== 180 181A wide variety of additional information is available on the `LLVM web page 182<https://llvm.org/>`_, in particular in the `documentation 183<https://llvm.org/docs/>`_ section. The web page also contains versions of the 184API documentation which is up-to-date with the Git version of the source 185code. You can access versions of these documents specific to this release by 186going into the ``llvm/docs/`` directory in the LLVM tree. 187 188If you have any questions or comments about LLVM, please feel free to contact 189us via the `mailing lists <https://llvm.org/docs/#mailing-lists>`_. 190