Skip to content

Commit d80b814

Browse files
committed
[LoongArch] Summary llvm20 release notes
1 parent 0bcf34e commit d80b814

File tree

1 file changed

+60
-1
lines changed

1 file changed

+60
-1
lines changed

llvm/docs/ReleaseNotes.md

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,57 @@ Changes to the Hexagon Backend
177177
Changes to the LoongArch Backend
178178
--------------------------------
179179

180+
* [Incorrect GOT usage](https://github.com/llvm/llvm-project/pull/117099) for `non-dso_local` function calls in large code model is fixed.
181+
182+
* A [gprof support issue](https://github.com/llvm/llvm-project/issues/121103) is fixed.
183+
184+
* A [SDAG hang issue](https://github.com/llvm/llvm-project/issues/107355) caused by `ISD::CONCAT_VECTORS` is fixed.
185+
186+
* A [compiler crash issue](https://github.com/llvm/llvm-project/issues/118301) when converting `half` to `i32` is fixed.
187+
188+
* Almost all of `la64v1.1` instructions can now be generated. The full list is
189+
`frecipe.s`, `frecipe.d`, `frsqrte.s`, `frsqrte.d`, `vfrecipe.s`, `vfrecipe.d`,
190+
`vfrsqrte.s`, `vfrsqrte.d`, `xvfrecipe.s`, `xvfrecipe.d`, `xvfrsqrte.s`,
191+
`xvfrsqrte.d`, `sc.q`, `amcas.b`, `amcas.h`, `amcas.w`, `amcas.d`, `amcas_db.b`,
192+
`amcas_db.h`, `amcas_db.w`, `amcas_db.d`, `amswap.b`, `amswap.h`, `amswap_db.b`,
193+
`amswap_db.h`, `amadd.b`, `amadd.h`, `amadd_db.b`, `amadd_db.h`. Optionally
194+
generate instructions `dbar 0x700`, `div.w`, `div.wu`, `mod.w` and `mod.wu`
195+
when related target features are enabled. `llacq.w`, `screl.w`, `llacq.d` and
196+
`screl.d` cannot be generated yet.
197+
198+
* An llc option called `-loongarch-annotate-tablejump` is added to annotate
199+
table jump instruction in the `.discard.tablejump_annotate` section. A typical
200+
user of these annotations is the `objtool` in Linux kernel.
201+
202+
* The default cpu in `MCSubtargetInfo` is changed from `la464` to `generic-la64`.
203+
In addition, the `lsx` feature is added to `generic-la64`.
204+
205+
* CFI instructions now allow register names and aliases, previously only numbers
206+
were allowed.
207+
208+
* `RuntimeDyld` now supports LoongArch, which means that programs relying on
209+
`MCJIT` can now work.
210+
211+
* `.balign N, 0`, `.p2align N, 0`, `.align N, 0` in code sections will now fill
212+
the required alignment space with a sequence of `0x0` bytes (the requested
213+
fill value) rather than NOPs.
214+
215+
* `%ld_pcrel_20`, `%gd_pcrel_20` and `%desc_pcrel_20` operand modifiers are
216+
supported by assembler.
217+
218+
* A machine function pass called `LoongArch Merge Base Offset` is added to merge
219+
the offset of address calculation into the offset field of instructions in a
220+
global address lowering sequence.
221+
222+
* The `LoopDataPrefetch` pass can now work on LoongArch, but it is disabled by
223+
default due to the bad effect on Fortran benchmarks.
224+
225+
* Enable alias analysis by default.
226+
227+
* Avoid indirect branch jumps using the `$ra` register.
228+
229+
* Other optimizations.
230+
180231
Changes to the MIPS Backend
181232
---------------------------
182233

@@ -489,11 +540,19 @@ Changes to LLDB
489540
to be opened in the firewall (one for the `lldb-server` platform, one for gdbserver connections).
490541
In addition, due to this work, `lldb-server` now works on Windows in the server mode.
491542

492-
* LLDB now supports execution of user expressions for non-trivial cases for RISC-V targets, like function calls, when some code needs to be executed on the target.
543+
* LLDB now supports execution of user expressions for non-trivial cases for LoongArch and RISC-V targets, like function calls, when some code needs to be executed on the target.
493544

494545
* LLDB now supports optionally enabled/disabled register sets (particularly floating point registers) for RISC-V 64. This happens for targets like `RV64IMAC` or `RV64IMACV`,
495546
that have no floating point registers. The change is applied to native debugging and core-file usage.
496547

548+
* LLDB now supports [core-file for LoongArch](https://github.com/llvm/llvm-project/pull/112296).
549+
550+
* LLDB now supports [hardware breakpoint and watchpoint for LoongArch](https://github.com/llvm/llvm-project/pull/118770).
551+
552+
* LLDB now supports [vector registers for LoongArch](https://github.com/llvm/llvm-project/pull/120664) when debugging a live process.
553+
554+
* Incorrect floating-point register dwarf number for LoongArch is [fixed](https://github.com/llvm/llvm-project/pull/120391).
555+
497556
Changes to BOLT
498557
---------------------------------
499558

0 commit comments

Comments
 (0)