rustbot · GitHub

@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

Jul 28, 2026

rust-bors Bot pushed a commit that referenced this pull request

Jul 28, 2026
Speed up `EverInitializedPlaces`

Merged

@nnethercote

rust-bors Bot pushed a commit that referenced this pull request

Aug 2, 2026
Speed up `EverInitializedPlaces`

cjgillot

cjgillot

Currently it tracks a bit for every `Init`, but it only uses the tracked
data for locals. This means it is tracking data for projections that is
unused.
This commit shrinks the domain to only track data for `Local`s, going
from `MixedBitSet<InitIndex>` to `DenseBitSet<Local>`.
This does regress the error messages in one test:
liveness-assign-imm-local-notes.rs. The next commit will fix that.
The commit also removes some `debug` statements which probably haven't
seen use in a long time. They can be re-added easily if anyone needs
them in the future.
This commit fixes the error message regression in the previous commit by
recomputing flow information at error-reporting time.
`is_local_ever_initialized` is replaced in two ways.
- In `check_access_permissions`: by the new `first_reaching_init`
  function which picks the first init that can reach the error location
  along a path that doesn't cross `StorageDead(local)`.
- In `add_used_mut`: by a simple `contains` test.

@nnethercote

@nnethercote

@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

Aug 3, 2026

cjgillot

@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

Aug 3, 2026

Merged

rust-bors Bot pushed a commit that referenced this pull request

Aug 4, 2026
…uwer
Rollup of 10 perf-sensitive pull requests
Successful merges:
 - #157281 (perf: skip irrelevant foreign impls when building the specialization graph)
 - #159403 (Next steps for FnDef binder changes (instantiate most FnDef binders))
 - #159763 (Optimize crate resolution for large workspace)
 - #160033 (Speed up `EverInitializedPlaces`)
 - #160268 (perf: store the fulfillment engine inline in ObligationCtxt)
 - #160317 (perf: Cache already-checked types in the privacy visitor)
 - #160399 (interpret: skip deref-projection validity checks when they are not needed)
 - #160451 (Deduplicate target and host filesearch)
 - #160453 (Add fast path to `escape_string_symbol`)
 - #160454 (Add offload guard flags to typeck to prevent perf regressions)

@rust-bors

rust-timer added a commit that referenced this pull request

Aug 4, 2026
Rollup merge of #160033 - nnethercote:speed-up-EverInit, r=cjgillot
Speed up `EverInitializedPlaces`
By simplifying its domain. Details in individual commits.
r? @cjgillot

@nnethercote

WhySoBad pushed a commit to WhySoBad/miri that referenced this pull request

Aug 5, 2026

flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request

Aug 17, 2026

Read the original on github.com ↗