1
- ============================
2
- LLVM |release | Release Notes
3
- ============================
1
+ <!-- This document is written in Markdown and uses extra directives provided by
2
+ MyST (https://myst-parser.readthedocs.io/en/latest/). -->
4
3
5
- .. contents ::
6
- :local:
4
+ LLVM {{env.config.release}} Release Notes
5
+ =========================================
7
6
8
- .. only :: PreRelease
9
-
10
- .. warning ::
11
- These are in-progress notes for the upcoming LLVM |version | release.
12
- Release notes for previous releases can be found on
13
- `the Download Page <https://releases.llvm.org/download.html >`_.
7
+ ``` {contents}
8
+ ```
14
9
10
+ ```` {only} PreRelease
11
+ ```{warning} These are in-progress notes for the upcoming LLVM {{env.config.release}}
12
+ release. Release notes for previous releases can be found on
13
+ [the Download Page](https://releases.llvm.org/download.html).
14
+ ```
15
+ ````
15
16
16
17
Introduction
17
18
============
18
19
19
20
This document contains the release notes for the LLVM Compiler Infrastructure,
20
- release | release | . Here we describe the status of LLVM, including major improvements
21
- from the previous release, improvements in various subprojects of LLVM, and
22
- some of the current users of the code. All LLVM releases may be downloaded
23
- from the ` LLVM releases web site < https://llvm.org/releases/ >`_ .
21
+ release {{env.config. release}} . Here we describe the status of LLVM, including
22
+ major improvements from the previous release, improvements in various subprojects
23
+ of LLVM, and some of the current users of the code. All LLVM releases may be
24
+ downloaded from the [ LLVM releases web site] ( https://llvm.org/releases/ ) .
24
25
25
26
For more information about LLVM, including information about the latest
26
- release, please check out the `main LLVM web site <https://llvm.org/ >`_. If you
27
- have questions or comments, the `Discourse forums
28
- <https://discourse.llvm.org> `_ is a good place to ask
29
- them.
27
+ release, please check out the [ main LLVM web site] ( https://llvm.org/ ) . If you
28
+ have questions or comments, the [ Discourse forums] ( https://discourse.llvm.org )
29
+ is a good place to ask them.
30
30
31
31
Note that if you are reading this file from a Git checkout or the main
32
32
LLVM web page, this document applies to the * next* release, not the current
33
- one. To see the release notes for a specific release, please see the ` releases
34
- page < https://llvm.org/releases/> `_ .
33
+ one. To see the release notes for a specific release, please see the
34
+ [ releases page ] ( https://llvm.org/releases/ ) .
35
35
36
36
Non-comprehensive list of changes in this release
37
37
=================================================
38
- .. NOTE
39
- For small 1-3 sentence descriptions, just add an entry at the end of
40
- this list. If your description won't fit comfortably in one bullet
41
- point (e.g. maybe you would like to give an example of the
42
- functionality, or simply have a lot to talk about), see the `NOTE` below
43
- for adding a new subsection.
38
+
39
+ <!-- For small 1-3 sentence descriptions, just add an entry at the end of
40
+ this list. If your description won't fit comfortably in one bullet
41
+ point (e.g. maybe you would like to give an example of the
42
+ functionality, or simply have a lot to talk about), see the comment below
43
+ for adding a new subsection. -->
44
44
45
45
* ...
46
46
47
- Update on required toolchains to build LLVM
48
- -------------------------------------------
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
+
50
+ Special New Feature
51
+ -------------------
52
+
53
+ Makes programs 10x faster by doing Special New Thing.
54
+ -->
49
55
50
56
Changes to the LLVM IR
51
57
----------------------
52
58
53
- * The `` x86_mmx ` ` IR type has been removed. It will be translated to
54
- the standard vector type `` <1 x i64> ` ` in bitcode upgrade.
55
- * Renamed `` llvm.experimental.stepvector `` intrinsic to `` llvm.stepvector ` `.
59
+ * The ` x86_mmx ` IR type has been removed. It will be translated to
60
+ the standard vector type ` <1 x i64> ` in bitcode upgrade.
61
+ * Renamed ` llvm.experimental.stepvector ` intrinsic to ` llvm.stepvector ` .
56
62
57
- * Added `` usub_cond `` and `` usub_sat `` operations to `` atomicrmw ` `.
63
+ * Added ` usub_cond ` and ` usub_sat ` operations to ` atomicrmw ` .
58
64
59
65
* Remove the following intrinsics which can be replaced with a `` bitcast `` :
60
66
@@ -85,9 +91,9 @@ Changes to the AArch64 Backend
85
91
Changes to the AMDGPU Backend
86
92
-----------------------------
87
93
88
- * Removed `` llvm.amdgcn.flat.atomic.fadd ` ` and
89
- `` llvm.amdgcn.global.atomic.fadd ` ` intrinsics. Users should use the
90
- : ref: `atomicrmw <i_atomicrmw >` instruction with `fadd ` and
94
+ * Removed ` llvm.amdgcn.flat.atomic.fadd ` and
95
+ ` llvm.amdgcn.global.atomic.fadd ` intrinsics. Users should use the
96
+ { ref} ` atomicrmw <i_atomicrmw> ` instruction with ` fadd ` and
91
97
addrspace(0) or addrspace(1) instead.
92
98
93
99
Changes to the ARM Backend
@@ -121,17 +127,17 @@ Changes to the RISC-V Backend
121
127
* ` .balign N, 0 ` , ` .p2align N, 0 ` , ` .align N, 0 ` in code sections will now fill
122
128
the required alignment space with a sequence of ` 0x0 ` bytes (the requested
123
129
fill value) rather than NOPs.
124
- * Added Syntacore SCR4 and SCR5 CPUs: `` -mcpu=syntacore-scr4/5-rv32/64 ` `
125
- * `` -mcpu=sifive-p470 ` ` was added.
126
- * Added Hazard3 CPU as taped out for RP2350: `` -mcpu=rp2350-hazard3 ` ` (32-bit
130
+ * Added Syntacore SCR4 and SCR5 CPUs: ` -mcpu=syntacore-scr4/5-rv32/64 `
131
+ * ` -mcpu=sifive-p470 ` was added.
132
+ * Added Hazard3 CPU as taped out for RP2350: ` -mcpu=rp2350-hazard3 ` (32-bit
127
133
only).
128
134
* Fixed length vector support using RVV instructions now requires VLEN>=64. This
129
135
means Zve32x and Zve32f will also require Zvl64b. The prior support was
130
136
largely untested.
131
- * The `` Zvbc32e `` and `` Zvkgs ` ` extensions are now supported experimentally.
132
- * Added `` Smctr `` and `` Ssctr ` ` extensions.
133
- * `` -mcpu=syntacore-scr7 ` ` was added.
134
- * The `` Zacas ` ` extension is no longer marked as experimental.
137
+ * The ` Zvbc32e ` and ` Zvkgs ` extensions are now supported experimentally.
138
+ * Added ` Smctr ` and ` Ssctr ` extensions.
139
+ * ` -mcpu=syntacore-scr7 ` was added.
140
+ * The ` Zacas ` extension is no longer marked as experimental.
135
141
136
142
Changes to the WebAssembly Backend
137
143
----------------------------------
@@ -149,13 +155,13 @@ Changes to the X86 Backend
149
155
encoding. To use optimised NOP filling in a code section, leave off the
150
156
"fillval" argument, i.e. ` .balign N ` , ` .p2align N ` or ` .align N ` respectively.
151
157
152
- * Due to the removal of the `` x86_mmx ` ` IR type, functions with
153
- `` x86_mmx ` ` arguments or return values will use a different,
158
+ * Due to the removal of the ` x86_mmx ` IR type, functions with
159
+ ` x86_mmx ` arguments or return values will use a different,
154
160
incompatible, calling convention ABI. Such functions are not
155
161
generally seen in the wild (Clang never generates them!), so this is
156
162
not expected to result in real-world compatibility problems.
157
163
158
- * Support ISA of `` AVX10.2-256 `` and `` AVX10.2-512 ` `.
164
+ * Support ISA of ` AVX10.2-256 ` and ` AVX10.2-512 ` .
159
165
160
166
Changes to the OCaml bindings
161
167
-----------------------------
@@ -166,40 +172,40 @@ Changes to the Python bindings
166
172
Changes to the C API
167
173
--------------------
168
174
169
- * The following symbols are deleted due to the removal of the `` x86_mmx ` ` IR type:
175
+ * The following symbols are deleted due to the removal of the ` x86_mmx ` IR type:
170
176
171
- * `` LLVMX86_MMXTypeKind ` `
172
- * `` LLVMX86MMXTypeInContext ` `
173
- * `` LLVMX86MMXType ` `
177
+ * ` LLVMX86_MMXTypeKind `
178
+ * ` LLVMX86MMXTypeInContext `
179
+ * ` LLVMX86MMXType `
174
180
175
181
* The following functions are added to further support non-null-terminated strings:
176
182
177
- * `` LLVMGetNamedFunctionWithLength ` `
178
- * `` LLVMGetNamedGlobalWithLength ` `
183
+ * ` LLVMGetNamedFunctionWithLength `
184
+ * ` LLVMGetNamedGlobalWithLength `
179
185
180
- * The following functions are added to access the `` LLVMContextRef ` ` associated
181
- with `` LLVMValueRef `` and `` LLVMBuilderRef ` ` objects:
186
+ * The following functions are added to access the ` LLVMContextRef ` associated
187
+ with ` LLVMValueRef ` and ` LLVMBuilderRef ` objects:
182
188
183
- * `` LLVMGetValueContext ` `
184
- * `` LLVMGetBuilderContext ` `
189
+ * ` LLVMGetValueContext `
190
+ * ` LLVMGetBuilderContext `
185
191
186
192
* The new pass manager can now be invoked with a custom alias analysis pipeline, using
187
- the `` LLVMPassBuilderOptionsSetAAPipeline ` ` function.
193
+ the ` LLVMPassBuilderOptionsSetAAPipeline ` function.
188
194
189
195
* It is now also possible to run the new pass manager on a single function, by calling
190
- `` LLVMRunPassesOnFunction `` instead of `` LLVMRunPasses ` `.
196
+ ` LLVMRunPassesOnFunction ` instead of ` LLVMRunPasses ` .
191
197
192
198
* Support for creating instructions with custom synchronization scopes has been added:
193
199
194
- * `` LLVMGetSyncScopeID ` ` to map a synchronization scope name to an ID.
195
- * `` LLVMBuildFenceSyncScope `` , `` LLVMBuildAtomicRMWSyncScope ` ` and
196
- `` LLVMBuildAtomicCmpXchgSyncScope ` ` versions of the existing builder functions
200
+ * ` LLVMGetSyncScopeID ` to map a synchronization scope name to an ID.
201
+ * ` LLVMBuildFenceSyncScope ` , ` LLVMBuildAtomicRMWSyncScope ` and
202
+ ` LLVMBuildAtomicCmpXchgSyncScope ` versions of the existing builder functions
197
203
with an additional synchronization scope ID parameter.
198
- * `` LLVMGetAtomicSyncScopeID `` and `` LLVMSetAtomicSyncScopeID ` ` to get and set the
204
+ * ` LLVMGetAtomicSyncScopeID ` and ` LLVMSetAtomicSyncScopeID ` to get and set the
199
205
synchronization scope of any atomic instruction.
200
- * `` LLVMIsAtomic ` ` to check if an instruction is atomic, for use with the above functions.
201
- Because of backwards compatibility, `` LLVMIsAtomicSingleThread ` ` and
202
- `` LLVMSetAtomicSingleThread ` ` continue to work with any instruction type.
206
+ * ` LLVMIsAtomic ` to check if an instruction is atomic, for use with the above functions.
207
+ Because of backwards compatibility, ` LLVMIsAtomicSingleThread ` and
208
+ ` LLVMSetAtomicSingleThread ` continue to work with any instruction type.
203
209
204
210
* The ` LLVMSetPersonalityFn ` and ` LLVMSetInitializer ` APIs now support clearing the
205
211
personality function and initializer respectively by passing a null pointer.
@@ -238,20 +244,20 @@ Changes to Sanitizers
238
244
Other Changes
239
245
-------------
240
246
241
- External Open Source Projects Using LLVM 19
242
- ===========================================
247
+ External Open Source Projects Using LLVM {{env.config.release}}
248
+ ===============================================================
243
249
244
250
* A project...
245
251
246
252
Additional Information
247
253
======================
248
254
249
- A wide variety of additional information is available on the ` LLVM web page
250
- < https://llvm.org/> `_ , in particular in the ` documentation
251
- < https://llvm.org/docs/> `_ section. The web page also contains versions of the
252
- API documentation which is up-to-date with the Git version of the source
253
- code. You can access versions of these documents specific to this release by
254
- going into the `` llvm/docs/ ` ` directory in the LLVM tree.
255
+ A wide variety of additional information is available on the
256
+ [ LLVM web page ] ( https://llvm.org/ ) , in particular in the
257
+ [ documentation ] ( https://llvm.org/docs/ ) section. The web page also contains
258
+ versions of the API documentation which is up-to-date with the Git version of
259
+ the source code. You can access versions of these documents specific to this
260
+ release by going into the ` llvm/docs/ ` directory in the LLVM tree.
255
261
256
262
If you have any questions or comments about LLVM, please feel free to contact
257
- us via the ` Discourse forums < https://discourse.llvm.org >`_ .
263
+ us via the [ Discourse forums] ( https://discourse.llvm.org ) .
0 commit comments