@@ -260,8 +260,8 @@ Changes to the RISC-V Target
260
260
----------------------------
261
261
262
262
New Features:
263
- * The Machine Outliner has been enabled.
264
- * Shrink-wrapping has been enabled .
263
+ * The Machine Outliner is now supported, but not enabled by default .
264
+ * Shrink-wrapping is now supported .
265
265
* The Machine Scheduler has been enabled and scheduler descriptions for the
266
266
Rocket micro-architecture have been added, covering both 32- and 64-bit Rocket
267
267
cores.
@@ -276,9 +276,12 @@ New Features:
276
276
the assembler for use in legacy code.
277
277
* The stack can now be realigned even when there are variable-sized objects in
278
278
the same frame.
279
- * fastcc is now supported.
279
+ * fastcc is now supported. This is a more efficient, unstandardised, calling
280
+ convention for calls to private leaf functions in the same IR module.
280
281
* llvm-objdump now supports `-M no-aliases ` and `-M numeric ` for altering the
281
- dumped assembly. These match the behaviour of GNU objdump.
282
+ dumped assembly. These match the behaviour of GNU objdump, respectively
283
+ disabling instruction aliases and printing the numeric register names rather
284
+ than the ABI register names.
282
285
283
286
Improvements:
284
287
* Trap and Debugtrap now lower to RISC-V-specific trap instructions.
@@ -289,20 +292,19 @@ Improvements:
289
292
* The assembler now suggests spelling corrections for unknown assembly
290
293
mnemonics.
291
294
* Stack offsets of greater than 32-bits are now accepted on RV64.
292
- * Some variadic functions can now be tail-call optimised.
293
- * We now custom-lower 32-bit arithmetic operations on RV64 to reduce
294
- sign-extensions.
295
-
295
+ * Variadic functions can now be tail-call optimised, as long as they do not use
296
+ stack memory for passing arguments.
297
+ * Code generation has been changed for 32-bit arithmetic operations on RV64 to
298
+ reduce sign-extensions.
296
299
297
300
Bug Fixes:
298
-
299
301
* There was an issue with register preservation after calls in interrupt
300
302
handlers, where some registers were marked as preserved even though they were
301
303
not being preserved by the call. This has been corrected, and now only
302
304
callee-saved registers are live over a function call in an interrupt handler
303
305
(just like calls in regular functions).
304
306
* Atomic instructions now only accept GPRs (plus an offset) in memory operands.
305
- * Fixed some issues with evalutaion of relocations and fixups.
307
+ * Fixed some issues with evaluation of relocations and fixups.
306
308
* The error messages around missing RISC-V extensions in the assembler have been
307
309
improved.
308
310
* The error messages around unsupported relocations have been improved.
@@ -314,7 +316,10 @@ Bug Fixes:
314
316
* RV64 no longer clears the upper bits when returning complex types from
315
317
libcalls using the LP64 psABI.
316
318
317
-
319
+ Compiler-RT:
320
+ * RISC-V (both 64-bit and 32-bit) is now supported by compiler-rt, allowing
321
+ crtbegin and crtend to be built.
322
+ * The Sanitizers now support 64-bit RISC-V on linux.
318
323
319
324
Changes to the OCaml bindings
320
325
-----------------------------
0 commit comments