Commit 26438b4
committed
Auto merge of rust-lang#78452 - cjgillot:ddk-struct, r=Mark-Simulacrum
Access query (DepKind) metadata through fields
This refactors the access to query definition metadata (attributes such as eval always, anon, has_params) and loading/forcing functions to generate a number of structs, instead of matching on the DepKind enum. This makes access to the fields cheaper to compile. Using a struct means that finding the metadata for a given query is just an offset away; previously the match may have been compiled to a jump table but likely not completely inlined as we expect here.
A previous attempt explored a similar strategy, but using trait objects in rust-lang#78314 that proved less effective, likely due to higher overheads due to forcing dynamic calls and poorer cache utilization (all metadata is fairly densely packed with this PR).File tree
6 files changed
+376
-317
lines changed- compiler
- rustc_middle/src
- dep_graph
- mir
- ty/query
- rustc_query_system/src/dep_graph
6 files changed
+376
-317
lines changed
0 commit comments