-
Notifications
You must be signed in to change notification settings - Fork 13.4k
avoid computing liveness when possible #53168
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
avoid computing liveness when possible #53168
Conversation
In particular, we skip computing liveness for a variable X if all the regions in its type are known to outlive free regions.
e114ee5
to
3b7989d
Compare
@bors try Local experiments suggest this will be a big perf win, just as before. The diagnostics do degrade, I think, slightly. I think we could probably fix that. |
⌛ Trying commit 3b7989d with merge aea424935d9666ab3a7efc69c7e88452e460479c... |
☀️ Test successful - status-travis |
@rust-timer build aea424935d9666ab3a7efc69c7e88452e460479c |
Success: Queued aea424935d9666ab3a7efc69c7e88452e460479c with parent ccb550f, comparison URL. |
Perf is ready. The numbers look pretty good. |
I think I will close this in favor of #53177, which builds on it but does more. |
…g-values, r=pnkfelix optimize redundant borrows and escaping paths in NLL This builds on #53168 and adds a commit that addresses #53176 -- or at least I think it does. I marked this as WIP because I want to see the test results (and measure the performance). I also want to double check we're not adding in any unsoundness here.
…g-values, r=pnkfelix optimize redundant borrows and escaping paths in NLL This builds on #53168 and adds a commit that addresses #53176 -- or at least I think it does. I marked this as WIP because I want to see the test results (and measure the performance). I also want to double check we're not adding in any unsoundness here.
Second stab at #52713. This version avoids computing liveness for variables whose types contain only regions that are known to extend free regions (for any reason, maybe not just because they are returned).
Fixes #52713
r? @pnkfelix
cc @lqd