26438b4738
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 #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). |
||
---|---|---|
.. | ||
dep_graph | ||
hir | ||
ich | ||
infer | ||
middle | ||
mir | ||
query | ||
traits | ||
ty | ||
util | ||
arena.rs | ||
lib.rs | ||
lint.rs | ||
macros.rs | ||
tests.rs |