-
Notifications
You must be signed in to change notification settings - Fork 13k
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
[MIR] improve operand lifetimes #40133
Conversation
cc @nagisa |
@bors r+ |
📌 Commit 7f8529d has been approved by |
@bors r-
|
@bors r=eddyb |
📌 Commit e4458de has been approved by |
[MIR] improve operand lifetimes r? @eddyb
Could this failure be related? #40211 (comment) |
Yes, Travis in this PR also has the fail @bors r- |
This reduces the number of dynamic drops in libstd from 1141 to 899. However, without this change, the next patch would have created much more dynamic drops. A basic merge unswitching hack reduced the number of dynamic drops to 644, with no effect on stack usage. I should be writing a more dedicated drop unswitching pass. No performance measurements.
e4458de
to
31faaf2
Compare
@bors r=eddyb |
📌 Commit 31faaf2 has been approved by |
⌛ Testing commit 31faaf2 with merge d6e5b10... |
💔 Test failed - status-appveyor |
In MIR construction, operands need to live exactly until they are used, which is during the (sub)expression that made the call to `as_operand`. Before this PR, operands lived until the end of the temporary scope, which was sometimes unnecessarily longer and sometimes too short. Fixes rust-lang#38669.
Rebase damage. @bors r=eddyb |
💡 This pull request was already approved, no need to approve it again.
|
📌 Commit 31faaf2 has been approved by |
31faaf2
to
f99f1f8
Compare
@bors r- |
@bors r=eddyb |
📌 Commit f99f1f8 has been approved by |
⌛ Testing commit f99f1f8 with merge b2a424f... |
💔 Test failed - status-appveyor |
Looks spurious @bors retry |
[MIR] improve operand lifetimes r? @eddyb
☀️ Test successful - status-appveyor, status-travis |
r? @eddyb