1=========================
2LLVM 11.0.0 Release Notes
3=========================
4
5.. contents::
6    :local:
7
8.. warning::
9   These are in-progress notes for the upcoming LLVM 11 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 11.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
45
46.. NOTE
47   If you would like to document a larger change, then you can add a
48   subsection about it right here. You can copy the following boilerplate
49   and un-indent it (the indentation causes it to be inside this comment).
50
51   Special New Feature
52   -------------------
53
54   Makes programs 10x faster by doing Special New Thing.
55
56
57Changes to the LLVM IR
58----------------------
59
60* The callsite attribute `vector-function-abi-variant
61  <https://llvm.org/docs/LangRef.html#call-site-attributes>`_ has been
62  added to describe the mapping between scalar functions and vector
63  functions, to enable vectorization of call sites. The information
64  provided by the attribute is interfaced via the API provided by the
65  ``VFDatabase`` class.
66
67Changes to building LLVM
68------------------------
69
70Changes to the ARM Backend
71--------------------------
72
73During this release ...
74
75* Implemented C-language intrinsics for the full Arm v8.1-M MVE instruction
76  set. ``<arm_mve.h>`` now supports the complete API defined in the Arm C
77  Language Extensions.
78
79Changes to the MIPS Target
80--------------------------
81
82During this release ...
83
84
85Changes to the PowerPC Target
86-----------------------------
87
88During this release ...
89
90Changes to the X86 Target
91-------------------------
92
93During this release ...
94
95
96* Functions with the probe-stack attribute set to "inline-asm" are now protected
97  against stack clash without the need of a third-party probing function and
98  with limited impact on performance.
99* -x86-enable-old-knl-abi command line switch has been removed. v32i16/v64i8
100  vectors are always passed in ZMM register when avx512f is enabled and avx512bw
101  is disabled.
102* Vectors larger than 512 bits with i16 or i8 elements will be passed in
103  multiple ZMM registers when avx512f is enabled. Previously this required
104  avx512bw otherwise they would split into multiple YMM registers. This means
105  vXi16/vXi8 vectors are consistently treated the same as
106  vXi32/vXi64/vXf64/vXf32 vectors of the same total width.
107
108Changes to the AMDGPU Target
109-----------------------------
110
111* The backend default denormal handling mode has been switched to on
112  for all targets for all compute function types. Frontends wishing to
113  retain the old behavior should explicitly request f32 denormal
114  flushing.
115
116Changes to the AVR Target
117-----------------------------
118
119* Moved from an experimental backend to an official backend. AVR support is now
120  included by default in all LLVM builds and releases and is available under
121  the "avr-unknown-unknown" target triple.
122
123Changes to the WebAssembly Target
124---------------------------------
125
126During this release ...
127
128
129Changes to the OCaml bindings
130-----------------------------
131
132
133
134Changes to the C API
135--------------------
136
137
138Changes to the Go bindings
139--------------------------
140
141
142Changes to the DAG infrastructure
143---------------------------------
144
145
146Changes to the Debug Info
147---------------------------------
148
149* LLVM now supports the debug entry values (DW_OP_entry_value) production for
150  the x86, ARM, and AArch64 targets by default. Other targets can use
151  the utility by using the experimental option ("-debug-entry-values").
152  This is a debug info feature that allows debuggers to recover the value of
153  optimized-out parameters by going up a stack frame and interpreting the values
154  passed to the callee. The feature improves the debugging user experience when
155  debugging optimized code.
156
157Changes to the LLVM tools
158---------------------------------
159
160* Added an option (--show-section-sizes) to llvm-dwarfdump to show the sizes
161  of all debug sections within a file.
162
163Changes to LLDB
164===============
165
166External Open Source Projects Using LLVM 11
167===========================================
168
169* A project...
170
171
172Additional Information
173======================
174
175A wide variety of additional information is available on the `LLVM web page
176<https://llvm.org/>`_, in particular in the `documentation
177<https://llvm.org/docs/>`_ section.  The web page also contains versions of the
178API documentation which is up-to-date with the Git version of the source
179code.  You can access versions of these documents specific to this release by
180going into the ``llvm/docs/`` directory in the LLVM tree.
181
182If you have any questions or comments about LLVM, please feel free to contact
183us via the `mailing lists <https://llvm.org/docs/#mailing-lists>`_.
184