-
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
avoid computing liveness for locals that escape into statics #52991
Conversation
Co-authored-by: lqd <[email protected]> Co-authored-by: nikomatsakis <[email protected]>
2de5658
to
341a07c
Compare
@bors try |
[WIP] avoid computing liveness for locals that escape into statics Fixes #52713 I poked at this on the plane and I think it's working -- but I want to do a bit more investigation and double check. The idea is to identify those local variables where the entire value will "escape" into the return -- for them, we don't need to compute liveness, since we know that the outlives relations from the return type will force those regions to be equal to free regions. This should help with html5ever in particular. r? @pnkfelix cc @lqd
☀️ Test successful - status-travis |
@rust-timer build da90b26 |
Success: Queued da90b26 with parent 03da14b, comparison URL. |
@bors try |
⌛ Trying commit 75504ee with merge 24a313ef05eff74c552335159aa02fbbfcf7e8b3... |
without support for |
@rust-timer build 24a313ef05eff74c552335159aa02fbbfcf7e8b3 |
Success: Queued 24a313ef05eff74c552335159aa02fbbfcf7e8b3 with parent 7e8ca9f, comparison URL. |
☀️ Test successful - status-travis |
@rust-timer build 24a313ef05eff74c552335159aa02fbbfcf7e8b3 |
Success: Queued 24a313ef05eff74c552335159aa02fbbfcf7e8b3 with parent 7e8ca9f, comparison URL. |
The comparison URL doesn't work yet but you can view the NLL dashboard results for 24a313e here:
versus
|
Seems to be a good win on html5ever, as predicted =) |
@pnkfelix ready for review now I think |
@bors r+ |
📌 Commit 5e2f337 has been approved by |
🌲 The tree is currently closed for pull requests below priority 12, this pull request will be tested once the tree is reopened |
Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
@bors r-
|
@bors r=pnkfelix |
📌 Commit 2e2ea26 has been approved by |
@bors p=1 -- NLL is Rust 2018 critical and this is a perf building block. |
avoid computing liveness for locals that escape into statics Fixes #52713 I poked at this on the plane and I think it's working -- but I want to do a bit more investigation and double check. The idea is to identify those local variables where the entire value will "escape" into the return -- for them, we don't need to compute liveness, since we know that the outlives relations from the return type will force those regions to be equal to free regions. This should help with html5ever in particular. - [x] test performance - [x] verify correctness - [x] add comments r? @pnkfelix cc @lqd
☀️ Test successful - status-appveyor, status-travis |
Fixes #52713
I poked at this on the plane and I think it's working -- but I want to do a bit more investigation and double check. The idea is to identify those local variables where the entire value will "escape" into the return -- for them, we don't need to compute liveness, since we know that the outlives relations from the return type will force those regions to be equal to free regions. This should help with html5ever in particular.
r? @pnkfelix
cc @lqd