Uh oh!
There was an error while loading. Please reload this page.
Store a Symbol instead of an Ident in VariantDef/FieldDef - #92533
Conversation
rust-highfive
commented
Jan 3, 2022
Some changes occured to the CTFE / Miri engine cc @rust-lang/miri |
rust-highfive
commented
Jan 3, 2022
(rust-highfive has picked a reviewer for you, use r? to override) |
Aaron1011
commented
Jan 3, 2022
@bors try @rust-timer queue |
rust-timer
commented
Jan 3, 2022
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
bors
commented
Jan 3, 2022
⌛ Trying commit b7e5ddf59cf8e5c979da2087676b54758f3aadbc with merge 7ba15b7f514570c7f7491ce79be1890d314aa5b1... |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Aaron1011
commented
Jan 3, 2022
@bors try |
bors
commented
Jan 3, 2022
⌛ Trying commit c9f2899c677383aa1c5c722a4b24b71ea950801a with merge c1f5740893c9cdd25535dac455ea84154d41ef11... |
bors
commented
Jan 4, 2022
☀️ Try build successful - checks-actions |
rust-timer
commented
Jan 4, 2022
Queued c1f5740893c9cdd25535dac455ea84154d41ef11 with parent ddabe07, future comparison URL. |
rust-timer
commented
Jan 4, 2022
Finished benchmarking commit (c1f5740893c9cdd25535dac455ea84154d41ef11): comparison url. Summary: This change led to large relevant improvements 🎉 in compiler performance.
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR led to changes in compiler perf. @bors rollup=never |
Aaron1011
commented
Jan 4, 2022
The perf improvements appear to be coming entirely from performing fewer |
Uh oh!
There was an error while loading. Please reload this page.
This is the same idea as rust-lang#92533, but for `AssocItem` instead of `VariantDef`/`FieldDef`. With this change, we no longer have any uses of `#[stable_hasher(project(...))]`
Store a `Symbol` instead of an `Ident` in `AssocItem` This is the same idea as rust-lang#92533, but for `AssocItem` instead of `VariantDef`/`FieldDef`. With this change, we no longer have any uses of `#[stable_hasher(project(...))]`
This is the same idea as rust-lang#92533, but for `AssocItem` instead of `VariantDef`/`FieldDef`. With this change, we no longer have any uses of `#[stable_hasher(project(...))]`
Store a `Symbol` instead of an `Ident` in `AssocItem` This is the same idea as rust-lang#92533, but for `AssocItem` instead of `VariantDef`/`FieldDef`. With this change, we no longer have any uses of `#[stable_hasher(project(...))]`
ehuss
commented
Feb 8, 2022
@Aaron1011 Due to the large number of reports of people getting an ICE that seems to be fixed by this, would it make sense to nominate this for a beta backport to 1.59? |
While I don't think backporting this will cause any issues, the diff is somewhat large, and might require adjusting if beta has additional uses of |
|
The field is also renamed from
identtoname. In most cases,we don't actually need the
Span. A newidentmethod is addedto
VariantDefandFieldDef, which constructs the fullIdentusing
tcx.def_ident_span(). This method is used in the caseswhere we actually need an
Ident.This makes incremental compilation properly track changes
to the
Span, without all of the invalidations caused by storinga
Spandirectly via anIdent.