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