-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prereq6 for async drop - templated coroutine processing and layout #129741
base: master
Are you sure you want to change the base?
Prereq6 for async drop - templated coroutine processing and layout #129741
Conversation
Some changes occurred in compiler/rustc_codegen_cranelift cc @bjorn3 This PR changes Stable MIR cc @oli-obk, @celinval, @ouz-a Some changes occurred to the CTFE / Miri engine cc @rust-lang/miri Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt This PR changes MIR cc @oli-obk, @RalfJung, @JakobDegen, @davidtwco, @celinval, @vakaras |
Can you please mark these PRs as "draft" (before creating them, i.e. in the PR creation dialog), so that the bot doesn't ping dozens of people for each of them? :) |
4c1f383
to
0ac2aaa
Compare
0ac2aaa
to
b75340f
Compare
This comment has been minimized.
This comment has been minimized.
b75340f
to
43051ca
Compare
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #130091) made this pull request unmergeable. Please resolve the merge conflicts. |
…p from previous async drop glue implementation
43051ca
to
64e4cca
Compare
64e4cca
to
85587cd
Compare
☔ The latest upstream changes (presumably #130165) made this pull request unmergeable. Please resolve the merge conflicts. |
r? @nikomatsakis is going to look into this |
This is subpart 6 PR of #123948, just for review purposes.
For
async_drop_in_place<T>(dropee)::{{closure0}}
we need to perform shim codegen already with dropee type substituted.To generate async drop glue we are generating sync-like drop glue using drop elaboration and then applying StateTransform pass to convert it into coroutine poll function. This coroutine has completely different layout dependent of dropee T, so it cannot be represented by generic coroutine with later T substitution (after codegen).
AsyncDropInPlacePoll
lang item coroutine is considered as templated and will be codegen'ed already with GenericArgs substituted.Review only last commit, based on previous PR #129740