-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Fix expansion performance regression #34652
Conversation
…(instead of by reference)" This reverts commit 5bf7970.
cc @Manishearth |
@bors: r+ |
📌 Commit 547a930 has been approved by |
⌛ Testing commit 547a930 with merge 70e1a95... |
Fix expansion performance regression **syntax-[breaking-change] cc #31645** This fixes #34630 by reverting commit 5bf7970 of PR #33943, which landed in #34424. By removing the `Rc<_>` wrapping around `Delimited` and `SequenceRepetition` in `TokenTree`, 5bf7970 made cloning `TokenTree`s more expensive. While this had no measurable performance impact on the compiler's crates, it caused an order of magnitude performance regression on some macro-heavy code in the wild. I believe this is due to clones of `TokenTree`s in `macro_parser.rs` and/or `macro_rules.rs`. r? @nrc
💔 Test failed - auto-win-msvc-64-opt |
@bors: retry On Wed, Jul 6, 2016 at 11:13 AM, bors [email protected] wrote:
|
⌛ Testing commit 547a930 with merge de78655... |
Fix expansion performance regression **syntax-[breaking-change] cc #31645** This fixes #34630 by reverting commit 5bf7970 of PR #33943, which landed in #34424. By removing the `Rc<_>` wrapping around `Delimited` and `SequenceRepetition` in `TokenTree`, 5bf7970 made cloning `TokenTree`s more expensive. While this had no measurable performance impact on the compiler's crates, it caused an order of magnitude performance regression on some macro-heavy code in the wild. I believe this is due to clones of `TokenTree`s in `macro_parser.rs` and/or `macro_rules.rs`. r? @nrc
syntax-[breaking-change] cc #31645
This fixes #34630 by reverting commit 5bf7970 of PR #33943, which landed in #34424.
By removing the
Rc<_>
wrapping aroundDelimited
andSequenceRepetition
inTokenTree
, 5bf7970 made cloningTokenTree
s more expensive. While this had no measurable performance impact on the compiler's crates, it caused an order of magnitude performance regression on some macro-heavy code in the wild. I believe this is due to clones ofTokenTree
s inmacro_parser.rs
and/ormacro_rules.rs
.r? @nrc