rust/compiler/rustc_query_system/src
bors 5926e82dd1 Auto merge of #124780 - Mark-Simulacrum:lockless-cache, r=lcnr
Improve VecCache under parallel frontend

This replaces the single Vec allocation with a series of progressively larger buckets. With the cfg for parallel enabled but with -Zthreads=1, this looks like a slight regression in i-count and cycle counts (~1%).

With the parallel frontend at -Zthreads=4, this is an improvement (-5% wall-time from 5.788 to 5.4688 on libcore) than our current Lock-based approach, likely due to reducing the bouncing of the cache line holding the lock. At -Zthreads=32 it's a huge improvement (-46%: 8.829 -> 4.7319 seconds).

try-job: i686-gnu-nopt
try-job: dist-x86_64-linux
2024-11-19 02:07:48 +00:00
..
dep_graph Auto merge of #132282 - Noratrieb:it-is-the-end-of-serial, r=cjgillot 2024-11-12 15:14:56 +00:00
ich Introduce Enabled{Lang,Lib}Feature 2024-10-25 10:30:37 +08:00
query Auto merge of #124780 - Mark-Simulacrum:lockless-cache, r=lcnr 2024-11-19 02:07:48 +00:00
cache.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
error.rs Add warn(unreachable_pub) to rustc_query_system. 2024-08-29 20:18:44 +10:00
lib.rs Improve VecCache under parallel frontend 2024-11-15 18:20:32 -05:00
values.rs Value recovery can take the whole CycleError 2024-01-08 20:30:10 +00:00