Repository navigation
Conversation
|
LLM disclosure: LLMs were used to generate the boilerplate for the MIR tests, but each test was manually reviewed and adjusted before committing. LLMs were also used to audit this pass against the rest of the compiler MIR transforms and Miri semantics. |
cdda80c to
3375722
Compare
9530f82 to
e61dd0d
Compare
e61dd0d to
bc0d0fa
Compare
|
This PR changes MIR cc @oli-obk, @RalfJung, @JakobDegen, @vakaras Some changes occurred in compiler/rustc_attr_parsing cc @jdonszelmann, @JonathanBrouwer Some changes occurred in compiler/rustc_attr_ir cc @jdonszelmann, @JonathanBrouwer Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt This PR changes rustc_public |
bc0d0fa to
785792f
Compare
This comment has been minimized.
This comment has been minimized.
785792f to
9ce4a67
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
Rebased on top of main which now contains #163337. This PR now only has the commits related to the main MoveElimination pass. |
Depends on #163336 and #163337
This PR implements the
MoveEliminationpass from rust-lang/rfcs#3943.This pass uses the analysis results from
PreciseLivenessto unify locals that are related by an assignment. This also includes an alias-fixup pass which is needed because some rvalues don't allow sources to overlap with the destination place.The pass is only enabled under
-Zmir-move-elimination. This flag also disablesDestinationPropagation, which is superseded by the new pass.r? tmiasko