Skip to content

Restore the fast path of QueryTypeOp - #165672

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
adwinwhite:typeop-perf
Nov 9, 2026
Merged

rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
adwinwhite:typeop-perf

Conversation

@adwinwhite

@adwinwhite adwinwhite commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Fix the perf regression in #165335 by moving the fast path back to its previous place.

r? ghost

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 9, 2026
@adwinwhite

Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Nov 9, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Nov 9, 2026
@rust-bors

rust-bors Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 970c744 (970c744f1c28668c10069e0a887fce999438f689)
Base parent: ba58c66 (ba58c66e24c2770ae5c820f67549eadd346e9d9e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (970c744): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf.

@bors rollup=never rustc-perf
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.0% [-3.4%, -0.2%] 120
Improvements ✅
(secondary)
-1.3% [-4.0%, -0.2%] 132
All ❌✅ (primary) -1.0% [-3.4%, -0.2%] 120

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (primary -3.0%, secondary -2.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
3.3% [2.4%, 4.8%] 5
Improvements ✅
(primary)
-3.0% [-4.2%, -2.1%] 12
Improvements ✅
(secondary)
-3.8% [-5.4%, -2.6%] 23
All ❌✅ (primary) -3.0% [-4.2%, -2.1%] 12

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 484.686s -> 489.293s (0.95%)
Artifact size: 406.15 MiB -> 406.24 MiB (0.02%)

@adwinwhite adwinwhite changed the title move fast path back Restore the fast path of QueryTypeOp Nov 9, 2026
@jdonszelmann

Copy link
Copy Markdown
Contributor

That seems to do it. Sorry for the regression! r? me

@adwinwhite
adwinwhite marked this pull request as ready for review November 9, 2026 09:06
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Nov 9, 2026
@JonathanBrouwer JonathanBrouwer added the beta-nominated Nominated for backporting to the compiler in the beta channel. label Nov 9, 2026
@jdonszelmann

Copy link
Copy Markdown
Contributor

@bors r+ rollup=iffy perf

@rust-bors

rust-bors Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2ea7e03 has been approved by jdonszelmann

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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 Nov 9, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors rollup=never

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Nov 9, 2026
@rust-bors

This comment has been minimized.

@rustbot

rustbot commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

beta backport approved as per compiler team on Zulip. A backport PR will be authored by the release team at the end of the current development cycle. Backport labels are handled by them.

@rustbot rustbot added the beta-accepted Accepted for backporting to the compiler in the beta channel. label Nov 9, 2026
@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Nov 9, 2026
@rust-bors

rust-bors Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jdonszelmann
Duration: 3h 5m 10s
Pushing fefe61b to main...

@rust-bors
rust-bors Bot merged commit fefe61b into rust-lang:main Nov 9, 2026
16 checks passed
@rustbot rustbot added this to the 1.102.0 milestone Nov 9, 2026
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
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 495625e (parent) -> fefe61b (this PR)

Test differences

Show 3 test diffs

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

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard fefe61bee03e8d6ff1f3f16bcedc8cb05e3f7bf3 --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. test-x86_64-mingw-2: 1h 39m -> 2h 48m (+69.6%)
  2. test-i686-msvc: 1h 51m -> 3h 1m (+62.1%)
  3. dist-aarch64-apple: 1h 34m -> 2h 31m (+59.7%)
  4. dist-x86_64-freebsd: 58m 19s -> 1h 33m (+59.6%)
  5. test-x86_64-gnu-llvm-22-2: 1h 16m -> 1h 52m (+47.6%)
  6. test-i686-gnu-nopt-1: 1h 39m -> 2h 25m (+45.8%)
  7. test-i686-gnu-nopt-2: 2h 31m -> 1h 23m (-44.9%)
  8. dist-powerpc-linux: 1h 7m -> 1h 36m (+42.8%)
  9. test-x86_64-gnu-llvm-22: 41m 3s -> 58m 4s (+41.5%)
  10. test-x86_64-gnu-stdlib-semver-check: 17m 12s -> 10m 13s (-40.6%)
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
Copy Markdown
Collaborator

Finished benchmarking commit (fefe61b): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.1% [-3.4%, -0.2%] 115
Improvements ✅
(secondary)
-1.4% [-3.9%, -0.2%] 128
All ❌✅ (primary) -1.1% [-3.4%, -0.2%] 115

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (primary -2.9%, secondary -3.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.9% [-4.1%, -1.6%] 9
Improvements ✅
(secondary)
-3.5% [-4.5%, -2.1%] 22
All ❌✅ (primary) -2.9% [-4.1%, -1.6%] 9

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 482.583s -> 483.426s (0.17%)
Artifact size: 406.20 MiB -> 406.20 MiB (-0.00%)

@cuviper

cuviper commented Nov 9, 2026

Copy link
Copy Markdown
Member

It didn't actually reach beta: #165335 (comment)

@rustbot label -beta-nominated -beta-accepted

@rustbot rustbot removed beta-accepted Accepted for backporting to the compiler in the beta channel. beta-nominated Nominated for backporting to the compiler in the beta channel. labels Nov 9, 2026
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. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants