Uh oh!
There was an error while loading. Please reload this page.
Clean up and streamline snapshot data structures - #55906
Conversation
rust-highfive
commented
Nov 12, 2018
The job 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 |
nikomatsakis
commented
Nov 14, 2018
See also rust-lang/ena#15 |
c189efa to
350a15aComparennethercote
commented
Nov 15, 2018
I've updated the first commit so that it uses |
nikomatsakis
commented
Nov 16, 2018
@bors r+ |
bors
commented
Nov 16, 2018
📌 Commit 350a15ab4ea8ee78336c2289f56a3f67c787aa69 has been approved by |
nnethercote
commented
Nov 20, 2018
@bors try |
bors
commented
Nov 20, 2018
🙅 Please do not |
bors
commented
Nov 21, 2018
☔ The latest upstream changes (presumably #52591) made this pull request unmergeable. Please resolve the merge conflicts. |
350a15a to
bf614a8Comparennethercote
commented
Nov 21, 2018
@bors try |
bors
commented
Nov 21, 2018
⌛ Trying commit bf614a8bb532c52c5a721f82b8e65dc8adb1e280 with merge 04eac86e3858e974b9e3bf99acf31e76ad4ac8af... |
rust-highfive
commented
Nov 21, 2018
The job 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
commented
Nov 21, 2018
💔 Test failed - status-travis |
rust-highfive
commented
Nov 21, 2018
The job 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 |
bf614a8 to
f61f9edComparennethercote
commented
Nov 21, 2018
@bors try |
bors
commented
Nov 21, 2018
⌛ Trying commit f61f9ed138a073229e19fbbff1a38d2ddbe53a05 with merge 2f28ba5f132d52fb788e30c86134b325180d16c5... |
bors
commented
Nov 22, 2018
☀️ Test successful - status-travis |
nnethercote
commented
Nov 22, 2018
@rust-timer build 2f28ba5f132d52fb788e30c86134b325180d16c5 |
bors
commented
Nov 25, 2018
💡 This pull request was already approved, no need to approve it again.
|
bors
commented
Nov 25, 2018
📌 Commit bfc1902 has been approved by |
bors
commented
Nov 25, 2018
🔒 Merge conflict This pull request and the master branch diverged in a way that cannot be automatically merged. Please rebase on top of the latest master branch, and let the reviewer approve again. How do I rebase?Assuming
You may also read Git Rebasing to Resolve Conflicts by Drew Blessing for a short tutorial. Please avoid the "Resolve conflicts" button on GitHub. It uses Sometimes step 4 will complete without asking for resolution. This is usually due to difference between how Error message |
This version has some significant speed-ups relating to snapshotting.
Because it's as useless as its name suggests. This commit also renames `UndoLog::Noop` as `UndoLog::Purged`, because (a) that's a more descriptive name and (b) it matches the name used in similar code in `librustc/infer/region_constraints/mod.rs`.
So that it matches `librustc_data_structures/snapshot_map/mod.rs` and the `ena` crate.
Because they shouldn't be reused. This provides consistency with the `ena` crate.
This makes the two snapshot implementations more consistent with each other and with crate `ena`.
…ap`. They're not strictly necessary, and they result in the `Vec` being allocated even for the trivial (and common) case where a `start_snapshot` is immediately followed by a `commit` or `rollback_to`.
…straintCollector`. They're not strictly necessary, and they result in the `Vec` being allocated even for the trivial (and common) case where a `start_snapshot` is immediately followed by a `commit` or `rollback_to`. The commit also removes a now-unnecessary argument of `pop_placeholders()`.
bfc1902 to
94967aeComparennethercote
commented
Nov 25, 2018
@bors r=nikomatsakis |
bors
commented
Nov 25, 2018
📌 Commit 94967ae has been approved by |
bors
commented
Nov 25, 2018
… r=nikomatsakis Clean up and streamline snapshot data structures These commits clean up the snapshot structures a bit, so they are more consistent with each other and with the `ena` crate. They also remove the `OpenSnapshot` and `CommittedSnapshot` entries in the undo log, just like I did for the `ena` crate in rust-lang/ena#14. This PR in combination with that `ena` PR reduces instruction counts by up to 6% on benchmarks. r? @nikomatsakis. Note that this isn't quite ready for landing, because the `ena` dependency in the first commit needs to be updated once rust-lang/ena#14 lands. But otherwise it should be good.
bors
commented
Nov 25, 2018
☀️ Test successful - status-appveyor, status-travis |
nnethercote
commented
Nov 25, 2018
Just for posterity: this PR finally landed 8 days and 19 hours after the initial r+. I'm sure that's the slowest landing I've ever had. It was in the queue for almost all that time, mostly hovering around positions 6, 7 and 8, continually being bumped. I had to rebase it four or five times, and for one of those rebases I wasn't quick enough and so I missed an opening for landing, which delayed things by few hours more. |
Centril
commented
Nov 28, 2018
cc @kennytm re. @nnethercote's previous comment... what's up with that? |
petrochenkov
commented
Nov 28, 2018
First, prioritized edition-critical PRs are flying around between master and beta right now. |
nnethercote
commented
Nov 28, 2018
Landing cycle time now exceeds 3 hours, which means there are about 7.5 slots per 24 hours. Combine that with the fact that it feels like intermittent failures are more frequent lately, and the number of successful landings per 24 hours is probably something like 5. |
nnethercote
commented
Nov 29, 2018
Final perf results -- wins of up to 5%, with almost every benchmark seeing at least some improvement. |
These commits clean up the snapshot structures a bit, so they are more consistent with each other and with the
enacrate.They also remove the
OpenSnapshotandCommittedSnapshotentries in the undo log, just like I did for theenacrate in rust-lang/ena#14. This PR in combination with thatenaPR reduces instruction counts by up to 6% on benchmarks.r? @nikomatsakis. Note that this isn't quite ready for landing, because the
enadependency in the first commit needs to be updated once rust-lang/ena#14 lands. But otherwise it should be good.