close
Skip to content

[WIP] MIR move elimination pass#156046

Draft
Amanieu wants to merge 7 commits into
rust-lang:mainfrom
Amanieu:move-elimination
Draft

[WIP] MIR move elimination pass#156046
Amanieu wants to merge 7 commits into
rust-lang:mainfrom
Amanieu:move-elimination

Conversation

@Amanieu
Copy link
Copy Markdown
Member

@Amanieu Amanieu commented May 1, 2026

View all comments

This is very much a work in progress, and will sometimes generate broken/unsound MIR.

@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 May 1, 2026
@Amanieu
Copy link
Copy Markdown
Member Author

Amanieu commented May 1, 2026

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 1, 2026
rust-bors Bot pushed a commit that referenced this pull request May 1, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 1, 2026

💔 Test for 884fdb2 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@Amanieu Amanieu force-pushed the move-elimination branch from 8a0479a to d431a34 Compare May 1, 2026 17:02
@Amanieu
Copy link
Copy Markdown
Member Author

Amanieu commented May 1, 2026

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 1, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 1, 2026

💔 Test for b42852b failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@Amanieu Amanieu force-pushed the move-elimination branch from d431a34 to a226132 Compare May 3, 2026 13:33
@rust-log-analyzer

This comment has been minimized.

@Amanieu
Copy link
Copy Markdown
Member Author

Amanieu commented May 3, 2026

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 3, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 3, 2026

💔 Test for 8165e10 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@Amanieu Amanieu force-pushed the move-elimination branch from a226132 to 54b60b7 Compare May 3, 2026 22:38
@Amanieu
Copy link
Copy Markdown
Member Author

Amanieu commented May 3, 2026

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 3, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 4, 2026

☀️ Try build successful (CI)
Build commit: 6c8a539 (6c8a539b5dff4f4f443a5c0c4ed57749516e3395, parent: ad3a598ca4bc7c68bcbbce3e0d3be9a7618df190)

@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 20, 2026
rust-bors Bot pushed a commit that referenced this pull request May 20, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 20, 2026

💔 Test for f4741d9 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@Amanieu Amanieu force-pushed the move-elimination branch from 566bc67 to 62e9181 Compare May 20, 2026 19:01
@Amanieu
Copy link
Copy Markdown
Member Author

Amanieu commented May 20, 2026

@bors try

rust-bors Bot pushed a commit that referenced this pull request May 20, 2026
@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 20, 2026

☀️ Try build successful (CI)
Build commit: 4eca0f3 (4eca0f31a0f5e100354734a70c8023dd16a08796, parent: 9128490ab32b5ab37a4bb9f6667a9ce5d32924c0)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (4eca0f3): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

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.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@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)
2.5% [0.2%, 10.9%] 24
Regressions ❌
(secondary)
14.9% [0.0%, 762.2%] 59
Improvements ✅
(primary)
-1.0% [-6.0%, -0.2%] 214
Improvements ✅
(secondary)
-1.2% [-13.3%, -0.1%] 183
All ❌✅ (primary) -0.7% [-6.0%, 10.9%] 238

Max RSS (memory usage)

Results (primary 0.8%, 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)
2.5% [2.2%, 2.9%] 5
Regressions ❌
(secondary)
0.4% [0.4%, 0.4%] 1
Improvements ✅
(primary)
-3.5% [-6.5%, -0.4%] 2
Improvements ✅
(secondary)
-2.8% [-3.7%, -1.8%] 12
All ❌✅ (primary) 0.8% [-6.5%, 2.9%] 7

Cycles

Results (primary -2.5%, secondary 0.1%)

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

mean range count
Regressions ❌
(primary)
3.9% [1.7%, 7.0%] 5
Regressions ❌
(secondary)
64.2% [5.5%, 282.4%] 5
Improvements ✅
(primary)
-3.0% [-5.6%, -1.7%] 62
Improvements ✅
(secondary)
-5.0% [-20.4%, -1.5%] 63
All ❌✅ (primary) -2.5% [-5.6%, 7.0%] 67

Binary size

Results (primary 0.4%, secondary 1.4%)

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

mean range count
Regressions ❌
(primary)
1.5% [0.0%, 6.6%] 82
Regressions ❌
(secondary)
2.2% [0.0%, 6.6%] 94
Improvements ✅
(primary)
-1.0% [-3.5%, -0.1%] 60
Improvements ✅
(secondary)
-1.1% [-5.6%, -0.1%] 28
All ❌✅ (primary) 0.4% [-3.5%, 6.6%] 142

Bootstrap: 517.203s -> 494.695s (-4.35%)
Artifact size: 400.60 MiB -> 397.22 MiB (-0.84%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 20, 2026
@Amanieu
Copy link
Copy Markdown
Member Author

Amanieu commented May 30, 2026

@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 May 30, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 30, 2026
@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-gcc-core-tests failed! Check out the build log: (web) (plain enhanced) (plain)

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

For more information how to resolve CI failures of this job, visit this link.

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 30, 2026

☀️ Try build successful (CI)
Build commit: 9d211b2 (9d211b2625f34105f9580690ab55479dbcb1b9d0, parent: 6368fd52cb9f230dfb156097625993e7a8891800)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (9d211b2): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

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.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@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)
2.0% [0.2%, 13.8%] 23
Regressions ❌
(secondary)
15.4% [0.0%, 761.3%] 56
Improvements ✅
(primary)
-1.0% [-6.0%, -0.2%] 218
Improvements ✅
(secondary)
-1.2% [-12.7%, -0.0%] 185
All ❌✅ (primary) -0.7% [-6.0%, 13.8%] 241

Max RSS (memory usage)

Results (primary 0.3%, secondary -2.0%)

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

mean range count
Regressions ❌
(primary)
3.0% [1.6%, 4.1%] 4
Regressions ❌
(secondary)
1.0% [1.0%, 1.0%] 1
Improvements ✅
(primary)
-1.3% [-1.9%, -1.0%] 7
Improvements ✅
(secondary)
-2.4% [-3.2%, -2.1%] 9
All ❌✅ (primary) 0.3% [-1.9%, 4.1%] 11

Cycles

Results (primary -2.7%, secondary 0.3%)

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

mean range count
Regressions ❌
(primary)
5.3% [1.8%, 9.6%] 4
Regressions ❌
(secondary)
32.4% [2.1%, 284.8%] 11
Improvements ✅
(primary)
-3.3% [-6.4%, -1.8%] 56
Improvements ✅
(secondary)
-5.1% [-20.1%, -1.1%] 65
All ❌✅ (primary) -2.7% [-6.4%, 9.6%] 60

Binary size

Results (primary 0.5%, secondary 1.6%)

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

mean range count
Regressions ❌
(primary)
1.7% [0.1%, 6.7%] 74
Regressions ❌
(secondary)
2.3% [0.0%, 6.7%] 90
Improvements ✅
(primary)
-1.0% [-2.7%, -0.2%] 55
Improvements ✅
(secondary)
-1.2% [-5.6%, -0.2%] 25
All ❌✅ (primary) 0.5% [-2.7%, 6.7%] 129

Bootstrap: 511.654s -> 500.763s (-2.13%)
Artifact size: 400.70 MiB -> 397.37 MiB (-0.83%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

perf-regression Performance regression. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants