-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Async drop fix for async_drop_in_place<T> layout for unspecified T #140902
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
Async drop fix for async_drop_in_place<T> layout for unspecified T #140902
Conversation
rustbot has assigned @compiler-errors. Use |
Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt |
r? oli-obk |
I think layout_of should bail with TooGeneric if it doesn't have enough information to compute the layout of the async drop in place coroutine. Do we already special case the layout computation of that coroutine or is it going though the default path for coroutines by getting their MIR? |
|
cb9fa6d
to
13178c7
Compare
I added such code to fix the problem:
|
@bors r+ p=5 blocking beta promotion |
unilaterally accepting for beta promotion as it only affects unstable features |
makes sense. Can you do that once this one lands? |
@bors p=15 jump ahead of rollups 🚀 |
Prepared a backport PR in #140918 |
⌛ Testing commit 13178c7 with merge 16c1c54a2921d5ace22e4a71c0ba7d4ef4b8aec7... |
☀️ Test successful - checks-actions |
…ietroalbini Backport rust-lang#140902 to beta This PR backports rust-lang#140902 to the beta branch, to unblock the stage0 bump. r? `@ghost`
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 9a7e19f (parent) -> 16c1c54 (this PR) Test differencesShow 2 test diffsStage 1
Stage 2
Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 16c1c54a2921d5ace22e4a71c0ba7d4ef4b8aec7 --output-dir test-dashboard And then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
Finished benchmarking commit (16c1c54): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (primary 0.6%, secondary 3.1%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 771.266s -> 772.277s (0.13%) |
Fix for #140423.
Layout of
async_drop_in_place<T>::{closure}
is calculated for unspecified T from dataflow_const_proptry_make_constant
.@oli-obk, do you think, it may be a better solution to add check like
if !args[0].is_fully_specialized() { return None; }
infn async_drop_coroutine_layout
?And could you, pls, recommend, how to implement
is_fully_specialized()
in a most simple way?