Mark Rousskov
37849643c6
Cache local DefId-keyed queries without hashing
...
Foreign maps are used to cache external DefIds, typically backed by
metadata decoding. In the future we might skip caching `V` there (since
loading from metadata usually is already cheap enough), but for now this
cuts down on the impact to memory usage and time to None-init a bunch of
memory. Foreign data is usually much sparser, since we're not usually
loading *all* entries from the foreign crate(s).
2024-01-15 17:16:45 -05:00
John Kåre Alsaker
8fc160b742
Add optimized lock methods for Sharded
2023-09-08 08:48:44 +02:00
John Kåre Alsaker
90f5f94699
Use OnceLock
for SingleCache
2023-09-01 03:11:51 +02:00
John Kåre Alsaker
f458b112f8
Optimize lock_shards
2023-08-24 23:29:48 +02:00
John Kåre Alsaker
a4e55f140b
Remove conditional use of Sharded
from query caches
2023-08-16 14:16:05 +02:00
Maybe Waffle
e496fbec92
Split {Idx, IndexVec, IndexSlice}
into their own modules
2023-04-24 13:53:35 +00:00
Nilstrieb
81c320ea77
Fix some clippy::complexity
2023-04-09 23:22:14 +02:00
John Kåre Alsaker
36b4199a8e
Don't rely on Debug
impl for Erased
2023-04-06 08:25:53 +02:00
Nicholas Nethercote
08dec8969f
Remove an out-of-date comment on QueryCache::lookup
.
2023-03-30 21:14:43 +11:00
John Kåre Alsaker
3fd7c4a17d
Make rustc_query_system
take QueryConfig
by instance.
2023-02-26 23:35:47 +01:00
John Kåre Alsaker
056c5b3b57
Make query keys Copy
2023-02-21 22:15:46 +01:00
John Kåre Alsaker
a51a20531d
Factor query arena allocation out from query caches
2023-02-16 14:54:53 +01:00
Matthias Krüger
e087f61075
don't clone types that are copy
2023-02-15 23:34:25 +01:00
John Kåre Alsaker
80d265240b
Create a single value cache for the () query key
2023-02-11 23:38:01 +01:00
John Kåre Alsaker
d459840633
Remove QueryStorage::store_nocache
2023-02-07 17:36:01 +01:00
Camille GILLOT
128f2224af
Remove OnHit
callback from query caches.
...
This is not useful now that query results are `Copy`.
2023-02-04 15:21:21 +00:00
Maybe Waffle
6a28fb42a8
Remove double spaces after dots in comments
2023-01-17 08:09:33 +00:00
KaDiWa
9bc69925cb
compiler: remove unnecessary imports and qualified paths
2022-12-10 18:45:34 +01:00
Camille GILLOT
ca42dd6716
Sanity check fingerprints in the dep-graph.
2022-11-29 18:39:03 +00:00
Camille GILLOT
bc9a202a22
Use Key impl to select cache.
2022-11-01 17:07:55 +00:00
Camille GILLOT
15d2f62bd2
Use VecCache for LocalDefId.
2022-11-01 17:02:51 +00:00
Camille GILLOT
aee4d132e7
Remove CacheSelector.
2022-11-01 17:02:51 +00:00
Mark Rousskov
41f124c824
Avoid sharding query caches entirely in single-threaded mode
2022-02-20 14:57:34 -05:00
Mark Rousskov
75ef068920
Delete QueryLookup
...
This was largely just caching the shard value at this point, which is not
particularly useful -- in the use sites the key was being hashed nearby anyway.
2022-02-20 12:11:28 -05:00
Mark Rousskov
9deed6f74e
Move Sharded maps into each QueryCache impl
2022-02-20 12:10:46 -05:00
Mark Rousskov
981135ae8e
Streamline try_start code
...
This shifts some branches around and avoids interleaving parallel and
non-parallel versions of the function too much.
2021-05-02 12:25:48 -04:00
Mark Rousskov
a1d7367429
Move iter_results to dyn FnMut rather than a generic
...
This means that we're no longer generating the iteration/locking code for each
invocation site of iter_results, rather just once per query.
This is a 15% win in instruction counts when compiling the rustc_query_impl crate.
2021-04-29 17:26:46 -04:00
Tyson Nottingham
adcbe49b16
rustc_query_system: simplify QueryCache::iter
...
Minor cleanup to reduce a small amount of complexity and code bloat.
Reduces the number of mono items in rustc_query_impl by 15%.
2021-03-12 17:34:14 -08:00
Camille GILLOT
280a2866d5
Drop the cache lock earlier.
2021-02-13 21:14:58 +01:00
Camille GILLOT
15b0bc6b83
Separate the query cache from the query state.
2021-02-13 21:14:58 +01:00
Camille GILLOT
9f46259a75
Return a Result for query cache.
2021-02-13 21:14:58 +01:00
Aaron Hill
6417760632
Run fmt
2021-01-16 17:53:02 -05:00
Aaron Hill
7afb32557d
Enforce that query results implement Debug
2021-01-16 17:53:02 -05:00
Julian Wollersberger
52cedcab92
Remove <CTX: QueryContext> in a bunch of places.
...
It was only needed by `find_cycle_in_stack()` in job.rs, but needed to be forwarded through dozens of types.
2020-10-19 11:11:09 +02:00
mark
9e5f7d5631
mv compiler to compiler/
2020-08-30 18:45:07 +03:00