Uh oh!
There was an error while loading. Please reload this page.
rustc(codegen): uncache def_symbol_name prefix from symbol_name. - #59343
Conversation
rust-highfive
commented
Mar 21, 2019
r? @oli-obk (rust_highfive has picked a reviewer for you, use r? to override) |
eddyb
commented
Mar 21, 2019
@bors try |
bors
commented
Mar 21, 2019
rustc(codegen): uncache `def_symbol_name` prefix from `symbol_name`. The `def_symbol_name` query was an optimization to avoid recomputing the common part of a symbol name, as only the hash needs to be added to it for each symbol. However, #57967 will add a new mangling scheme, which doesn't readily support this kind of reuse - while it's plausible, it requires a lot more effort, since you'd have to "symbolically evaluate" mangling, and keep it in a form where the backreference positions can be computed correctly in the final step. So I want to see how much time we're actually saving with this `def_symbol_name` optimization, nowadays.
bors
commented
Mar 21, 2019
☀️ Try build successful - checks-travis |
eddyb
commented
Mar 21, 2019
@rust-timer build 7172250 |
rust-timer
commented
Mar 21, 2019
Success: Queued 7172250 with parent 48e354d, comparison URL. |
rust-timer
commented
Mar 21, 2019
Finished benchmarking try commit 7172250 |
oli-obk
commented
Mar 22, 2019
Perf is randomly better or worse, but all below 1%. Max-rss seems to mostly have improvements, but that might just be noise, I don't know what the usual variances are. impl lgtm |
michaelwoerister
commented
Mar 25, 2019
bors
commented
Mar 25, 2019
📌 Commit 3590a46 has been approved by |
bors
commented
Mar 26, 2019
☔ The latest upstream changes (presumably #59433) made this pull request unmergeable. Please resolve the merge conflicts. |
eddyb
commented
Mar 29, 2019
@bors r=michaelwoerister |
bors
commented
Mar 29, 2019
📌 Commit 03639a2 has been approved by |
…woerister rustc(codegen): uncache `def_symbol_name` prefix from `symbol_name`. The `def_symbol_name` query was an optimization to avoid recomputing the common part of a symbol name, as only the hash needs to be added to it for each symbol. However, rust-lang#57967 will add a new mangling scheme, which doesn't readily support this kind of reuse - while it's plausible, it requires a lot more effort, since you'd have to "symbolically evaluate" mangling, and keep it in a form where the backreference positions can be computed correctly in the final step. So I want to see how much time we're actually saving with this `def_symbol_name` optimization, nowadays. cc @michaelwoerister
Rollup of 5 pull requests Successful merges: - #59343 (rustc(codegen): uncache `def_symbol_name` prefix from `symbol_name`.) - #59380 (Fix invalid DWARF for enums when using ThinLTO) - #59463 (skip dyn keyword lint under macros) - #59539 (Fix infinite recursion) - #59544 (manifest: only include miri on the nightly channel) Failed merges: r? @ghost
The
def_symbol_namequery was an optimization to avoid recomputing the common part of a symbol name, as only the hash needs to be added to it for each symbol.However, #57967 will add a new mangling scheme, which doesn't readily support this kind of reuse - while it's plausible, it requires a lot more effort, since you'd have to "symbolically evaluate" mangling, and keep it in a form where the backreference positions can be computed correctly in the final step.
So I want to see how much time we're actually saving with this
def_symbol_nameoptimization, nowadays.cc @michaelwoerister