-
Notifications
You must be signed in to change notification settings - Fork 13.2k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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