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