Commit Graph

4474 Commits

Author SHA1 Message Date
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
bjorn3
5349365566 Use unconditional download-ci-llvm in setup_rust_fork.sh
For whatever reason someone decided to make the default if-changed
always checkout the llvm-project submodule, which takes a while.
2024-09-15 17:40:12 +00:00
bjorn3
eee42f2679 Fix rustc test suite 2024-09-15 17:34:45 +00:00
bjorn3
16cee899d1 Avoid mir_operand_get_const_val hack for simd_insert and simd_extract 2024-09-15 17:27:12 +00:00
bjorn3
1e960213e8 Add test for _mm_cmpestri 2024-09-15 17:24:43 +00:00
bjorn3
cebdfe40ad Slightly simplify the simd_shuffle impl 2024-09-15 17:07:29 +00:00
bjorn3
c7b49987a6 Fix rustc test suite 2024-09-15 16:59:35 +00:00
bjorn3
61d3b59f58 Rustup to rustc 1.83.0-nightly (9b72238eb 2024-09-14) 2024-09-15 16:49:17 +00:00
bjorn3
ab989ac7cb Sync from rust 9b72238eb8 2024-09-15 16:43:21 +00:00
bjorn3
6fbe4d90b8 Rename remove_dir_if_exists to ensure_empty_dir and create the dir in this function
This avoids removing the directory, which may conflict with sandbox
systems like Landlock.
2024-09-14 17:34:24 +00:00
Ralf Jung
15848f3f08 simd_shuffle: require index argument to be a vector 2024-09-14 14:43:24 +02:00
bjorn3
b7272c236a Remove unnecessary -Zunstable-options 2024-09-13 16:45:11 +00:00
bjorn3
41f6d55398 Refactor command runner handling 2024-09-13 16:38:05 +00:00
bjorn3
652b00430d Remove unnecessary special case 2024-09-13 15:30:56 +00:00
bjorn3
d5e2e23f48 Misc cleanups 2024-09-13 15:17:22 +00:00
bjorn3
bc67321c6d Reduce usage of RelPath in build_sysroot 2024-09-13 14:45:29 +00:00
bjorn3
f204181112 Install git-tiny on Cirrus CI
This avoids pulling in perl.
2024-09-12 19:55:06 +00:00
bjorn3
4e38767320 Use plain sh for y.sh, test.sh and clean_all.sh
FreeBSD by default doesn't install bash.
2024-09-12 19:55:06 +00:00
bjorn3
1aa0cf930a Unconditionally use git to download test repos
It no longer saves much download time while still complicating the code
and requiring curl and tar to be installed.
2024-09-12 19:29:43 +00:00
bjorn3
45be990167 Inline prepare_stdlib into the sysroot build code
Also reduce visibility of a couple of statics
2024-09-12 19:04:11 +00:00
bjorn3
ade0e38b5e Fix building rustc and the rustc test suite 2024-09-11 19:41:00 +00:00
bjorn3
dcae9acda0 Rustup to rustc 1.83.0-nightly (0ee7cb5e3 2024-09-10) 2024-09-11 19:31:20 +00:00
bjorn3
17bcb2ff46 Sync from rust 0ee7cb5e36 2024-09-11 19:13:40 +00:00
bjorn3
b4d55a8799 Add missing dbghelp link directive for windows 2024-09-11 17:38:03 +00:00
Scott McMurray
fe5183e627 Fix the examples in cg_clif 2024-09-09 19:39:43 -07:00
bors
cf7c0554f1 Auto merge of #128939 - bjorn3:windows_cg_clif_component, r=albertlarsan68
Distribute rustc_codegen_cranelift for Windows

With support for raw-dylib recently added to cg_clif, and inline assembly support working on Windows for quite a while now, all blockers for distributing cg_clif on Windows that I mentioned in https://github.com/rust-lang/rust/pull/81746#issuecomment-1774099637 are fixed now.
2024-09-09 16:09:06 +00:00
bjorn3
b7ed9ad226 Remove test exclusion for fixed rustc test 2024-09-03 11:08:17 +00:00
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