Rollup of 10 pull requests#155674
Conversation
… `Option` or `Result`" This reverts commit 102bda4.
This reverts commit 2884230.
Skipping FileCheck in codegen/assembly tests is normally not very useful, but a small number of existing tests were using `//@ build-pass` to do so anyway, so it's clearer for them to explicitly use `//@ skip-filecheck` instead.
Tests in `tests/mir-opt` always use `--emit=mir`, so the compiler doesn't even produce an executable. Attempting to "run" these tests (e.g. with `./x test mir-opt --pass=run`) therefore fails when the OS notices that a MIR text file is not executable.
This argument is only used to inhibit `#![allow(unused)]` for `//@ run-pass` UI tests. No callers actually need to override this value, even when doing unusual things, so we can just look it up inside the method body instead.
LLVM 23 removed Os and Oz optimization pipelines and the PR says to use O2 with optsize or minsize instead as appropriate.
mir-opt: Remove the workaround in UnreachableEnumBranching rust-lang#120268 added a workaround due to the compile time of TailDuplicator. LLVM 20 has resolved this in llvm/llvm-project#114990 and llvm/llvm-project#132536.
…t-iat-ice, r=jackh726 Fix ICE for inherent associated type mismatches Avoid projection-only suggestions for inherent associated types. Closes rust-lang#154333 Closes rust-lang#155204
…tgross35 Improved assumptions relating to isqrt Improved various assumptions relating to values yielded by `isqrt`. Does not solve but does improve rust-lang#132763. Re-openeing of rust-lang#154115 Added assumptions are: * if `x` is nonzero then `x.isqrt()` is nonzero * `x.isqrt() <= x` * `x.isqrt() * x.isqrt() <= x`
c-variadic: use `emit_ptr_va_arg` for mips tracking issue: rust-lang#44930 After reading the implementation carefully, I believe it really is just `emit_ptr_va_arg`. The LLVM implementation can be found here: https://github.com/llvm/llvm-project/blob/289a3292be0c6a3df86bcdf5be7dd05b79a5570c/llvm/lib/Target/Mips/MipsISelLowering.cpp#L2338. r? workingjubilee
…d-code, r=wesleywiser
Mark a function only used in nightly as nightly only
If you run `./x.py test rustc_next_trait_solver` you'll currently see a failure:
```
warning: method `merge` is never used
--> compiler/rustc_abi/src/callconv.rs:38:8
|
25 | impl HomogeneousAggregate {
| ------------------------- method in this implementation
...
38 | fn merge(self, other: HomogeneousAggregate) -> Result<HomogeneousAggregate, Heterogeneous> {
| ^^^^^
|
= note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
warning: `rustc_abi` (lib) generated 1 warning
```
This is because the usages are behind a nightly feature flag:
https://github.com/rust-lang/rust/blob/fda6d37bb88ee12fd50fa54d15859f1f91b74f55/compiler/rustc_abi/src/callconv.rs#L52
https://github.com/rust-lang/rust/blob/fda6d37bb88ee12fd50fa54d15859f1f91b74f55/compiler/rustc_abi/src/callconv.rs#L131
https://github.com/rust-lang/rust/blob/fda6d37bb88ee12fd50fa54d15859f1f91b74f55/compiler/rustc_abi/src/callconv.rs#L167
This does the flag off.
Test on `main` and this branch:
```
./x.py test rustc_next_trait_solver
```
…ss35 c-variadic: rename `VaList::arg` to `VaList::next_arg` tracking issue: rust-lang#44930 per [the T-libs-api meeting](https://hackmd.io/d9D6vUnuTnCWygkc3hffEw#nominated-rusttf44930-Tracking-issue-for-RFC-2137-Support-defining-C-compatible-variadic-functions-in-Rust-c_variadic), rename `VaList::arg` to `VaList::next_arg`.
Make `//@ skip-filecheck` a normal compiletest directive The `skip-filecheck` directive is currently used by mir-opt tests, to suppress the default behaviour of running LLVM's `FileCheck` tool to check MIR output against FileCheck rules in the test file. The `skip-filecheck` directive was not included in the big migration to `//@` directive syntax (rust-lang#121370), perhaps because it was parsed and processed in the *miropt-test-tools* helper crate, not in compiletest itself. Recently I noticed that a small number of *codegen-llvm* tests were using the `//@ build-pass` directive, which has the non-obvious effect of skipping FileCheck in codegen tests. That's quite confusing, so I decided to have the mir-opt tests migrate over to a proper `//@ skip-filecheck` directive, which could then be used by codegen tests as well. (I also added skip-filecheck support to assembly tests, which are very similar to codegen tests, though there are currently no assembly tests that actually use `//@ skip-filecheck`.) --- Support for using `//@ build-pass` in codegen tests to skip FileCheck was introduced in rust-lang#113603. With hindsight, I think doing things that way was pretty clearly a mistake, and we'll be better off with `//@ skip-filecheck`. r? jieyouxu
Remove non-working code for "running" mir-opt tests Tests in `tests/mir-opt` always use `--emit=mir`, so the compiler doesn't even produce an executable. Attempting to "run" these tests (e.g. with `./x test mir-opt --pass=run`) therefore fails when the OS notices that a MIR text file is not executable. --- The second commit performs some semi-related cleanup. r? jieyouxu
Expand `Path::is_empty` docs Give some reasons why you might want to check if a path is empty. The `Path::join` behaviour can be surprising if you're not aware it might happen.
…nikic rustc_llvm: update opt-level handling for LLVM 23 LLVM 23 removed Os and Oz optimization pipelines and the PR says to use O2 with optsize or minsize instead as appropriate. See llvm/llvm-project#191363 for more details.
|
@bors r+ rollup=never p=5 |
This comment has been minimized.
This comment has been minimized.
|
📌 Perf builds for each rolled up PR:
previous master: 92c7010294 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 92c7010 (parent) -> 827651f (this PR) Test differencesShow 2508 test diffsStage 1
Stage 2
Additionally, 2498 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 827651f2200cefab42dac4c2ae7f80a7149340de --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (827651f): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (primary -3.0%, secondary 3.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -5.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 500.795s -> 490.734s (-2.01%) |
Successful merges:
emit_ptr_va_argfor mips #152576 (c-variadic: useemit_ptr_va_argfor mips)VaList::argtoVaList::next_arg#155614 (c-variadic: renameVaList::argtoVaList::next_arg)//@ skip-filechecka normal compiletest directive #155630 (Make//@ skip-filechecka normal compiletest directive)Path::is_emptydocs #155652 (ExpandPath::is_emptydocs)r? @ghost
Create a similar rollup