Uh oh!
There was an error while loading. Please reload this page.
Prereq1 for async drop - drop & async_fut fields in Drop terminator - #129734
Prereq1 for async drop - drop & async_fut fields in Drop terminator#129734azhogin wants to merge 1 commit into
drop & async_fut fields in Drop terminator#129734Conversation
rustbot
commented
Aug 29, 2024
Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt Some changes occurred in compiler/rustc_codegen_cranelift cc @bjorn3 Some changes occurred to the CTFE / Miri engine cc @rust-lang/miri This PR changes MIR cc @oli-obk, @RalfJung, @JakobDegen, @davidtwco, @celinval, @vakaras |
Uh oh!
There was an error while loading. Please reload this page.
| /// StateTransform pass. In `expand_async_drops` async drops are expanded | ||
| /// into one or two yield points with poll ready/pending switch. | ||
| /// When a coroutine has any internal async drop, the coroutine drop function will be async | ||
| /// (generated by `create_coroutine_drop_shim_async`, not `create_coroutine_drop_shim`). |
There was a problem hiding this comment.
It might be worth also discussing async drop in the MirPhase docs. And if any new MIR phase restrictions are added, please make sure to update the MIR validator.
There was a problem hiding this comment.
Comment about async drops added in MirPhase:
/// - Async drops: after drop elaboration some drops may become async (`drop`, `async_fut` fields).
/// StateTransform pass will expand those async drops or reset to sync.
Could you, pls, be more specific about "update the MIR validator"? Async drop terminators live from ElaborateDrops to StateTransform pass in transition to MirPhase::Runtime(..). What MIR validator changes do you recommend?
1cffd92 to
482c2c3Compareb45015f to
f954f0cComparebors
commented
Sep 23, 2024
☔ The latest upstream changes (presumably #130724) made this pull request unmergeable. Please resolve the merge conflicts. |
davidtwco
commented
Oct 1, 2024
r? @nikomatsakis is going to look into this |
f954f0c to
d5844bfCompare
This comment has been minimized.
This comment has been minimized.
d5844bf to
e8f28c1Comparebors
commented
Feb 9, 2025
☔ The latest upstream changes (presumably #136751) made this pull request unmergeable. Please resolve the merge conflicts. |
e8f28c1 to
7097c0cComparebors
commented
Feb 14, 2025
☔ The latest upstream changes (presumably #137030) made this pull request unmergeable. Please resolve the merge conflicts. |
7097c0c to
e448c13Compare
This comment has been minimized.
This comment has been minimized.
e448c13 to
6109ee3Compare
This comment has been minimized.
This comment has been minimized.
bors
commented
Mar 12, 2025
☔ The latest upstream changes (presumably #138366) made this pull request unmergeable. Please resolve the merge conflicts. |
6109ee3 to
09344aeCompare
This comment has been minimized.
This comment has been minimized.
09344ae to
aa82115Compare
This comment has been minimized.
This comment has been minimized.
aa82115 to
f8f9f26Compare
This is subpart 1 PR of #123948, just for review purposes.
Added Option
dropandasync_futfields in Drop terminator for use when Drop terminator is async drop.dropfield has the same meaning asdropfield in Yield terminator. We need it because async drop is a hidden Yield, expanded into yield-point in StateTransform (later commits).async_futcontains local for async drop future, generated byasync_fut = async_drop_in_place(droppee)in drop elaboration (later commits).