Hans Wennborg | 8f5b44a | 2019-07-18 11:51:05 +0000 | [diff] [blame] | 1 | ========================= |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 2 | LLVM 11.0.0 Release Notes |
Hans Wennborg | 8f5b44a | 2019-07-18 11:51:05 +0000 | [diff] [blame] | 3 | ========================= |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 4 | |
| 5 | .. contents:: |
| 6 | :local: |
| 7 | |
Sean Silva | 1eab30d | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 8 | .. warning:: |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 9 | These are in-progress notes for the upcoming LLVM 11 release. |
Hans Wennborg | f1e773c | 2017-02-09 23:03:34 +0000 | [diff] [blame] | 10 | Release notes for previous releases can be found on |
Hans Wennborg | 7c89024 | 2018-09-10 08:50:31 +0000 | [diff] [blame] | 11 | `the Download Page <https://releases.llvm.org/download.html>`_. |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 12 | |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 13 | |
| 14 | Introduction |
| 15 | ============ |
| 16 | |
| 17 | This document contains the release notes for the LLVM Compiler Infrastructure, |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 18 | release 11.0.0. Here we describe the status of LLVM, including major improvements |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 19 | from the previous release, improvements in various subprojects of LLVM, and |
| 20 | some of the current users of the code. All LLVM releases may be downloaded |
Hans Wennborg | 7c89024 | 2018-09-10 08:50:31 +0000 | [diff] [blame] | 21 | from the `LLVM releases web site <https://llvm.org/releases/>`_. |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 22 | |
| 23 | For more information about LLVM, including information about the latest |
Hans Wennborg | 7c89024 | 2018-09-10 08:50:31 +0000 | [diff] [blame] | 24 | release, please check out the `main LLVM web site <https://llvm.org/>`_. If you |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 25 | have questions or comments, the `LLVM Developer's Mailing List |
Hans Wennborg | 7c89024 | 2018-09-10 08:50:31 +0000 | [diff] [blame] | 26 | <https://lists.llvm.org/mailman/listinfo/llvm-dev>`_ is a good place to send |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 27 | them. |
| 28 | |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 29 | Note that if you are reading this file from a Git checkout or the main |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 30 | LLVM web page, this document applies to the *next* release, not the current |
| 31 | one. To see the release notes for a specific release, please see the `releases |
Hans Wennborg | 7c89024 | 2018-09-10 08:50:31 +0000 | [diff] [blame] | 32 | page <https://llvm.org/releases/>`_. |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 33 | |
Sean Silva | 1eab30d | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 34 | Non-comprehensive list of changes in this release |
| 35 | ================================================= |
Sean Silva | 1eab30d | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 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. |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 42 | |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 43 | * ... |
Craig Topper | 5ebd0a6 | 2019-09-09 17:54:44 +0000 | [diff] [blame] | 44 | |
Tom Stellard | 3ffbf97 | 2019-11-08 10:05:37 -0800 | [diff] [blame] | 45 | |
Sean Silva | 1eab30d | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 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). |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 50 | |
Sean Silva | 1eab30d | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 51 | Special New Feature |
| 52 | ------------------- |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 53 | |
Sean Silva | 1eab30d | 2013-01-20 03:29:50 +0000 | [diff] [blame] | 54 | Makes programs 10x faster by doing Special New Thing. |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 55 | |
Fangrui Song | 03b9f0a | 2019-12-24 18:12:15 -0800 | [diff] [blame] | 56 | |
Elena Demikhovsky | 2c35e20 | 2016-03-29 06:55:56 +0000 | [diff] [blame] | 57 | Changes to the LLVM IR |
| 58 | ---------------------- |
| 59 | |
Francesco Petrogalli | 3d65dd1 | 2020-02-21 16:15:09 +0000 | [diff] [blame] | 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. |
Tim Northover | a009a60 | 2019-08-03 14:28:34 +0000 | [diff] [blame] | 66 | |
Simon Pilgrim | 456fc4f | 2019-07-09 10:10:48 +0000 | [diff] [blame] | 67 | Changes to building LLVM |
| 68 | ------------------------ |
| 69 | |
Renato Golin | 7c9d050 | 2014-03-18 10:16:15 +0000 | [diff] [blame] | 70 | Changes to the ARM Backend |
| 71 | -------------------------- |
| 72 | |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 73 | During this release ... |
Renato Golin | 7c9d050 | 2014-03-18 10:16:15 +0000 | [diff] [blame] | 74 | |
Simon Tatham | f282b6a | 2020-03-24 11:37:51 +0000 | [diff] [blame] | 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. |
Renato Golin | 7c9d050 | 2014-03-18 10:16:15 +0000 | [diff] [blame] | 78 | |
Daniel Sanders | a4d18fc | 2014-07-23 12:59:26 +0000 | [diff] [blame] | 79 | Changes to the MIPS Target |
| 80 | -------------------------- |
| 81 | |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 82 | During this release ... |
Daniel Sanders | 1bcd70e | 2015-01-11 10:34:52 +0000 | [diff] [blame] | 83 | |
Daniel Sanders | a4d18fc | 2014-07-23 12:59:26 +0000 | [diff] [blame] | 84 | |
Bill Schmidt | 4004989 | 2014-07-31 14:38:17 +0000 | [diff] [blame] | 85 | Changes to the PowerPC Target |
Bill Schmidt | 08616c7 | 2014-07-31 15:20:30 +0000 | [diff] [blame] | 86 | ----------------------------- |
Bill Schmidt | 4004989 | 2014-07-31 14:38:17 +0000 | [diff] [blame] | 87 | |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 88 | During this release ... |
Bill Schmidt | 4004989 | 2014-07-31 14:38:17 +0000 | [diff] [blame] | 89 | |
NAKAMURA Takumi | 9ec6a82 | 2015-12-21 02:37:23 +0000 | [diff] [blame] | 90 | Changes to the X86 Target |
Elena Demikhovsky | 2c35e20 | 2016-03-29 06:55:56 +0000 | [diff] [blame] | 91 | ------------------------- |
NAKAMURA Takumi | 9ec6a82 | 2015-12-21 02:37:23 +0000 | [diff] [blame] | 92 | |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 93 | During this release ... |
NAKAMURA Takumi | 9ec6a82 | 2015-12-21 02:37:23 +0000 | [diff] [blame] | 94 | |
Craig Topper | a47db71 | 2019-08-28 17:18:56 +0000 | [diff] [blame] | 95 | |
serge_sans_paille | e67cbac | 2019-09-09 16:59:34 +0200 | [diff] [blame] | 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 | |
Matt Arsenault | cee02cc | 2016-01-26 04:29:15 +0000 | [diff] [blame] | 100 | Changes to the AMDGPU Target |
| 101 | ----------------------------- |
| 102 | |
Matt Arsenault | 75cf309 | 2019-10-31 23:32:31 -0700 | [diff] [blame] | 103 | * 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 McKay | 7293f9f | 2016-11-17 22:26:09 +0000 | [diff] [blame] | 108 | Changes to the AVR Target |
| 109 | ----------------------------- |
| 110 | |
Dylan McKay | 56aed61 | 2020-03-16 20:07:59 +1300 | [diff] [blame] | 111 | * 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 McKay | 7293f9f | 2016-11-17 22:26:09 +0000 | [diff] [blame] | 114 | |
Dan Gohman | 220dcdb | 2019-01-14 18:20:30 +0000 | [diff] [blame] | 115 | Changes to the WebAssembly Target |
| 116 | --------------------------------- |
| 117 | |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 118 | During this release ... |
Derek Schuff | 5e54bc1 | 2019-01-15 17:54:42 +0000 | [diff] [blame] | 119 | |
Dan Gohman | 220dcdb | 2019-01-14 18:20:30 +0000 | [diff] [blame] | 120 | |
Peter Zotov | d113629 | 2015-01-13 09:48:02 +0000 | [diff] [blame] | 121 | Changes to the OCaml bindings |
| 122 | ----------------------------- |
| 123 | |
Peter Zotov | d113629 | 2015-01-13 09:48:02 +0000 | [diff] [blame] | 124 | |
Akira Hatanaka | c8d0696 | 2016-02-17 19:35:47 +0000 | [diff] [blame] | 125 | |
Eric Christopher | bc02ef1 | 2017-06-30 01:17:45 +0000 | [diff] [blame] | 126 | Changes to the C API |
| 127 | -------------------- |
Sourabh Singh Tomar | f1e3988 | 2019-12-03 09:29:54 +0530 | [diff] [blame] | 128 | |
| 129 | |
| 130 | Changes to the Go bindings |
| 131 | -------------------------- |
Eric Christopher | bc02ef1 | 2017-06-30 01:17:45 +0000 | [diff] [blame] | 132 | |
Chandler Carruth | 3545a9e | 2017-06-30 07:09:08 +0000 | [diff] [blame] | 133 | |
Amaury Sechet | 8467411 | 2018-06-01 13:21:33 +0000 | [diff] [blame] | 134 | Changes to the DAG infrastructure |
| 135 | --------------------------------- |
Eric Christopher | bc02ef1 | 2017-06-30 01:17:45 +0000 | [diff] [blame] | 136 | |
Djordje Todorovic | 3a4d9f8 | 2020-04-07 12:05:22 +0200 | [diff] [blame] | 137 | |
| 138 | Changes 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 Devlieghere | bb65a38 | 2019-07-05 17:58:30 +0000 | [diff] [blame] | 149 | Changes to LLDB |
| 150 | =============== |
| 151 | |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 152 | External Open Source Projects Using LLVM 11 |
Hans Wennborg | 8f5b44a | 2019-07-18 11:51:05 +0000 | [diff] [blame] | 153 | =========================================== |
Rafael Espindola | 434e956 | 2015-12-16 23:16:33 +0000 | [diff] [blame] | 154 | |
Hans Wennborg | 8745289 | 2016-07-18 18:02:23 +0000 | [diff] [blame] | 155 | * A project... |
Kai Nacke | ec6e392 | 2013-11-14 05:57:40 +0000 | [diff] [blame] | 156 | |
| 157 | |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 158 | Additional Information |
| 159 | ====================== |
| 160 | |
| 161 | A wide variety of additional information is available on the `LLVM web page |
Hans Wennborg | 7c89024 | 2018-09-10 08:50:31 +0000 | [diff] [blame] | 162 | <https://llvm.org/>`_, in particular in the `documentation |
| 163 | <https://llvm.org/docs/>`_ section. The web page also contains versions of the |
Hans Wennborg | 5852475 | 2020-01-15 10:02:56 +0100 | [diff] [blame] | 164 | API documentation which is up-to-date with the Git version of the source |
Dmitri Gribenko | 38782b8 | 2012-12-09 23:14:26 +0000 | [diff] [blame] | 165 | code. You can access versions of these documents specific to this release by |
| 166 | going into the ``llvm/docs/`` directory in the LLVM tree. |
| 167 | |
| 168 | If you have any questions or comments about LLVM, please feel free to contact |
Hans Wennborg | 7c89024 | 2018-09-10 08:50:31 +0000 | [diff] [blame] | 169 | us via the `mailing lists <https://llvm.org/docs/#mailing-lists>`_. |