Repository navigation
MIR move elimination [5/6]: Storage reconstruction - #163339
rust-bors[bot] merged 2 commits into
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. |
6745385 to
96e6975
Compare
96e6975 to
7736978
Compare
This comment has been minimized.
This comment has been minimized.
7736978 to
eab2d36
Compare
eab2d36 to
53be078
Compare
This comment has been minimized.
This comment has been minimized.
53be078 to
579316a
Compare
579316a to
6256aaa
Compare
4d906d5 to
07bdf02
Compare
This comment has been minimized.
This comment has been minimized.
07bdf02 to
74b0f10
Compare
74b0f10 to
3f8e6da
Compare
|
Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt |
|
I think this is a bit similar to #142531. I don't actually see any mir-opt pass that uses storage's UB in the real world. Should we have a dedicated StorageReconstruction pass placed later in the pipeline? |
|
@bors r+ |
fd0bab6 to
0827b4d
Compare
|
This pull request was unapproved. |
|
Collapsed the commits @bors r= tmiasko |
|
Unknown value for argument "r". Run |
|
@bors r=tmiasko |
|
@bors rollup=iffy |
…econstruction, r=tmiasko MIR move elimination [5/6]: Storage reconstruction Depends on rust-lang#163338 This PR extends the `MoveElimination` pass from rust-lang/rfcs#3943 to reconstruct `StorageLive`/`StorageDead` statements for all locals by using the liveness information collected by `PreciseLiveness`. r? tmiasko
|
This one has no perf impact, the optimization is disabled by default. |
|
Ah I see, thanks! |
…uwer Rollup of 7 perf-sensitive pull requests Successful merges: - #163339 (MIR move elimination [5/6]: Storage reconstruction) - #163525 (Move lang item collection to the resolver) - #163928 (do not prefer trivially true candidates with `-Znext-solver` ) - #164341 (Expand an early return case in `coerce_unsized`) - #164484 (Use adaptive sparse encoding for metadata tables) - #164607 (destringlyfy lint infrastructure) - #165160 (New solver opts for diesel (part 3)) > [!WARNING] > This rollup conflicts with pending auto build #165178 and may need to be recreated if the pending build succeeds.
…uwer Rollup of 7 perf-sensitive pull requests Successful merges: - #163339 (MIR move elimination [5/6]: Storage reconstruction) - #163525 (Move lang item collection to the resolver) - #163928 (do not prefer trivially true candidates with `-Znext-solver` ) - #164341 (Expand an early return case in `coerce_unsized`) - #164484 (Use adaptive sparse encoding for metadata tables) - #164607 (destringlyfy lint infrastructure) - #165160 (New solver opts for diesel (part 3)) > [!WARNING] > This rollup conflicts with pending auto build #165178 and may need to be recreated if the pending build succeeds.
…uwer Rollup of 7 perf-sensitive pull requests Successful merges: - #163339 (MIR move elimination [5/6]: Storage reconstruction) - #163525 (Move lang item collection to the resolver) - #163928 (do not prefer trivially true candidates with `-Znext-solver` ) - #164341 (Expand an early return case in `coerce_unsized`) - #164484 (Use adaptive sparse encoding for metadata tables) - #164607 (destringlyfy lint infrastructure) - #165160 (New solver opts for diesel (part 3)) > [!WARNING] > This rollup conflicts with pending auto build #165178 and may need to be recreated if the pending build succeeds.
…uwer Rollup of 7 perf-sensitive pull requests Successful merges: - #163339 (MIR move elimination [5/6]: Storage reconstruction) - #163359 (MIR move elimination [1.5/6]: Ensure ZSTs are always initialized) - #163525 (Move lang item collection to the resolver) - #163928 (do not prefer trivially true candidates with `-Znext-solver` ) - #164341 (Expand an early return case in `coerce_unsized`) - #164484 (Use adaptive sparse encoding for metadata tables) - #164607 (destringlyfy lint infrastructure)
Rollup merge of #163339 - Amanieu:move-elimination/storage-reconstruction, r=tmiasko MIR move elimination [5/6]: Storage reconstruction Depends on #163338 This PR extends the `MoveElimination` pass from rust-lang/rfcs#3943 to reconstruct `StorageLive`/`StorageDead` statements for all locals by using the liveness information collected by `PreciseLiveness`. r? tmiasko
View all comments
Depends on #163338
This PR extends the
MoveEliminationpass from rust-lang/rfcs#3943 to reconstructStorageLive/StorageDeadstatements for all locals by using the liveness information collected byPreciseLiveness.r? tmiasko