Skip to content

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

clarfonthey and others added 13 commits October 14, 2024 16:37
…=thomcc

Run most `core::num` tests in const context too

This adds some infrastructure for something I was going to use in rust-lang#131566, but it felt worthwhile enough on its own to merge/discuss separately.

Essentially, right now we tend to rely on UI tests to ensure that things work in const context, rather than just using library tests. This uses a few simple macro tricks to make it *relatively* painless to execute tests in both runtime and compile-time context. And this only applies to the numeric tests, and not anything else.

Recommended to review without whitespace in the diff.

cc `@RalfJung`
…=compiler-errors

abi/compatibility: also test Option-like types

Adds tests for the decision [here](rust-lang#130628 (comment)).

Cc ``@workingjubilee``
…compiler-errors

analyse: remove unused uncanonicalized field

This field is unused and was only relevant when actually printing proof trees. Right now this simply causes proof tree building to leak a bunch of inference vars 😁

r? ``@compiler-errors``
Optimize `Rc<T>::default`

The missing piece of rust-lang#131460.

Also refactored `Arc<T>::default` by using a safe `NonNull::from(Box::leak(_))` to replace the unnecessarily unsafe call to `NonNull::new_unchecked(Box::into_raw(_))`. The remaining unsafety is coming from `[Rc|Arc]::from_inner`, which is safe from the construction of `[Rc|Arc]Inner`.
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Oct 23, 2024
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 23, 2024

📌 Commit b44a0fa has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 23, 2024
@bors
Copy link
Collaborator

bors commented Oct 23, 2024

⌛ Testing commit b44a0fa with merge 9abfcb4...

@bors
Copy link
Collaborator

bors commented Oct 23, 2024

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 9abfcb4 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 23, 2024
@bors bors merged commit 9abfcb4 into rust-lang:master Oct 23, 2024
7 checks passed
@rustbot rustbot added this to the 1.84.0 milestone Oct 23, 2024
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#131707 Run most core::num tests in const context too d16627bf524a8314a9958847736afbb6487dea93 (link)
#132002 abi/compatibility: also test Option-like types 8b16c5a565cec56cf01c1a10987ceeb34423cc31 (link)
#132026 analyse: remove unused uncanonicalized field e038e4cd45a95f5dd01df46f3ff97590074076a7 (link)
#132031 Optimize Rc<T>::default c581beefaa629b6a042e02b04e3be6dd82073420 (link)
#132040 relnotes: fix stabilizations of assume_init 31061d4dd0241628e30a76215fdcb83dccbacc9d (link)

previous master: e1f3068995

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (9abfcb4): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
1.0% [0.3%, 1.8%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.5% [-0.5%, -0.5%] 1
All ❌✅ (primary) 1.0% [0.3%, 1.8%] 2

Max RSS (memory usage)

Results (primary -2.2%, secondary -2.3%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.7% [0.7%, 0.7%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-5.2% [-5.2%, -5.2%] 1
Improvements ✅
(secondary)
-2.3% [-2.3%, -2.3%] 1
All ❌✅ (primary) -2.2% [-5.2%, 0.7%] 2

Cycles

Results (primary 1.3%, secondary -3.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
1.3% [1.3%, 1.3%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.1% [-3.1%, -3.1%] 1
All ❌✅ (primary) 1.3% [1.3%, 1.3%] 1

Binary size

Results (primary 0.2%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.2% [0.0%, 0.4%] 9
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.2% [0.0%, 0.4%] 9

Bootstrap: 781.732s -> 782.378s (0.08%)
Artifact size: 333.67 MiB -> 333.72 MiB (0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Oct 23, 2024
@Kobzol
Copy link
Member

Kobzol commented Oct 29, 2024

This actually looks like a genuine small regression across the board:
image

Might have been caused by LLVM doing more work because of #132031? 🤔 Started a perf. run.

@Kobzol
Copy link
Member

Kobzol commented Oct 30, 2024

The webrender regression was probably caused by #132031. Anyway, I don't think we need to look into that, as LLVM probably just spends more time optimizing.

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Oct 30, 2024
@matthiaskrgr matthiaskrgr deleted the rollup-u5ds6i3 branch January 25, 2025 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants