Commit Graph

4471 Commits

Author SHA1 Message Date
bjorn3
3f06952be3 Rustup to rustc 1.84.0-nightly (4f2f477fd 2024-10-23) 2024-10-24 09:16:08 +00:00
bjorn3
0093a4b920 Sync from rust 4f2f477fde 2024-10-24 08:51:44 +00:00
bjorn3
45c2002f08 Update abi-cafe test expectations for a recent fix of the rust abi 2024-10-20 14:29:22 +00:00
bjorn3
04f33cc839 Rustup to rustc 1.84.0-nightly (da935398d 2024-10-19) 2024-10-20 14:14:00 +00:00
bjorn3
383bb665d2 Sync from rust da935398d5 2024-10-20 13:57:42 +00:00
Michael Goulet
65201c20a6 Fix tests 2024-10-19 18:07:35 +00:00
Michael Goulet
2f1b15f145 Allow dropping dyn principal 2024-10-17 20:43:31 +02:00
bjorn3
6666435b8a Fix rustc test suite (broken by prev commit) 2024-10-17 16:58:00 +00:00
bjorn3
bbaaecc250 Stop copying libstd.so to dist/lib
It is only necessary in dist/lib/rustlib/*/lib anymore. The jit mode now
correctly find it there too.
2024-10-17 16:31:12 +00:00
bjorn3
16067fdea1 Mark blocks as cold in a couple more places 2024-10-17 17:57:34 +02:00
bjorn3
47a7e994f2 Rustup to rustc 1.84.0-nightly (798fb83f7 2024-10-16) 2024-10-17 10:55:09 +00:00
bjorn3
bf2da675c8 Sync from rust 798fb83f7d 2024-10-17 10:07:36 +00:00
Jed Brown
270fb2130c intrinsics.fmuladdf{16,32,64,128}: expose llvm.fmuladd.* semantics
Add intrinsics `fmuladd{f16,f32,f64,f128}`. This computes `(a * b) +
c`, to be fused if the code generator determines that (i) the target
instruction set has support for a fused operation, and (ii) that the
fused operation is more efficient than the equivalent, separate pair
of `mul` and `add` instructions.

https://llvm.org/docs/LangRef.html#llvm-fmuladd-intrinsic

MIRI support is included for f32 and f64.

The codegen_cranelift uses the `fma` function from libc, which is a
correct implementation, but without the desired performance semantic. I
think this requires an update to cranelift to expose a suitable
instruction in its IR.

I have not tested with codegen_gcc, but it should behave the same
way (using `fma` from libc).
2024-10-11 15:32:56 -06:00
bjorn3
76dfce7a6f Fix rustc test suite 2024-10-10 16:32:42 +00:00
bjorn3
5d7d2518b3 Rustup to rustc 1.83.0-nightly (eb4e23467 2024-10-09) 2024-10-10 16:19:54 +00:00
bjorn3
3cf701c845 Sync from rust eb4e234674 2024-10-10 16:13:20 +00:00
bjorn3
14f656ede3 Compile all abi-cafe tests with debuginfo enabled 2024-10-10 16:09:42 +00:00
Jubilee Young
48504415cf cg_clif: Factor out rustc_target::abi 2024-10-08 18:24:56 -07:00
Folkert de Vries
2811ce715d various fixes for naked_asm! implementation
- fix for divergence
- fix error message
- fix another cranelift test
- fix some cranelift things
- don't set the NORETURN option for naked asm
- fix use of naked_asm! in doc comment
- fix use of naked_asm! in run-make test
- use `span_bug` in unreachable branch
2024-10-06 19:00:09 +02:00
Urgau
0bd0b99729 Use wide pointers consistenly across the compiler 2024-10-04 14:06:48 +02:00
bjorn3
a146874989 Couple of clif ir printing improvements around abi handling 2024-10-03 15:34:21 +02:00
bjorn3
0ba084514a Also enable Cranelift optimizations with -Copt-level=1/2 2024-10-03 12:36:16 +00:00
bjorn3
0f1284cea7 Fix ./y.sh prepare when the download dir is clobbered 2024-10-03 10:15:15 +00:00
bjorn3
0a9ce96e7a Validate dir checksum during testing too
Fixes rust-lang/rustc_codegen_cranelift#1394
2024-10-03 10:13:20 +00:00
bjorn3
9a48c44a27 Remove pulley-interpreter dependency 2024-10-03 09:01:42 +00:00
bjorn3
743a2e47ac Update to Cranelift 0.112.0 2024-10-03 09:01:40 +00:00
Michael Goulet
d10a16ae40 Relax a debug assertion in codegen 2024-09-30 12:18:02 -04:00
Ralf Jung
9b31c68c0e fix cranelift CI 2024-09-29 07:32:08 +02:00
bjorn3
764f1ba5cd Fix running rustc tests 2024-09-26 16:54:35 +00:00
bjorn3
eccda69544 Rustup to rustc 1.83.0-nightly (9e394f551 2024-09-25) 2024-09-26 16:41:40 +00:00
bjorn3
39440c53dc Sync from rust 9e394f551c 2024-09-26 16:36:04 +00:00
Michael Goulet
6fdc133daa Add a debug assertion in codegen that unsize casts of the same principal trait def id are truly NOPs 2024-09-25 11:13:59 -04:00
Lukas Markeffsky
25b66d8091 be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
Lukas Markeffsky
1efad22339 unify dyn* coercions with other pointer coercions 2024-09-24 22:17:55 +02:00
Michael Goulet
631ab21ff0 Check vtable projections for validity in miri 2024-09-23 19:38:26 -04:00
bjorn3
3a3a6347bb Merge branch 'sync_from_rust' 2024-09-23 11:32:18 +00:00
bjorn3
9d8572d33b Rustfmt 2024-09-23 11:28:15 +00:00
bjorn3
f3ae4237ab Revert change to apply_patches to fix panic 2024-09-23 11:20:56 +00:00
bjorn3
32b608a439 Merge commit '6d35b4c9a04580366fd800692a5b5db79d766530' into sync_cg_clif-2024-09-22 2024-09-23 11:20:46 +00:00
bjorn3
6d35b4c9a0 Rustup to rustc 1.83.0-nightly (6c6d21008 2024-09-22) 2024-09-23 11:11:08 +00:00
bjorn3
faeede3881 Merge branch 'sync_from_rust' 2024-09-23 11:04:43 +00:00
Michael Goulet
02b0f3b5ab Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
bjorn3
ab7777f982 Fix rustc test suite 2024-09-22 18:10:08 +00:00
bjorn3
27b21af624 Rustup to rustc 1.83.0-nightly (1d68e6dd1 2024-09-21) 2024-09-22 17:35:29 +00:00
bjorn3
1d53572570 Sync from rust 1d68e6dd1d 2024-09-22 17:14:10 +00:00
nora
f5686e3cc9
Write return value for ptr_mask intrinsic (#1536)
This was forgotten. Without it, ptr_mask just always returns null.
2024-09-22 15:46:44 +02:00
Folkert de Vries
90300ef40b add C-cmse-nonsecure-entry ABI 2024-09-21 13:04:14 +02:00
Michael Goulet
460abead20 Do not unnecessarily eval consts in codegen 2024-09-20 20:38:11 -04:00
Turki Al-Marri
753271ce7e
aarch64 neon intrinsics: vmaxq_f32, vminq_f32, vaddvq_f32, vrndnq_f32 (#1533) 2024-09-19 18:11:24 +02:00
Nicholas Nethercote
37204ee563 Use associative type defaults in {Layout,FnAbi}OfHelpers.
This avoids some repetitive boilerplate code.
2024-09-17 10:25:06 +10:00