Skip to content

[perf] Revert FastISel patch#154511

Merged
rust-bors[bot] merged 1 commit intorust-lang:mainfrom
nikic:revert-fastisel
Mar 30, 2026
Merged

[perf] Revert FastISel patch#154511
rust-bors[bot] merged 1 commit intorust-lang:mainfrom
nikic:revert-fastisel

Conversation

@nikic
Copy link
Copy Markdown
Contributor

@nikic nikic commented Mar 28, 2026

View all comments

This caused a significant compile-time regression for debug builds.

There is another change (llvm/llvm-project#186723) that mitigates that regression, but not fully. Revert it for now.

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 28, 2026
@nikic
Copy link
Copy Markdown
Contributor Author

nikic commented Mar 28, 2026

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Mar 28, 2026
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Mar 28, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 28, 2026

☀️ Try build successful (CI)
Build commit: af18a79 (af18a79249ebb7cdcf8e745d19085bf1b3c46242, parent: 7e28c7438a7b0c79a09724ba799d32ed461beb72)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (af18a79): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@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.3% [-3.2%, -0.2%] 27
Improvements ✅
(secondary)
-1.2% [-5.0%, -0.2%] 14
All ❌✅ (primary) -1.3% [-3.2%, -0.2%] 27

Max RSS (memory usage)

Results (primary -1.1%)

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

Cycles

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

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.5% [-3.4%, -2.2%] 4
Improvements ✅
(secondary)
-3.2% [-4.4%, -2.4%] 3
All ❌✅ (primary) -2.5% [-3.4%, -2.2%] 4

Binary size

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

Bootstrap: 484.417s -> 484.146s (-0.06%)
Artifact size: 394.97 MiB -> 396.98 MiB (0.51%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Mar 28, 2026
This change caused a significant compile-time regression for
debug builds.
@nikic nikic force-pushed the revert-fastisel branch from 7eebcdb to 1a32061 Compare March 28, 2026 20:45
@nikic nikic marked this pull request as ready for review March 28, 2026 20:47
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 28, 2026
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Mar 28, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Mar 28, 2026

r? @cuviper

rustbot has assigned @cuviper.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @cuviper

@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Mar 28, 2026

⚠️ Warning ⚠️

@nikic
Copy link
Copy Markdown
Contributor Author

nikic commented Mar 28, 2026

r? @dianqk

@dianqk
Copy link
Copy Markdown
Member

dianqk commented Mar 28, 2026

@bors r+

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 28, 2026

📌 Commit 1a32061 has been approved by dianqk

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 Mar 28, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Mar 29, 2026
[perf] Revert FastISel patch

This caused a significant compile-time regression for debug builds.

There is another change (llvm/llvm-project#186723) that mitigates that regression, but not fully. Revert it for now.
@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job armhf-gnu failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@rust-bors rust-bors bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 29, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 29, 2026

💔 Test for 1481366 failed: CI. Failed job:

@mati865
Copy link
Copy Markdown
Member

mati865 commented Mar 29, 2026

Spurious?

@bors retry

@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 Mar 29, 2026
@rust-bors

This comment has been minimized.

@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 Mar 30, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 30, 2026

☀️ Test successful - CI
Approved by: dianqk
Duration: 3h 20m 48s
Pushing 116458d to main...

@rust-bors rust-bors bot merged commit 116458d into rust-lang:main Mar 30, 2026
12 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 30, 2026
@github-actions
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 80ad557 (parent) -> 116458d (this PR)

Test differences

Show 3 test diffs

Stage 2

  • [run-make] tests/run-make/compressed-debuginfo-zstd: pass -> ignore (ignored if LLVM wasn't build with zstd for ELF section compression or LLVM is not the default codegen backend) (J0)

Additionally, 2 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 116458d0a5ae01cd517cabd2d1aee7f5457018ab --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. x86_64-rust-for-linux: 53m 54s -> 1h 8m (+28.0%)
  2. pr-check-1: 35m 51s -> 45m 32s (+27.0%)
  3. test-various: 2h 2m -> 2h 32m (+23.7%)
  4. x86_64-gnu-tools: 1h 6m -> 1h 20m (+19.9%)
  5. x86_64-gnu-miri: 1h 32m -> 1h 51m (+19.7%)
  6. armhf-gnu: 1h 33m -> 1h 52m (+19.7%)
  7. optional-x86_64-gnu-parallel-frontend: 2h 43m -> 3h 14m (+18.9%)
  8. x86_64-gnu-distcheck: 2h 9m -> 2h 31m (+16.9%)
  9. pr-check-2: 46m 45s -> 54m 2s (+15.6%)
  10. x86_64-gnu: 2h 26m -> 2h 48m (+15.2%)
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 (116458d): 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.3% [-3.2%, -0.1%] 26
Improvements ✅
(secondary)
-1.2% [-5.1%, -0.2%] 13
All ❌✅ (primary) -1.3% [-3.2%, -0.1%] 26

Max RSS (memory usage)

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

Cycles

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

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)
4.9% [4.9%, 4.9%] 1
Improvements ✅
(primary)
-2.9% [-3.4%, -2.3%] 2
Improvements ✅
(secondary)
-4.2% [-4.4%, -4.1%] 2
All ❌✅ (primary) -2.9% [-3.4%, -2.3%] 2

Binary size

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

Bootstrap: 490.149s -> 496.876s (1.37%)
Artifact size: 394.89 MiB -> 394.82 MiB (-0.02%)

@nikic nikic mentioned this pull request Mar 30, 2026
@cuviper
Copy link
Copy Markdown
Member

cuviper commented Mar 30, 2026

Nominating as a perf fix to go along with the accepted #154344.

@rustbot label beta-nominated

@rustbot rustbot added the beta-nominated Nominated for backporting to the compiler in the beta channel. label Mar 30, 2026
@cuviper cuviper added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. beta-nominated Nominated for backporting to the compiler in the beta channel. and removed beta-nominated Nominated for backporting to the compiler in the beta channel. labels Mar 30, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 2, 2026

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 Apr 2, 2026
@cuviper cuviper mentioned this pull request Apr 2, 2026
@cuviper cuviper removed the beta-nominated Nominated for backporting to the compiler in the beta channel. label Apr 2, 2026
@cuviper cuviper modified the milestones: 1.96.0, 1.95.0 Apr 2, 2026
rust-bors bot pushed a commit that referenced this pull request Apr 3, 2026
[beta] backports

- stdarch subtree update #153336 (partial)
  - aarch64: fix UB in non-power-of-two reads and writes rust-lang/stdarch#2042
- add neon load/store assembly test #154094
- don't drop arguments' temporaries in `dbg!` #154074
- Init self_decl with a correct vis #154313
- Update LLVM to 22.1.2 #154344
- [perf] Revert FastISel patch #154511
- core: Destabilize beta-stable `RangeInclusiveIter::remainder` #154459
- Revert "Fix: On wasm targets, call `panic_in_cleanup` if panic occurs in cleanup" #154700
- core: Update the feature gate on `TryFrom<integer> for bool` #154691

r? cuviper
rust-bors bot pushed a commit that referenced this pull request Apr 3, 2026
[beta] backports

- stdarch subtree update #153336 (partial)
  - aarch64: fix UB in non-power-of-two reads and writes rust-lang/stdarch#2042
- add neon load/store assembly test #154094
- don't drop arguments' temporaries in `dbg!` #154074
- Init self_decl with a correct vis #154313
- Update LLVM to 22.1.2 #154344
- [perf] Revert FastISel patch #154511
- core: Destabilize beta-stable `RangeInclusiveIter::remainder` #154459
- Revert "Fix: On wasm targets, call `panic_in_cleanup` if panic occurs in cleanup" #154700
- core: Update the feature gate on `TryFrom<integer> for bool` #154691

r? cuviper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. beta-accepted Accepted for backporting to the compiler in the beta channel. 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.

7 participants