3482 Commits

Author SHA1 Message Date
bjorn3
ba0ab0a830 Sync from rust cca7ee58110726983951a19d5fb7316d9243925d 2023-05-28 09:49:57 +00:00
bjorn3
38b4b98598 Remove -preview tag from the llvm-tools component dependency 2023-05-28 09:11:07 +00:00
Guillaume Gomez
be82095e1c Rollup merge of #111952 - cjgillot:drop-replace, r=WaffleLapkin
Remove DesugaringKind::Replace.

A simple boolean flag is enough.
2023-05-27 13:38:31 +02:00
bjorn3
bd45794be5 Run tests against cg_llvm too in CI
Fixes #1115
2023-05-26 11:27:29 +00:00
bjorn3
72b194cd50 Fix #[cfg(target_os)] for macOS
Fixes #1376
2023-05-26 08:44:32 +00:00
bjorn3
202b14c802 Fix rustc test suite 2023-05-26 08:40:39 +00:00
bjorn3
b3415291a6 Rustup to rustc 1.71.0-nightly (a2b1646c5 2023-05-25) 2023-05-26 08:27:47 +00:00
bjorn3
35acd910bb Sync from rust a2b1646c597329d0a25efa3889b66650f65de1de 2023-05-26 08:22:10 +00:00
Michael Goulet
2f250c73ba Rollup merge of #111950 - cjgillot:expn-noinline, r=oli-obk
Remove ExpnKind::Inlined.

Suggested in https://github.com/rust-lang/rust/pull/111815#issuecomment-1561903339

r? ``@oli-obk``
2023-05-25 13:58:02 -07:00
Camille GILLOT
03f275bc5a Remove DesugaringKind::Replace. 2023-05-25 17:40:46 +00:00
bors
e6d1a0ed95 Auto merge of #86844 - bjorn3:global_alloc_improvements, r=pnkfelix
Support #[global_allocator] without the allocator shim

This makes it possible to use liballoc/libstd in combination with `--emit obj` if you use `#[global_allocator]`. This is what rust-for-linux uses right now and systemd may use in the future. Currently they have to depend on the exact implementation of the allocator shim to create one themself as `--emit obj` doesn't create an allocator shim.

Note that currently the allocator shim also defines the oom error handler, which is normally required too. Once `#![feature(default_alloc_error_handler)]` becomes the only option, this can be avoided. In addition when using only fallible allocator methods and either `--cfg no_global_oom_handling` for liballoc (like rust-for-linux) or `--gc-sections` no references to the oom error handler will exist.

To avoid this feature being insta-stable, you will have to define `__rust_no_alloc_shim_is_unstable` to avoid linker errors.

(Labeling this with both T-compiler and T-lang as it originally involved both an implementation detail and had an insta-stable user facing change. As noted above, the `__rust_no_alloc_shim_is_unstable` symbol requirement should prevent unintended dependence on this unstable feature.)
2023-05-25 16:59:57 +00:00
Camille GILLOT
f9dabd8b88 Remove ExpnKind::Inlined. 2023-05-25 16:43:14 +00:00
bjorn3
134dc33485 Fix testing with unstable features disabled 2023-05-24 17:31:25 +00:00
bjorn3
72e67c862f Fix compiling all tests with LLVM 2023-05-24 17:27:32 +00:00
bjorn3
5b3bc29008 Allow testing a cranelift backend built into rustc itself
This avoids building cranelift twice in rust's CI and is a lot easier
than trying to make building of codegen backends work from within a
cargo invocation done by rust's build system.
2023-05-24 17:27:28 +00:00
Maybe Waffle
a3b816be53 Use is_some_and/is_ok_and in less obvious spots 2023-05-24 14:33:43 +00:00
bjorn3
c87dfd9c9d Update Cranelift to 0.96.1
There was a minor bug in Wasmtime that needed a new release. Nothing
changed in Cranelift.
2023-05-23 11:55:07 +00:00
bjorn3
031bfa659f Print symbol name in PrintOnPanic for define_function 2023-05-23 11:48:34 +00:00
bjorn3
a684753a68
Merge pull request #1374 from bjorn3/non_rustup_build3
Allow building and testing without rustup
2023-05-22 20:58:07 +02:00
bjorn3
24f1569c85 Enable overflow-checks on CI
Unlike rustc with cargo debug-assertions = true doesn't imply overflow-checks = true
2023-05-22 18:35:56 +00:00
bjorn3
a555b8ab7e Add fixme 2023-05-22 17:17:50 +00:00
bjorn3
a2f720d9fe Allow building and testing without rustup
This can be done by installing the nightly specified in
rust-toolchain.toml and then pointing the CARGO, RUSTC and RUSTDOC env
vars to the right executables.
2023-05-22 17:17:05 +00:00
bjorn3
22befab611 Avoid hard-coding rustc path in prepare.rs 2023-05-22 17:17:05 +00:00
bjorn3
b1d8b7186c Only pass --frozen to cargo when it is passed to y.rs 2023-05-22 17:17:05 +00:00
bjorn3
2155c03500 Inline Compiler::bootstrap_with_triple 2023-05-22 17:10:55 +00:00
bjorn3
de8a4d5d46 Remove all implicit "rustc" from rustc_info.rs 2023-05-22 17:10:55 +00:00
bjorn3
6900c9943d Update Cranelift to 0.96.0 2023-05-22 16:06:01 +00:00
Dylan DPC
84644eb9c6 Rollup merge of #111633 - nnethercote:avoid-ref-format, r=WaffleLapkin
Avoid `&format("...")` calls in error message code.

Some error message cleanups. Best reviewed one commit at a time.

r? `@davidtwco`
2023-05-18 10:52:35 +05:30
Nilstrieb
74ab27c269 Remove LangItems::require
It's just a short wrapper used by `tcx.require_lang_item`. Deleting it
gives us a negative diff.
2023-05-16 19:53:38 +02:00
Nicholas Nethercote
8a9b38fd3b Avoid &format("...") calls in error message code.
Error message all end up passing into a function as an `impl
Into<{D,Subd}iagnosticMessage>`. If an error message is creatd as
`&format("...")` that means we allocate a string (in the `format!`
call), then take a reference, and then clone (allocating again) the
reference to produce the `{D,Subd}iagnosticMessage`, which is silly.

This commit removes the leading `&` from a lot of these cases. This
means the original `String` is moved into the
`{D,Subd}iagnosticMessage`, avoiding the double allocations. This
requires changing some function argument types from `&str` to `String`
(when all arguments are `String`) or `impl
Into<{D,Subd}iagnosticMessage>` (when some arguments are `String` and
some are `&str`).
2023-05-16 17:59:56 +10:00
bjorn3
b773282309 Use --sysroot ... instead of --sysroot=...
Rust's build system doesn't handle --sysroot=... correctly
2023-05-14 13:00:00 +00:00
bjorn3
521d937116 Pass --cap-lints=allow to tests 2023-05-14 12:53:00 +00:00
bjorn3
d16ba45fe4
Merge pull request #1373 from bjorn3/more_bench
Benchmark clif release builds with ./y.rs bench
2023-05-14 14:49:55 +02:00
bjorn3
a43f08363e Benchmark clif release builds with ./y.rs bench 2023-05-14 12:19:11 +00:00
bjorn3
88ae8fc9c8 Allow passing more than two commands to benchmark to hyperfine_command 2023-05-14 12:04:55 +00:00
bjorn3
d2a8023948 Fix CirrusCI 2023-05-14 10:17:12 +00:00
bjorn3
e39191594f Support _mm_movemask_ps 2023-05-12 17:07:38 +00:00
bjorn3
899d193c9d Implement a couple more platform intrinsics 2023-05-12 17:07:31 +00:00
bjorn3
ecbb33a71b Implement and fix a couple more simd intrinsics 2023-05-12 13:25:58 +00:00
bjorn3
f6ba10dead Fix rustc test suite 2023-05-12 12:58:56 +00:00
bjorn3
9b2a0984e9 Rustup to rustc 1.71.0-nightly (2a8221dbd 2023-05-11) 2023-05-12 12:50:44 +00:00
bjorn3
d6656403a3 Sync from rust 2a8221dbdfd180a2d56d4b0089f4f3952d8c2bcd 2023-05-12 12:45:38 +00:00
bjorn3
2253e866a9 Prevent insta-stable no alloc shim support
You will need to add the following as replacement for the old __rust_*
definitions when not using the alloc shim.

    #[no_mangle]
    static __rust_no_alloc_shim_is_unstable: u8 = 0;
2023-05-11 14:35:09 +00:00
bjorn3
a1d0a902c3 Use global_fn_name instead of format! 2023-05-11 14:35:09 +00:00
bjorn3
5930509272 Split AllocatorKind::fn_name in global_fn_name and default_fn_name 2023-05-11 14:35:08 +00:00
bjorn3
002aa8ed90 Don't use an allocator shim for #[global_allocator]
This makes it possible to use liballoc/libstd in combination with
`--emit obj` if you use `#[global_allocator]`. Making it work for the
default libstd allocator would require weak functions, which are not
well supported on all systems.
2023-05-11 14:23:31 +00:00
Kyle Matsuda
db3faa78d0 use EarlyBinder in tcx.(try_)subst_mir_and_normalize_erasing_regions 2023-05-06 22:32:39 -06:00
bjorn3
dfb11195da Replace once_cell with the newly stabilized std::sync::OnceLock 2023-05-05 18:55:34 +00:00
bjorn3
4ef286c038 Fix rustc test suite 2023-05-05 12:46:12 +00:00
bjorn3
332b54a6d3 Rustup to rustc 1.71.0-nightly (74c482104 2023-05-04) 2023-05-05 12:45:06 +00:00