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 87Changes to the MIPS Target 88-------------------------- 89 90During this release ... 91 92Changes to the Hexagon Target 93----------------------------- 94 95* ... 96 97Changes to the PowerPC Target 98----------------------------- 99 100During this release ... 101 102Changes to the X86 Target 103------------------------- 104 105During this release ... 106 107* Support for ``AVX512-FP16`` instructions has been added. 108 109Changes to the AMDGPU Target 110----------------------------- 111 112During this release ... 113 114Changes to the AVR Target 115----------------------------- 116 117During this release ... 118 119Changes to the WebAssembly Target 120--------------------------------- 121 122During this release ... 123 124Changes to the OCaml bindings 125----------------------------- 126 127 128Changes to the C API 129-------------------- 130 131* ``LLVMSetInstDebugLocation`` has been deprecated in favor of the more general 132 ``LLVMAddMetadataToInst``. 133 134Changes to the Go bindings 135-------------------------- 136 137 138Changes to the FastISel infrastructure 139-------------------------------------- 140 141* ... 142 143Changes to the DAG infrastructure 144--------------------------------- 145 146 147Changes to the Debug Info 148--------------------------------- 149 150During this release ... 151 152Changes to the LLVM tools 153--------------------------------- 154 155* ... 156 157Changes to LLDB 158--------------------------------- 159 160Changes to Sanitizers 161--------------------- 162 163External Open Source Projects Using LLVM 14 164=========================================== 165 166* A project... 167 168Additional Information 169====================== 170 171A wide variety of additional information is available on the `LLVM web page 172<https://llvm.org/>`_, in particular in the `documentation 173<https://llvm.org/docs/>`_ section. The web page also contains versions of the 174API documentation which is up-to-date with the Git version of the source 175code. You can access versions of these documents specific to this release by 176going into the ``llvm/docs/`` directory in the LLVM tree. 177 178If you have any questions or comments about LLVM, please feel free to contact 179us via the `mailing lists <https://llvm.org/docs/#mailing-lists>`_. 180