rust icon indicating copy to clipboard operation
rust copied to clipboard

[early rough draft] GCI: Don't evaluate free const items with impossible predicates

Open fmease opened this issue 5 months ago • 6 comments
trafficstars

fmease avatar Jun 10 '25 12:06 fmease

@bors2 try @rust-timer queue

fmease avatar Jun 10 '25 12:06 fmease

Awaiting bors try build completion.

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

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

:hourglass: Trying commit 74ec3eab50aabb67fe2fd90b2dcee9855fd26b1b with merge 4151b9aaad261468f4260336981f34de2f05df15…

To cancel the try build, run the command @bors2 try cancel.

rust-bors[bot] avatar Jun 10 '25 12:06 rust-bors[bot]

The job mingw-check-tidy failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
All checks passed!
checking python file formatting
28 files already formatted
checking C++ file formatting
some tidy checks failed
Command has failed. Rerun with -v to see more details.
Build completed unsuccessfully in 0:01:15
  local time: Tue Jun 10 12:32:22 UTC 2025
  network time: Tue, 10 Jun 2025 12:32:23 GMT
##[error]Process completed with exit code 1.
Post job cleanup.

rust-log-analyzer avatar Jun 10 '25 12:06 rust-log-analyzer

:sunny: Try build successful (CI) Build commit: 4151b9aaad261468f4260336981f34de2f05df15 (4151b9aaad261468f4260336981f34de2f05df15)

rust-bors[bot] avatar Jun 10 '25 14:06 rust-bors[bot]

Queued 4151b9aaad261468f4260336981f34de2f05df15 with parent 40daf23eeb711dadf140b2536e67e3ff4c999196, future comparison URL. There are currently 4 preceding artifacts in the queue. It will probably take at least ~5.9 hours until the benchmark run finishes.

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

Finished benchmarking commit (4151b9aaad261468f4260336981f34de2f05df15): comparison URL.

Overall result: no relevant changes - 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

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

Max RSS (memory usage)

Results (primary -5.1%, secondary -2.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)
3.5% [3.5%, 3.5%] 1
Improvements ✅
(primary)
-5.1% [-9.4%, -3.0%] 6
Improvements ✅
(secondary)
-2.3% [-4.3%, -1.1%] 21
All ❌✅ (primary) -5.1% [-9.4%, -3.0%] 6

Cycles

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

Binary size

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

Bootstrap: 753.145s -> 753.291s (0.02%) Artifact size: 372.18 MiB -> 372.22 MiB (0.01%)

rust-timer avatar Jun 11 '25 04:06 rust-timer

Mono collector now uses instantiate_and_check_impossible_predicates which filters out predicates with early-bound regions contrary to impossible_predicates, so might have a mismatch in behavior between mono collection, reachability analysis and typeck which seems problematic but I haven't thought about it any further (does IACIP assume erased lifetimes?).

Despite that, imma recheck perf cuz I removed the predicates.is_empty() "micro opt". @bors2 try @rust-timer queue

fmease avatar Jun 24 '25 13:06 fmease

Awaiting bors try build completion.

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

rust-timer avatar Jun 24 '25 13:06 rust-timer

:hourglass: Trying commit 380088d922ec3713f9e685d246e2cc0ac9a616b0 with merge 10bc814a261100b40f7fa5feaa6a079876607337…

To cancel the try build, run the command @bors2 try cancel.

rust-bors[bot] avatar Jun 24 '25 13:06 rust-bors[bot]

:sunny: Try build successful (CI) Build commit: 10bc814a261100b40f7fa5feaa6a079876607337 (10bc814a261100b40f7fa5feaa6a079876607337, parent: e4b9d0141fdd210fcceebd2b67f7be113401c461)

rust-bors[bot] avatar Jun 24 '25 15:06 rust-bors[bot]

Queued 10bc814a261100b40f7fa5feaa6a079876607337 with parent e4b9d0141fdd210fcceebd2b67f7be113401c461, future comparison URL. There is currently 1 preceding artifact in the queue. It will probably take at least ~1.9 hours until the benchmark run finishes.

rust-timer avatar Jun 24 '25 15:06 rust-timer

Finished benchmarking commit (10bc814a261100b40f7fa5feaa6a079876607337): comparison URL.

Overall result: ❌ regressions - please read the text below

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.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@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)
1.1% [0.3%, 1.6%] 12
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.1% [0.3%, 1.6%] 12

Max RSS (memory usage)

Results (secondary -2.4%)

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)
- - 0
Improvements ✅
(secondary)
-2.4% [-4.1%, -1.4%] 11
All ❌✅ (primary) - - 0

Cycles

Results (secondary -4.4%)

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

Binary size

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

Bootstrap: 690.402s -> 688.347s (-0.30%) Artifact size: 372.03 MiB -> 371.86 MiB (-0.04%)

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

@bors2 try parent=last @rust-timer queue

fmease avatar Jun 25 '25 20:06 fmease

Awaiting bors try build completion.

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

rust-timer avatar Jun 25 '25 20:06 rust-timer

:hourglass: Trying commit 0e9126c9235e334793be63d50c961ae20c7702ed with merge cea506b6d4e9d59bbdaea6b74051c551246bff6d…

To cancel the try build, run the command @bors2 try cancel.

rust-bors[bot] avatar Jun 25 '25 20:06 rust-bors[bot]

:sunny: Try build successful (CI) Build commit: cea506b6d4e9d59bbdaea6b74051c551246bff6d (cea506b6d4e9d59bbdaea6b74051c551246bff6d, parent: e4b9d0141fdd210fcceebd2b67f7be113401c461)

rust-bors[bot] avatar Jun 25 '25 22:06 rust-bors[bot]

Queued cea506b6d4e9d59bbdaea6b74051c551246bff6d with parent e4b9d0141fdd210fcceebd2b67f7be113401c461, future comparison URL. There is currently 1 preceding artifact in the queue. It will probably take at least ~2.5 hours until the benchmark run finishes.

rust-timer avatar Jun 25 '25 22:06 rust-timer

Finished benchmarking commit (cea506b6d4e9d59bbdaea6b74051c551246bff6d): comparison URL.

Overall result: ❌ regressions - please read the text below

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.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@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.7% [0.3%, 1.0%] 8
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.7% [0.3%, 1.0%] 8

Max RSS (memory usage)

Results (primary 2.3%)

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

mean range count
Regressions ❌
(primary)
2.3% [1.7%, 2.9%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.3% [1.7%, 2.9%] 2

Cycles

Results (secondary -3.6%)

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)
- - 0
Improvements ✅
(secondary)
-3.6% [-4.1%, -3.0%] 2
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 690.402s -> 687.107s (-0.48%) Artifact size: 372.03 MiB -> 371.92 MiB (-0.03%)

rust-timer avatar Jun 26 '25 01:06 rust-timer

:umbrella: The latest upstream changes (presumably #142893) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar Jun 27 '25 16:06 bors

PR #142893 (which conflicted with this PR / made it unmergeable) heavily affected perf. Thus I'm now retrying if this PR is still sensitive.

@bors2 try @rust-timer queue

fmease avatar Jul 02 '25 16:07 fmease

Awaiting bors try build completion.

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

rust-timer avatar Jul 02 '25 16:07 rust-timer

:hourglass: Trying commit 8d3bc941dc8a6c3716401e20ae06b2862ea427cd with merge 41283df7b958f7c986dcf1d3920b6896ab276564…

To cancel the try build, run the command @bors2 try cancel.

rust-bors[bot] avatar Jul 02 '25 16:07 rust-bors[bot]

:sunny: Try build successful (CI) Build commit: 41283df7b958f7c986dcf1d3920b6896ab276564 (41283df7b958f7c986dcf1d3920b6896ab276564, parent: b94bd12401d26ccf1c3b04ceb4e950b0ff7c8d29)

rust-bors[bot] avatar Jul 02 '25 18:07 rust-bors[bot]

Queued 41283df7b958f7c986dcf1d3920b6896ab276564 with parent b94bd12401d26ccf1c3b04ceb4e950b0ff7c8d29, future comparison URL. There are currently 11 preceding artifacts in the queue. It will probably take at least ~12.0 hours until the benchmark run finishes.

rust-timer avatar Jul 02 '25 18:07 rust-timer

Finished benchmarking commit (41283df7b958f7c986dcf1d3920b6896ab276564): comparison URL.

Overall result: no relevant changes - 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

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

Max RSS (memory usage)

Results (primary 0.4%)

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

mean range count
Regressions ❌
(primary)
2.0% [1.5%, 2.4%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.8% [-2.8%, -2.8%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [-2.8%, 2.4%] 3

Cycles

Results (primary -1.5%, secondary 8.2%)

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

mean range count
Regressions ❌
(primary)
2.3% [2.3%, 2.3%] 1
Regressions ❌
(secondary)
8.2% [0.7%, 13.3%] 10
Improvements ✅
(primary)
-2.7% [-5.1%, -1.0%] 3
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -1.5% [-5.1%, 2.3%] 4

Binary size

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

Bootstrap: 462.452s -> 460.902s (-0.34%) Artifact size: 372.20 MiB -> 372.15 MiB (-0.01%)

rust-timer avatar Jul 03 '25 08:07 rust-timer

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri, @RalfJung, @oli-obk, @lcnr

rustbot avatar Jul 03 '25 16:07 rustbot

@rustbot review

fmease avatar Jul 03 '25 16:07 fmease

:umbrella: The latest upstream changes (presumably #144377) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar Jul 28 '25 20:07 bors

semver concerns etc etc (voiced by Boxy) @rustbot author

fmease avatar Aug 01 '25 08:08 fmease