Skip to content

Conversation

cjgillot
Copy link
Contributor

The current SimplifyCfg pass unconditionally invalidates CFG caches. This is unfortunate if there are no modifications that require this invalidation.

@rustbot
Copy link
Collaborator

rustbot commented Jun 15, 2025

r? @SparrowLii

rustbot has assigned @SparrowLii.
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

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 15, 2025
@rustbot
Copy link
Collaborator

rustbot commented Jun 15, 2025

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

@cjgillot
Copy link
Contributor Author

@bors2 try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Jun 15, 2025

⌛ Trying commit a16b49b with merge cc03d9f

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

rust-bors bot added a commit that referenced this pull request Jun 15, 2025
Manually invalidate caches in SimplifyCfg.

The current `SimplifyCfg` pass unconditionally invalidates CFG caches. This is unfortunate if there are no modifications that require this invalidation.

<!-- homu-ignore:start -->
<!--
If this PR is related to an unstable feature or an otherwise tracked effort,
please link to the relevant tracking issue here. If you don't know of a related
tracking issue or there are none, feel free to ignore this.

This PR will get automatically assigned to a reviewer. In case you would like
a specific user to review your work, you can assign it to them by using

    r? <reviewer name>
-->
<!-- homu-ignore:end -->
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 15, 2025
@rust-bors
Copy link

rust-bors bot commented Jun 15, 2025

☀️ Try build successful (CI)
Build commit: cc03d9f (cc03d9fc4d0bea33e36b94f73ea9bce0685b0abb, parent: 75e7cf5f85aad82331a38deff24845b63eaf30f3)

@rust-timer

This comment has been minimized.

@@ -121,19 +123,23 @@ impl<'a, 'tcx> CfgSimplifier<'a, 'tcx> {
// Preserve `SwitchInt` reads on built and analysis MIR, or if `-Zmir-preserve-ub`.
let preserve_switch_reads = matches!(body.phase, MirPhase::Built | MirPhase::Analysis(_))
|| tcx.sess.opts.unstable_opts.mir_preserve_ub;
let basic_blocks = body.basic_blocks_mut();
let basic_blocks = body.basic_blocks.as_mut_preserves_cfg();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could use a comment explaining why this is okay

@@ -74,7 +74,9 @@ impl SimplifyCfg {
}

pub(super) fn simplify_cfg<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
CfgSimplifier::new(tcx, body).simplify();
if CfgSimplifier::new(tcx, body).simplify() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coudl use a comment (even if it's reundant, b/c it's important).

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (cc03d9f): 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)
- - 0
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.2%] 1
All ❌✅ (primary) - - 0

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

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: 756.494s -> 755.634s (-0.11%)
Artifact size: 372.15 MiB -> 372.16 MiB (0.00%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 15, 2025
@SparrowLii
Copy link
Member

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Jun 17, 2025

📌 Commit a2d9687 has been approved by SparrowLii

It is now in the queue for this repository.

@bors bors 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 Jun 17, 2025
rust-bors bot added a commit that referenced this pull request Jun 17, 2025
Rollup of 13 pull requests

Successful merges:

 - #138538 (Make performance description of String::{insert,insert_str,remove} more precise)
 - #141946 (std: refactor explanation of `NonNull`)
 - #142216 (Miscellaneous RefCell cleanups)
 - #142542 (Manually invalidate caches in SimplifyCfg.)
 - #142563 (Refine run-make test ignores due to unpredictable `i686-pc-windows-gnu` unwind mechanism)
 - #142570 (Reject union default field values)
 - #142584 (Handle same-crate macro for borrowck semicolon suggestion)
 - #142585 (Update books)
 - #142586 (Fold unnecessary `visit_struct_field_def` in AstValidator)
 - #142587 (Make sure to propagate result from `visit_expr_fields`)
 - #142595 (Revert overeager warning for misuse of `--print native-static-libs`)
 - #142598 (Set elf e_flags on ppc64 targets according to abi)
 - #142601 (Add a comment to `FORMAT_VERSION`.)

r? `@ghost`
`@rustbot` modify labels: rollup
<!-- homu-ignore:start -->
[Create a similar rollup](https://bors.rust-lang.org/queue/rust?prs=138538,141946,142216,142542,142563,142570,142584,142585,142586,142587,142595,142598,142601)
<!-- homu-ignore:end -->
try-job: dist-apple-various
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request Jun 17, 2025
…r=SparrowLii

Manually invalidate caches in SimplifyCfg.

The current `SimplifyCfg` pass unconditionally invalidates CFG caches. This is unfortunate if there are no modifications that require this invalidation.
bors added a commit that referenced this pull request Jun 17, 2025
Rollup of 10 pull requests

Successful merges:

 - #138538 (Make performance description of String::{insert,insert_str,remove} more precise)
 - #141946 (std: refactor explanation of `NonNull`)
 - #142216 (Miscellaneous RefCell cleanups)
 - #142371 (avoid `&mut P<T>` in `visit_expr` etc methods)
 - #142377 (Try unremapping compiler sources)
 - #142517 (Windows: Use anonymous pipes in Command)
 - #142542 (Manually invalidate caches in SimplifyCfg.)
 - #142563 (Refine run-make test ignores due to unpredictable `i686-pc-windows-gnu` unwind mechanism)
 - #142570 (Reject union default field values)
 - #142584 (Handle same-crate macro for borrowck semicolon suggestion)

r? `@ghost`
`@rustbot` modify labels: rollup
rust-bors bot added a commit that referenced this pull request Jun 17, 2025
Rollup of 10 pull requests

Successful merges:

 - #138538 (Make performance description of String::{insert,insert_str,remove} more precise)
 - #141946 (std: refactor explanation of `NonNull`)
 - #142216 (Miscellaneous RefCell cleanups)
 - #142371 (avoid `&mut P<T>` in `visit_expr` etc methods)
 - #142377 (Try unremapping compiler sources)
 - #142517 (Windows: Use anonymous pipes in Command)
 - #142542 (Manually invalidate caches in SimplifyCfg.)
 - #142563 (Refine run-make test ignores due to unpredictable `i686-pc-windows-gnu` unwind mechanism)
 - #142570 (Reject union default field values)
 - #142584 (Handle same-crate macro for borrowck semicolon suggestion)

r? `@ghost`
`@rustbot` modify labels: rollup
<!-- homu-ignore:start -->
[Create a similar rollup](https://bors.rust-lang.org/queue/rust?prs=138538,141946,142216,142371,142377,142517,142542,142563,142570,142584)
<!-- homu-ignore:end -->
try-job: dist-aarch64-apple
bors added a commit that referenced this pull request Jun 17, 2025
Rollup of 13 pull requests

Successful merges:

 - #138538 (Make performance description of String::{insert,insert_str,remove} more precise)
 - #141946 (std: refactor explanation of `NonNull`)
 - #142216 (Miscellaneous RefCell cleanups)
 - #142542 (Manually invalidate caches in SimplifyCfg.)
 - #142563 (Refine run-make test ignores due to unpredictable `i686-pc-windows-gnu` unwind mechanism)
 - #142570 (Reject union default field values)
 - #142584 (Handle same-crate macro for borrowck semicolon suggestion)
 - #142585 (Update books)
 - #142586 (Fold unnecessary `visit_struct_field_def` in AstValidator)
 - #142587 (Make sure to propagate result from `visit_expr_fields`)
 - #142595 (Revert overeager warning for misuse of `--print native-static-libs`)
 - #142598 (Set elf e_flags on ppc64 targets according to abi)
 - #142601 (Add a comment to `FORMAT_VERSION`.)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 725d829 into rust-lang:master Jun 17, 2025
10 checks passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 17, 2025
rust-timer added a commit that referenced this pull request Jun 17, 2025
Rollup merge of #142542 - cjgillot:invalidate-simplify-cfg, r=SparrowLii

Manually invalidate caches in SimplifyCfg.

The current `SimplifyCfg` pass unconditionally invalidates CFG caches. This is unfortunate if there are no modifications that require this invalidation.
@cjgillot cjgillot deleted the invalidate-simplify-cfg branch June 17, 2025 22:41
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Jun 18, 2025
Rollup of 13 pull requests

Successful merges:

 - rust-lang/rust#138538 (Make performance description of String::{insert,insert_str,remove} more precise)
 - rust-lang/rust#141946 (std: refactor explanation of `NonNull`)
 - rust-lang/rust#142216 (Miscellaneous RefCell cleanups)
 - rust-lang/rust#142542 (Manually invalidate caches in SimplifyCfg.)
 - rust-lang/rust#142563 (Refine run-make test ignores due to unpredictable `i686-pc-windows-gnu` unwind mechanism)
 - rust-lang/rust#142570 (Reject union default field values)
 - rust-lang/rust#142584 (Handle same-crate macro for borrowck semicolon suggestion)
 - rust-lang/rust#142585 (Update books)
 - rust-lang/rust#142586 (Fold unnecessary `visit_struct_field_def` in AstValidator)
 - rust-lang/rust#142587 (Make sure to propagate result from `visit_expr_fields`)
 - rust-lang/rust#142595 (Revert overeager warning for misuse of `--print native-static-libs`)
 - rust-lang/rust#142598 (Set elf e_flags on ppc64 targets according to abi)
 - rust-lang/rust#142601 (Add a comment to `FORMAT_VERSION`.)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit that referenced this pull request Jun 18, 2025
Preserve caches in a call to shrink_to_fit

A small follow up to #142542.
bors added a commit that referenced this pull request Jun 22, 2025
Preserve caches in a call to shrink_to_fit

A small follow up to #142542.
github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Jun 23, 2025
Preserve caches in a call to shrink_to_fit

A small follow up to rust-lang/rust#142542.
github-actions bot pushed a commit to Clownsw/miri that referenced this pull request Jun 23, 2025
Preserve caches in a call to shrink_to_fit

A small follow up to rust-lang/rust#142542.
lnicola pushed a commit to lnicola/rust-analyzer that referenced this pull request Jun 23, 2025
Preserve caches in a call to shrink_to_fit

A small follow up to rust-lang/rust#142542.
github-actions bot pushed a commit to tautschnig/verify-rust-std that referenced this pull request Jun 24, 2025
…kingjubilee

Rollup of 13 pull requests

Successful merges:

 - rust-lang#138538 (Make performance description of String::{insert,insert_str,remove} more precise)
 - rust-lang#141946 (std: refactor explanation of `NonNull`)
 - rust-lang#142216 (Miscellaneous RefCell cleanups)
 - rust-lang#142542 (Manually invalidate caches in SimplifyCfg.)
 - rust-lang#142563 (Refine run-make test ignores due to unpredictable `i686-pc-windows-gnu` unwind mechanism)
 - rust-lang#142570 (Reject union default field values)
 - rust-lang#142584 (Handle same-crate macro for borrowck semicolon suggestion)
 - rust-lang#142585 (Update books)
 - rust-lang#142586 (Fold unnecessary `visit_struct_field_def` in AstValidator)
 - rust-lang#142587 (Make sure to propagate result from `visit_expr_fields`)
 - rust-lang#142595 (Revert overeager warning for misuse of `--print native-static-libs`)
 - rust-lang#142598 (Set elf e_flags on ppc64 targets according to abi)
 - rust-lang#142601 (Add a comment to `FORMAT_VERSION`.)

r? `@ghost`
`@rustbot` modify labels: rollup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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