rust icon indicating copy to clipboard operation
rust copied to clipboard

mir-opt: Do not create storage marks in EarlyOtherwiseBranch

Open dianqk opened this issue 6 months ago • 11 comments

Fixes #141212.

The first commit add StorageDead by creating new indirect BB that makes CFG more complicated, but I think it's better to just not create storage marks.

r? mir-opt

dianqk avatar May 24 '25 07:05 dianqk

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

rustbot avatar May 24 '25 07:05 rustbot

@bors try @rust-timer queue

oli-obk avatar May 26 '25 10:05 oli-obk

Awaiting bors try build completion.

@rustbot label: +S-waiting-on-perf

rust-timer avatar May 26 '25 10:05 rust-timer

:hourglass: Trying commit 8c7faa6ed154893fdbfcb128055b593102b4c6db with merge 26a3bb52c9ec74248edb6096a8ed75f76e4db99d...

bors avatar May 26 '25 10:05 bors

:sunny: Try build successful - checks-actions Build commit: 26a3bb52c9ec74248edb6096a8ed75f76e4db99d (26a3bb52c9ec74248edb6096a8ed75f76e4db99d)

bors avatar May 26 '25 11:05 bors

Queued 26a3bb52c9ec74248edb6096a8ed75f76e4db99d with parent 95a2212587f1b8500af1ac630322b0cb2e030c61, future comparison URL. There are currently 0 preceding artifacts in the queue. It will probably take at least ~1.4 hours until the benchmark run finishes.

rust-timer avatar May 26 '25 11:05 rust-timer

Finished benchmarking commit (26a3bb52c9ec74248edb6096a8ed75f76e4db99d): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

@bors rollup=never @rustbot label: -S-waiting-on-perf -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)
-2.9% [-2.9%, -2.9%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.9% [-2.9%, -2.9%] 1

Max RSS (memory usage)

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

Cycles

Results (primary -2.8%)

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

Binary size

Results (primary -1.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)
- - 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

Bootstrap: 776.359s -> 778.13s (0.23%) Artifact size: 366.28 MiB -> 366.27 MiB (-0.00%)

rust-timer avatar May 26 '25 13:05 rust-timer

r? mir-opt

dianqk avatar Jun 07 '25 08:06 dianqk

@bors r+

oli-obk avatar Jun 10 '25 11:06 oli-obk

:pushpin: Commit 8c7faa6ed154893fdbfcb128055b593102b4c6db has been approved by oli-obk

It is now in the queue for this repository.

bors avatar Jun 10 '25 11:06 bors

:hourglass: Testing commit 8c7faa6ed154893fdbfcb128055b593102b4c6db with merge c6a955468b025dbe3d1de3e8f3e30496d1fb7f40...

bors avatar Jun 10 '25 14:06 bors

:sunny: Test successful - checks-actions Approved by: oli-obk Pushing c6a955468b025dbe3d1de3e8f3e30496d1fb7f40 to master...

bors avatar Jun 10 '25 17:06 bors

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 100199c9aa50b0c47b37c9c86335d68b2a77b535 (parent) -> c6a955468b025dbe3d1de3e8f3e30496d1fb7f40 (this PR)

Test differences

No test diffs found

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard c6a955468b025dbe3d1de3e8f3e30496d1fb7f40 --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-apple: 4724.6s -> 6292.1s (33.2%)
  2. x86_64-apple-2: 5136.4s -> 4095.9s (-20.3%)
  3. dist-apple-various: 8142.3s -> 6862.4s (-15.7%)
  4. dist-x86_64-mingw: 7298.7s -> 8267.9s (13.3%)
  5. mingw-check-1: 1928.3s -> 1672.4s (-13.3%)
  6. x86_64-gnu-llvm-19-1: 3659.1s -> 3198.6s (-12.6%)
  7. i686-gnu-1: 8237.9s -> 7357.2s (-10.7%)
  8. i686-gnu-nopt-1: 7976.2s -> 7146.8s (-10.4%)
  9. i686-gnu-2: 6039.2s -> 5443.5s (-9.9%)
  10. aarch64-apple: 4059.4s -> 4459.1s (9.8%)
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.

github-actions[bot] avatar Jun 10 '25 17:06 github-actions[bot]

Finished benchmarking commit (c6a955468b025dbe3d1de3e8f3e30496d1fb7f40): comparison URL.

Overall result: ❌ regressions - 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.4% [0.4%, 0.4%] 1
Regressions ❌
(secondary)
0.5% [0.5%, 0.5%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.4%, 0.4%] 1

Max RSS (memory usage)

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

Cycles

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

Binary size

Results (primary 0.4%, secondary -0.0%)

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

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

Bootstrap: 755.155s -> 754.321s (-0.11%) Artifact size: 372.17 MiB -> 372.15 MiB (-0.01%)

rust-timer avatar Jun 10 '25 19:06 rust-timer