Uh oh!
There was an error while loading. Please reload this page.
Generate metadata by iterating on DefId instead of traversing the HIR tree - #80347
Generate metadata by iterating on DefId instead of traversing the HIR tree#80347cjgillot wants to merge 16 commits into
Conversation
rust-highfive
commented
Dec 24, 2020
r? @oli-obk (rust-highfive has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
oli-obk
commented
Dec 24, 2020
I like the idea, we definitely need to check perf and see how it fares, but I don't see actual problems with it. I still think it needs an MCP, can you open one so the compiler team knows about it? We have a meeting later today, so it should go fast. |
This comment has been minimized.
This comment has been minimized.
petrochenkov
commented
Dec 24, 2020
This is an interesting idea, and there are multiple factors in play here
|
cjgillot
commented
Dec 25, 2020
I am also worried about this. This will definitely need a perf run.
I would like to drop the HIR earlier in the future. If this ever happens, HIR visiting will be impossible at such a late stage.
In the initial implementation, I wanted to use the query caches directly, like this: However, this did not force the queries if the |
cjgillot
commented
Dec 26, 2020
I filed an MCP. The Zulip discussion can be found here: |
oli-obk
commented
Dec 26, 2020
@bors try @rust-timer queue |
rust-timer
commented
Dec 26, 2020
Awaiting bors try build completion. |
bors
commented
Dec 26, 2020
⌛ Trying commit 5cdfe091c3363720dcd399d458ff4b317bf6f066 with merge 2e325a37b8ff6a4cce0abcacff6dc1b64a3cf624... |
bors
commented
Dec 26, 2020
☀️ Try build successful - checks-actions |
rust-timer
commented
Dec 26, 2020
Queued 2e325a37b8ff6a4cce0abcacff6dc1b64a3cf624 with parent 30a4273, future comparison URL. @rustbot label: +S-waiting-on-perf |
rust-timer
commented
Dec 26, 2020
Finished benchmarking try commit (2e325a37b8ff6a4cce0abcacff6dc1b64a3cf624): comparison url. Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up. @bors rollup=never |
bjorn3
commented
Dec 26, 2020
Significant regressions of up to 50%. This is due to |
This comment has been minimized.
This comment has been minimized.
oli-obk
commented
Dec 27, 2020
@bors try @rust-timer queue |
rust-timer
commented
Dec 27, 2020
Awaiting bors try build completion. |
bors
commented
Dec 27, 2020
⌛ Trying commit 7ad4bee45bbafeae6ea1350d427bd22610062ae2 with merge 7ea7454bf3e5d01fd6f85df9620da4191ef48eaa... |
Iterate on DefId for variances and generics. Split from rust-lang#80347
bors
commented
Mar 24, 2021
☔ The latest upstream changes (presumably #75384) made this pull request unmergeable. Please resolve the merge conflicts. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
crlf0710
commented
Apr 17, 2021
@cjgillot Ping from triage! There's merge conflicts now. |
jackh726
commented
Jun 1, 2021
@cjgillot What are the next steps here? Should I review this PR as-is? Or do you want to continue splitting this into separate PRs? |
crlf0710
commented
Jul 4, 2021
@cjgillot Ping from triage, any updates on this? |
camelid
commented
Aug 29, 2021
triage: @cjgillot What's the status of this? Does this PR need to be split up or do the merge conflicts just need to be fixed? |
Most of the work in metadata encoding consists in walking the HIR, and calling the different queries on each node.
This can be done by simply looping on all the DefIds, and invoking each query directly.
This requires to create non-panicking versions of some queries.
Papercuts:
fix polymorphize tests;def_kind,entry_kindandchildrentables.