Commit Graph

4445 Commits

Author SHA1 Message Date
bjorn3
39defb1c9c Rustup to rustc 1.83.0-nightly (bd53aa3bf 2024-09-02) 2024-09-03 11:01:25 +00:00
bjorn3
c31f7b9785 Sync from rust bd53aa3bf7 2024-09-03 10:53:37 +00:00
Rémy Rakic
0fba9b4dbb introduce PrettyPrintMirOptions for cosmetic MIR dump options
initially starting with `-Z mir-include-spans` because we want them in
the NLL mir dump pass
2024-08-30 07:07:28 +00:00
bjorn3
7e4cafb653 Fix rustc test suite 2024-08-28 12:36:34 +00:00
bjorn3
36c126f94a Rustup to rustc 1.82.0-nightly (1f12b9b0f 2024-08-27) 2024-08-28 10:25:03 +00:00
bjorn3
217b005dd1 Sync from rust 1f12b9b0fd 2024-08-28 10:18:51 +00:00
Trevor Gross
8a26d21ce2 Rollup merge of #128731 - RalfJung:simd-shuffle-vector, r=workingjubilee
simd_shuffle intrinsic: allow argument to be passed as vector

See https://github.com/rust-lang/rust/issues/128738 for context.

I'd like to get rid of [this hack](6c0b89dfac/compiler/rustc_codegen_ssa/src/mir/block.rs (L922-L935)). https://github.com/rust-lang/rust/pull/128537 almost lets us do that since constant SIMD vectors will then be passed as immediate arguments. However, simd_shuffle for some reason actually takes an *array* as argument, not a vector, so the hack is still required to ensure that the array becomes an immediate (which then later stages of codegen convert into a vector, as that's what LLVM needs).

This PR prepares simd_shuffle to also support a vector as the `idx` argument. Once this lands, stdarch can hopefully be updated to pass `idx` as a vector, and then support for arrays can be removed, which finally lets us get rid of that hack.
2024-08-27 01:46:50 -05:00
bjorn3
19757ecb9d Update Cranelift to 0.111 2024-08-22 19:39:43 +00:00
bjorn3
87e74fe80b Rustup to rustc 1.82.0-nightly (a32d4a0e8 2024-08-21) 2024-08-22 19:24:47 +00:00
bjorn3
46b7db19ae Sync from rust a32d4a0e82 2024-08-22 11:08:13 +00:00
bjorn3
01f873990a Rustup to rustc 1.82.0-nightly (6de928dce 2024-08-18) 2024-08-19 17:21:56 +00:00
bjorn3
c1e7b0068d Sync from rust 6de928dce9 2024-08-19 17:15:21 +00:00
Ralf Jung
8e7b3b5c2b rename AddressOf -> RawBorrow inside the compiler 2024-08-18 19:46:53 +02:00
Ralf Jung
f1fadb8ba2 stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
Chris Denton
d7198a541d Always use ar_archive_writer for import libs 2024-08-17 19:10:46 +00:00
bjorn3
69cec6faea Rustup to rustc 1.82.0-nightly (13a52890d 2024-08-14) 2024-08-15 17:53:20 +00:00
bjorn3
c7d43c333a Sync from rust 13a52890dd 2024-08-15 17:46:33 +00:00
bors
e2acda7447 Auto merge of #128812 - nnethercote:shrink-TyKind-FnPtr, r=compiler-errors
Shrink `TyKind::FnPtr`.

By splitting the `FnSig` within `TyKind::FnPtr` into `FnSigTys` and `FnHeader`, which can be packed more efficiently. This reduces the size of the hot `TyKind` type from 32 bytes to 24 bytes on 64-bit platforms. This reduces peak memory usage by a few percent on some benchmarks. It also reduces cache misses and page faults similarly, though this doesn't translate to clear cycles or wall-time improvements on CI.

r? `@compiler-errors`
2024-08-14 00:56:53 +00:00
Ralf Jung
6906793db8 simd_shuffle intrinsic: allow argument to be passed as vector (not just as array) 2024-08-13 07:51:17 +02:00
Guillaume Gomez
ef74616e44 Rollup merge of #128149 - RalfJung:nontemporal_store, r=jieyouxu,Amanieu,Jubilee
nontemporal_store: make sure that the intrinsic is truly just a hint

The `!nontemporal` flag for stores in LLVM *sounds* like it is just a hint, but actually, it is not -- at least on x86, non-temporal stores need very special treatment by the programmer or else the Rust memory model breaks down. LLVM still treats these stores as-if they were normal stores for optimizations, which is [highly dubious](https://github.com/llvm/llvm-project/issues/64521). Let's avoid all that dubiousness by making our own non-temporal stores be truly just a hint, which is possible on some targets (e.g. ARM). On all other targets, non-temporal stores become regular stores.

~~Blocked on https://github.com/rust-lang/stdarch/pull/1541 propagating to the rustc repo, to make sure the `_mm_stream` intrinsics are unaffected by this change.~~

Fixes https://github.com/rust-lang/rust/issues/114582
Cc `@Amanieu` `@workingjubilee`
2024-08-12 17:09:14 +02:00
bjorn3
b4e46de5f3 Fix clif ir text format emission 2024-08-11 20:21:39 +00:00
bjorn3
918e11d14d Fix clean_all.sh 2024-08-11 11:52:23 +00:00
bjorn3
fabb29821a Rustup to rustc 1.82.0-nightly (730d5d409 2024-08-10) 2024-08-11 11:52:08 +00:00
bjorn3
65369af4df Sync from rust 730d5d4095 2024-08-11 11:44:15 +00:00
bjorn3
060811a602 Distribute rustc_codegen_cranelift for Windows 2024-08-10 21:16:44 +00:00
bjorn3
ab1da46e45 Fix source path for portable-simd
To avoid overriding the source for coretests every time.
2024-08-10 16:33:36 +00:00
bjorn3
aa918f02e4 Stop ignoring some portable-simd tests 2024-08-10 16:31:22 +00:00
bjorn3
52aa24ed4a Move cleaning of y.bin to the "to be removed" section in clean_all.sh 2024-08-10 15:29:17 +00:00
bjorn3
e55c630133 Add back bench job dependency for the release job 2024-08-10 15:20:58 +00:00
bjorn3
a33f731df7 Couple of minor build system changes 2024-08-10 15:18:04 +00:00
bjorn3
1b9645853a Remove --debug argument of y.sh
I rarely need a debug build of cg_clif, and even if I actually need one,
using package overrides in Cargo.toml to only do a debug build for the
rustc_codegen_cranelift crate works much better.
2024-08-10 14:16:53 +00:00
Nadrieril
3de829e4e5 Fixes in various places 2024-08-10 12:08:46 +02:00
bjorn3
bb6571fd63 Rustup to rustc 1.82.0-nightly (ca5d25e2c 2024-08-09) 2024-08-10 06:53:16 +00:00
bjorn3
aec3786ead Apply missed change from subtree sync 2024-08-09 17:34:52 +00:00
bjorn3
78abc36ac0 Merge branch 'sync_from_rust' 2024-08-09 17:33:55 +00:00
bjorn3
0174cb1932 Use ar_archive_writer from sysroot for cg_clif 2024-08-09 17:23:50 +00:00
bjorn3
3ea9313de3 Merge commit '69b3f5a426a5c1c05236a45b36f6679d95fbe01b' into sync_cg_clif-2024-08-09 2024-08-09 17:18:46 +00:00
bjorn3
69b3f5a426 Couple of minor cleanups 2024-08-09 16:13:39 +00:00
bjorn3
0e20a762f1 Stop using a custom Cargo.toml and Cargo.lock for the standard library
The rust-src component now ships a working copy of both.
2024-08-09 15:59:30 +00:00
bjorn3
d515e881a7 Disable f16 and f128 in compiler-builtins when running rustc tests 2024-08-09 15:51:43 +00:00
bjorn3
d61b0e782f Rustup to rustc 1.82.0-nightly (3e9bd8b56 2024-08-08) 2024-08-09 15:38:46 +00:00
Nicholas Nethercote
b8b3a9328f Shrink TyKind::FnPtr.
By splitting the `FnSig` within `TyKind::FnPtr` into `FnSigTys` and
`FnHeader`, which can be packed more efficiently. This reduces the size
of the hot `TyKind` type from 32 bytes to 24 bytes on 64-bit platforms.
This reduces peak memory usage by a few percent on some benchmarks. It
also reduces cache misses and page faults similarly, though this doesn't
translate to clear cycles or wall-time improvements on CI.
2024-08-09 14:33:25 +10:00
bjorn3
a2f3413922
Merge pull request #1524 from dpaoliello/rawdylib
Add support for raw-dylib
2024-08-08 23:45:20 +02:00
Daniel Paoliello
2756bd6ff7 Add support for raw-dylib 2024-08-08 13:51:58 -07:00
bjorn3
fdc6a5562b Fix rustc test suite 2024-08-08 21:54:20 +02:00
bjorn3
60ffec8b4a Rustup to rustc 1.82.0-nightly (8b3870784 2024-08-07) 2024-08-08 19:25:20 +00:00
Michael Goulet
e96ece7c0b Rename struct_tail_erasing_lifetimes to struct_tail_for_codegen 2024-08-08 12:15:16 -04:00
bjorn3
82605c4b5c Sync from rust 8b3870784f 2024-08-08 14:55:59 +00:00
bjorn3
14d020f88d Remove no longer used vendor intrinsic implementations 2024-08-07 10:00:13 +00:00
bjorn3
76f615ef1f Rustup to rustc 1.82.0-nightly (60d146580 2024-08-06) 2024-08-07 09:54:55 +00:00