Skip to content

Conversation

Zalathar
Copy link
Contributor

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

mejrs and others added 12 commits May 9, 2025 23:16
- update pretty printing tests
- only add generic parameters when function is actually generic (no empty turbofish)
Ensure that code for generic `d_primal::<T>` is generated even if `primal::<T>`
is never used.

- incorporate feedback from @ZuseZ4
…seZ4

fix autodiff macro on generic functions

heloo there!
This short PR allows applying the `autodiff` macro to generic functions like this one.
It only touches the frontend part, since the `rustc_autodiff` macro can already handle generics.
```rust
#[autodiff(d_square, Reverse, Duplicated, Active)]
fn square<T: std::ops::Mul<Output = T> + Copy>(x: &T) -> T {
    *x * *x
}
```
Thanks to Manuel for creating an issue on this. For more information on this see rust-lang#140032
r? `@ZuseZ4`

As always: thanks for any piece of feedback!!

Fixes: rust-lang#140032
Tracking issue for autodiff: rust-lang#124509
make `rustc_attr_parsing` less dominant in the rustc crate graph

It has/had a glob re-export of `rustc_attr_data_structures`, which is a crate much lower in the graph, and a lot of crates were using it *just* (or *mostly*) for that re-export, while they can rely on `rustc_attr_data_structures` directly.

Previous graph:
![graph_1](https://github.com/user-attachments/assets/f4a5f13c-4222-4903-b56d-28c83511fcbd)

Graph with this PR:
![graph_2](https://github.com/user-attachments/assets/1e053d9c-75cc-402b-84df-86229c98277a)

The first commit keeps the re-export, and just changes the dependency if possible. The second commit is the "breaking change" which removes the re-export, and "explicitly" adds the `rustc_attr_data_structures` dependency where needed. It also switches over some src/tools/*.

The second commit is actually a lot more involved than I expected. Please let me know if it's a better idea to back it out and just keep the first commit.
…bilee

[std] fix the presentation of `split_off_mut` and `split_off` documentation

Fixes rust-lang#141107

r? libs
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustdoc-json Area: Rustdoc JSON backend 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. rollup A PR which is a rollup labels May 19, 2025
@Zalathar
Copy link
Contributor Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented May 19, 2025

📌 Commit 93bc64d has been approved by Zalathar

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 May 19, 2025
@bors
Copy link
Collaborator

bors commented May 19, 2025

⌛ Testing commit 93bc64d with merge 5f292ee...

@bors
Copy link
Collaborator

bors commented May 19, 2025

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing 5f292ee to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 19, 2025
@bors bors merged commit 5f292ee into rust-lang:master May 19, 2025
7 checks passed
@rustbot rustbot added this to the 1.89.0 milestone May 19, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#140049 fix autodiff macro on generic functions 8e8874169aded917abf03e5725dc24914d0f464f (link)
#140874 make rustc_attr_parsing less dominant in the rustc crate … 9ff0d5aa0c981b348403d2c882388734ee144991 (link)
#141094 add regression test for #101650 6b09bc52e24790168499577812b0662288800278 (link)
#141110 [std] fix the presentation of split_off_mut and `split_of… 413c0d464a5b28761dc4202c5e346bd5e4259cb7 (link)

previous master: e42bbfe1f7

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

Copy link
Contributor

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 e42bbfe (parent) -> 5f292ee (this PR)

Test differences

Show 16 test diffs

Stage 1

  • [codegen] tests/codegen/autodiff/generic.rs: [missing] -> ignore (ignored when LLVM Enzyme is disabled) (J2)
  • [ui] tests/ui/async-await/format-await-send.rs: [missing] -> pass (J2)

Stage 2

  • [codegen] tests/codegen/autodiff/generic.rs: [missing] -> ignore (ignored when LLVM Enzyme is disabled) (J0)
  • [ui] tests/ui/async-await/format-await-send.rs: [missing] -> pass (J1)

Additionally, 12 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 5f292eea6d63abbd26f1e6e00a0b8cf21d828d7d --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-aarch64-linux: 7759.3s -> 5324.6s (-31.4%)
  2. dist-aarch64-msvc: 9988.1s -> 8669.2s (-13.2%)
  3. dist-x86_64-msvc-alt: 8453.0s -> 7693.7s (-9.0%)
  4. x86_64-apple-1: 7747.4s -> 7253.4s (-6.4%)
  5. aarch64-apple: 4158.2s -> 4391.9s (5.6%)
  6. x86_64-mingw-2: 7411.4s -> 7030.6s (-5.1%)
  7. aarch64-gnu-debug: 3914.5s -> 4109.8s (5.0%)
  8. dist-powerpc-linux: 5178.9s -> 5429.0s (4.8%)
  9. dist-x86_64-illumos: 5825.0s -> 5569.1s (-4.4%)
  10. dist-android: 2499.9s -> 2598.2s (3.9%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (5f292ee): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

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)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.2%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary 0.9%)

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
Regressions ❌
(secondary)
0.9% [0.4%, 2.4%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

Results (secondary 0.6%)

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
Regressions ❌
(secondary)
0.8% [0.6%, 1.1%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.4% [-0.4%, -0.4%] 1
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 774.961s -> 775.359s (0.05%)
Artifact size: 365.57 MiB -> 365.57 MiB (0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustdoc-json Area: Rustdoc JSON backend merged-by-bors This PR was explicitly merged by bors. 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants