-
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
Shrink Nonterminal
#67340
Shrink Nonterminal
#67340
Conversation
Notable local
Note that |
Would appreciate if we could block merging this PR on first merging #67131 since this one will generate a lot of conflicts with that PR. |
@bors try @rust-timer queue |
Awaiting bors try build completion |
Shrink `Nonterminal` These commits shrink `Nonterminal` from 240 bytes to 40 bytes. When building `serde_derive` they reduce the number of `memcpy` calls from 9.6M to 7.4M, and it's a tiny win on a few other benchmarks. r? @petrochenkov
☀️ Try build successful - checks-azure |
Queued 23f3174 with parent a605441, future comparison URL. |
Finished benchmarking try commit 23f3174, comparison URL. |
Here are the
|
r=me after rebase |
Ping from Triage: Any updates @nnethercote? |
This commit reduces the size of `Nonterminal` from a whopping 240 bytes to 72 bytes (on x86-64), which gets it below the `memcpy` threshold. It also removes some impedance mismatches with `Annotatable`, which already uses `P` for these variants.
This commit reduces the size of `Nonterminal` from a 72 bytes to 40 bytes (on x86-64).
ed9ba9b
to
7d2173e
Compare
Back now from PTO, I have rebased. @bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit 7d2173e with merge 1941303dc808ee27858ab3d907f612c9ab9c972d... |
☀️ Try build successful - checks-azure |
Queued 1941303dc808ee27858ab3d907f612c9ab9c972d with parent 9ed29b6, future comparison URL. |
rust-timer didn't give us a "finished" message, but the results are in and look as expected -- a small win. |
@bors r+ |
📌 Commit 7d2173e has been approved by |
Shrink `Nonterminal` These commits shrink `Nonterminal` from 240 bytes to 40 bytes. When building `serde_derive` they reduce the number of `memcpy` calls from 9.6M to 7.4M, and it's a tiny win on a few other benchmarks. r? @petrochenkov
☀️ Test successful - checks-azure |
📣 Toolstate changed by #67340! Tested on commit b1cb3c0. 🎉 rustc-guide on linux: test-fail → test-pass (cc @JohnTitor @amanjeev @spastorino @mark-i-m, @rust-lang/infra). |
Tested on commit rust-lang/rust@b1cb3c0. Direct link to PR: <rust-lang/rust#67340> 🎉 rustc-guide on linux: test-fail → test-pass (cc @JohnTitor @amanjeev @spastorino @mark-i-m, @rust-lang/infra).
These commits shrink
Nonterminal
from 240 bytes to 40 bytes. When buildingserde_derive
they reduce the number ofmemcpy
calls from 9.6M to 7.4M, and it's a tiny win on a few other benchmarks.r? @petrochenkov