Uh oh!
There was an error while loading. Please reload this page.
Pull Derefer before ElaborateDrops - #98145
Conversation
rust-highfive
commented
Jun 15, 2022
Some changes occured to the CTFE / Miri engine cc @rust-lang/miri |
bors
commented
Jun 20, 2022
☔ The latest upstream changes (presumably #97931) made this pull request unmergeable. Please resolve the merge conflicts. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
oli-obk
commented
Jun 21, 2022
@rustbot author |
9565104 to
2659f22CompareUh oh!
There was an error while loading. Please reload this page.
bors
commented
Jun 21, 2022
☔ The latest upstream changes (presumably #95576) made this pull request unmergeable. Please resolve the merge conflicts. |
bors
commented
Jun 22, 2022
☔ The latest upstream changes (presumably #98359) made this pull request unmergeable. Please resolve the merge conflicts. |
3243226 to
aa91716Compareoli-obk
commented
Jun 23, 2022
@bors r+ |
bors
commented
Jun 23, 2022
📌 Commit aa91716 has been approved by |
bors
commented
Jun 23, 2022
🌲 The tree is currently closed for pull requests below priority 1000. This pull request will be tested once the tree is reopened. |
bors
commented
Jul 12, 2022
bors
commented
Jul 13, 2022
bors
commented
Jul 13, 2022
☀️ Test successful - checks-actions |
rust-timer
commented
Jul 13, 2022
Finished benchmarking commit (42bd138): comparison url. Instruction count
Max RSS (memory usage)Results
CyclesResults
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression Footnotes |
oli-obk
commented
Jul 14, 2022
hmm... looks like all mir queries got a few percent slower. I guess open an issue to track this regression to see if it goes away once we get rid of the new Rvalue |
Pull Derefer before ElaborateDrops _Follow up work to rust-lang#97025rust-lang#96549rust-lang#96116rust-lang#95887 #95649_ This moves `Derefer` before `ElaborateDrops` and creates a new `Rvalue` called `VirtualRef` that allows us to bypass many constraints for `DerefTemp`. r? `@oli-obk`
rylev
commented
Jul 19, 2022
ouz-a
commented
Jul 19, 2022
Optimize `UnDerefer` Addresses the performance [issues](rust-lang#98145 (comment)) faced here. r? `@oli-obk`
Rewrite `UnDerefer` Currently, `UnDerefer` is used by drop elaboration to undo the effects of the `Derefer` pass. However, it just recreates the original places with derefs in the middle of the projection. Because `ProjectionElem::Deref` is intended to be removed completely in the future, this will not work forever. This PR introduces a `deref_chain` method that returns the places behind `DerefTemp` locals in a place and rewrites the move path code to use this. In the process, `UnDerefer` was merged into `MovePathLookup`. Now that move paths use the same places as in the MIR, the other uses of `UnDerefer` no longer require it. See rust-lang#98145 cc `@ouz-a` r? `@oli-obk`
Rewrite `UnDerefer` Currently, `UnDerefer` is used by drop elaboration to undo the effects of the `Derefer` pass. However, it just recreates the original places with derefs in the middle of the projection. Because `ProjectionElem::Deref` is intended to be removed completely in the future, this will not work forever. This PR introduces a `deref_chain` method that returns the places behind `DerefTemp` locals in a place and rewrites the move path code to use this. In the process, `UnDerefer` was merged into `MovePathLookup`. Now that move paths use the same places as in the MIR, the other uses of `UnDerefer` no longer require it. See rust-lang#98145 cc `@ouz-a` r? `@oli-obk`
Optimize `UnDerefer` Addresses the performance [issues](rust-lang/rust#98145 (comment)) faced here. r? `@oli-obk`
Follow up work to #97025#96549#96116#95887#95649
This moves
DereferbeforeElaborateDropsand creates a newRvaluecalledVirtualRefthat allows us to bypass many constraints forDerefTemp.r? @oli-obk