blob: 6858c2e97146006b6060f3ed5a34fc7a2e4cef48 [file] [log] [blame]
Hans Wennborg8f5b44a2019-07-18 11:51:05 +00001=========================
Hans Wennborg58524752020-01-15 10:02:56 +01002LLVM 11.0.0 Release Notes
Hans Wennborg8f5b44a2019-07-18 11:51:05 +00003=========================
Dmitri Gribenko38782b82012-12-09 23:14:26 +00004
5.. contents::
6 :local:
7
Sean Silva1eab30d2013-01-20 03:29:50 +00008.. warning::
Hans Wennborg58524752020-01-15 10:02:56 +01009 These are in-progress notes for the upcoming LLVM 11 release.
Hans Wennborgf1e773c2017-02-09 23:03:34 +000010 Release notes for previous releases can be found on
Hans Wennborg7c890242018-09-10 08:50:31 +000011 `the Download Page <https://releases.llvm.org/download.html>`_.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000012
Dmitri Gribenko38782b82012-12-09 23:14:26 +000013
14Introduction
15============
16
17This document contains the release notes for the LLVM Compiler Infrastructure,
Hans Wennborg58524752020-01-15 10:02:56 +010018release 11.0.0. Here we describe the status of LLVM, including major improvements
Dmitri Gribenko38782b82012-12-09 23:14:26 +000019from the previous release, improvements in various subprojects of LLVM, and
20some of the current users of the code. All LLVM releases may be downloaded
Hans Wennborg7c890242018-09-10 08:50:31 +000021from the `LLVM releases web site <https://llvm.org/releases/>`_.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000022
23For more information about LLVM, including information about the latest
Hans Wennborg7c890242018-09-10 08:50:31 +000024release, please check out the `main LLVM web site <https://llvm.org/>`_. If you
Dmitri Gribenko38782b82012-12-09 23:14:26 +000025have questions or comments, the `LLVM Developer's Mailing List
Hans Wennborg7c890242018-09-10 08:50:31 +000026<https://lists.llvm.org/mailman/listinfo/llvm-dev>`_ is a good place to send
Dmitri Gribenko38782b82012-12-09 23:14:26 +000027them.
28
Hans Wennborg58524752020-01-15 10:02:56 +010029Note that if you are reading this file from a Git checkout or the main
Dmitri Gribenko38782b82012-12-09 23:14:26 +000030LLVM 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
Hans Wennborg7c890242018-09-10 08:50:31 +000032page <https://llvm.org/releases/>`_.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000033
Sean Silva1eab30d2013-01-20 03:29:50 +000034Non-comprehensive list of changes in this release
35=================================================
Sean Silva1eab30d2013-01-20 03:29:50 +000036.. 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.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000042
Hans Wennborg58524752020-01-15 10:02:56 +010043* ...
Craig Topper5ebd0a62019-09-09 17:54:44 +000044
Tom Stellard3ffbf972019-11-08 10:05:37 -080045
Sean Silva1eab30d2013-01-20 03:29:50 +000046.. 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).
Dmitri Gribenko38782b82012-12-09 23:14:26 +000050
Sean Silva1eab30d2013-01-20 03:29:50 +000051 Special New Feature
52 -------------------
Dmitri Gribenko38782b82012-12-09 23:14:26 +000053
Sean Silva1eab30d2013-01-20 03:29:50 +000054 Makes programs 10x faster by doing Special New Thing.
Dmitri Gribenko38782b82012-12-09 23:14:26 +000055
Fangrui Song03b9f0a2019-12-24 18:12:15 -080056
Elena Demikhovsky2c35e202016-03-29 06:55:56 +000057Changes to the LLVM IR
58----------------------
59
Francesco Petrogalli3d65dd12020-02-21 16:15:09 +000060* 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.
Tim Northovera009a602019-08-03 14:28:34 +000066
Simon Pilgrim456fc4f2019-07-09 10:10:48 +000067Changes to building LLVM
68------------------------
69
Renato Golin7c9d0502014-03-18 10:16:15 +000070Changes to the ARM Backend
71--------------------------
72
Hans Wennborg58524752020-01-15 10:02:56 +010073During this release ...
Renato Golin7c9d0502014-03-18 10:16:15 +000074
Simon Tathamf282b6a2020-03-24 11:37:51 +000075* 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.
Renato Golin7c9d0502014-03-18 10:16:15 +000078
Daniel Sandersa4d18fc2014-07-23 12:59:26 +000079Changes to the MIPS Target
80--------------------------
81
Hans Wennborg58524752020-01-15 10:02:56 +010082During this release ...
Daniel Sanders1bcd70e2015-01-11 10:34:52 +000083
Daniel Sandersa4d18fc2014-07-23 12:59:26 +000084
Bill Schmidt40049892014-07-31 14:38:17 +000085Changes to the PowerPC Target
Bill Schmidt08616c72014-07-31 15:20:30 +000086-----------------------------
Bill Schmidt40049892014-07-31 14:38:17 +000087
Hans Wennborg58524752020-01-15 10:02:56 +010088During this release ...
Bill Schmidt40049892014-07-31 14:38:17 +000089
NAKAMURA Takumi9ec6a822015-12-21 02:37:23 +000090Changes to the X86 Target
Elena Demikhovsky2c35e202016-03-29 06:55:56 +000091-------------------------
NAKAMURA Takumi9ec6a822015-12-21 02:37:23 +000092
Hans Wennborg58524752020-01-15 10:02:56 +010093During this release ...
NAKAMURA Takumi9ec6a822015-12-21 02:37:23 +000094
Craig Toppera47db712019-08-28 17:18:56 +000095
serge_sans_paillee67cbac2019-09-09 16:59:34 +020096* 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
Matt Arsenaultcee02cc2016-01-26 04:29:15 +0000100Changes to the AMDGPU Target
101-----------------------------
102
Matt Arsenault75cf3092019-10-31 23:32:31 -0700103* The backend default denormal handling mode has been switched to on
104 for all targets for all compute function types. Frontends wishing to
105 retain the old behavior should explicitly request f32 denormal
106 flushing.
107
Dylan McKay7293f9f2016-11-17 22:26:09 +0000108Changes to the AVR Target
109-----------------------------
110
Dylan McKay56aed612020-03-16 20:07:59 +1300111* Moved from an experimental backend to an official backend. AVR support is now
112 included by default in all LLVM builds and releases and is available under
113 the "avr-unknown-unknown" target triple.
Dylan McKay7293f9f2016-11-17 22:26:09 +0000114
Dan Gohman220dcdb2019-01-14 18:20:30 +0000115Changes to the WebAssembly Target
116---------------------------------
117
Hans Wennborg58524752020-01-15 10:02:56 +0100118During this release ...
Derek Schuff5e54bc12019-01-15 17:54:42 +0000119
Dan Gohman220dcdb2019-01-14 18:20:30 +0000120
Peter Zotovd1136292015-01-13 09:48:02 +0000121Changes to the OCaml bindings
122-----------------------------
123
Peter Zotovd1136292015-01-13 09:48:02 +0000124
Akira Hatanakac8d06962016-02-17 19:35:47 +0000125
Eric Christopherbc02ef12017-06-30 01:17:45 +0000126Changes to the C API
127--------------------
Sourabh Singh Tomarf1e39882019-12-03 09:29:54 +0530128
129
130Changes to the Go bindings
131--------------------------
Eric Christopherbc02ef12017-06-30 01:17:45 +0000132
Chandler Carruth3545a9e2017-06-30 07:09:08 +0000133
Amaury Sechet84674112018-06-01 13:21:33 +0000134Changes to the DAG infrastructure
135---------------------------------
Eric Christopherbc02ef12017-06-30 01:17:45 +0000136
Djordje Todorovic3a4d9f82020-04-07 12:05:22 +0200137
138Changes to the Debug Info
139---------------------------------
140
141* LLVM now supports the debug entry values (DW_OP_entry_value) production for
142 the x86, ARM, and AArch64 targets by default. Other targets can use
143 the utility by using the experimental option ("-debug-entry-values").
144 This is a debug info feature that allows debuggers to recover the value of
145 optimized-out parameters by going up a stack frame and interpreting the values
146 passed to the callee. The feature improves the debugging user experience when
147 debugging optimized code.
148
Jonas Devliegherebb65a382019-07-05 17:58:30 +0000149Changes to LLDB
150===============
151
Hans Wennborg58524752020-01-15 10:02:56 +0100152External Open Source Projects Using LLVM 11
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000153===========================================
Rafael Espindola434e9562015-12-16 23:16:33 +0000154
Hans Wennborg87452892016-07-18 18:02:23 +0000155* A project...
Kai Nackeec6e3922013-11-14 05:57:40 +0000156
157
Dmitri Gribenko38782b82012-12-09 23:14:26 +0000158Additional Information
159======================
160
161A wide variety of additional information is available on the `LLVM web page
Hans Wennborg7c890242018-09-10 08:50:31 +0000162<https://llvm.org/>`_, in particular in the `documentation
163<https://llvm.org/docs/>`_ section. The web page also contains versions of the
Hans Wennborg58524752020-01-15 10:02:56 +0100164API documentation which is up-to-date with the Git version of the source
Dmitri Gribenko38782b82012-12-09 23:14:26 +0000165code. You can access versions of these documents specific to this release by
166going into the ``llvm/docs/`` directory in the LLVM tree.
167
168If you have any questions or comments about LLVM, please feel free to contact
Hans Wennborg7c890242018-09-10 08:50:31 +0000169us via the `mailing lists <https://llvm.org/docs/#mailing-lists>`_.