rust/compiler/rustc_data_structures/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
..
base_n Stabilize the size of incr comp object file names 2024-04-22 10:50:07 -04:00
binary_search_util Remove invariant comments 2023-11-05 17:35:37 -06:00
fingerprint remove redundant imports 2023-12-10 10:56:22 +08:00
flock Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
graph Replace an FTP link in comments with an equivalent HTTPS link 2024-10-24 17:02:11 +11:00
intern remove redundant imports 2023-12-10 10:56:22 +08:00
obligation_forest Swap PredicateObligation to ThinVec 2024-10-12 15:17:16 +01:00
owned_slice Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
profiling Don't use serde_json to serialize a simple JSON object 2023-04-16 15:00:06 +02:00
small_c_str Fix SmallCStr conversion from CStr 2024-02-14 18:40:53 -08:00
snapshot_map Reformat use declarations. 2024-07-29 08:26:52 +10:00
sorted_map Reformat use declarations. 2024-07-29 08:26:52 +10:00
sso Reformat use declarations. 2024-07-29 08:26:52 +10:00
stable_hasher Use uplifted rustc-stable-hash crate in rustc_data_structures 2024-07-11 16:51:16 +02:00
sync Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
tagged_ptr Reformat use declarations. 2024-07-29 08:26:52 +10:00
transitive_relation get rid of RefCell in TransitiveRelation 2022-08-22 18:08:46 +08:00
vec_cache Improve VecCache under parallel frontend 2024-11-15 18:20:32 -05:00
aligned.rs fix broken intradoclinks 2023-04-14 13:04:58 +00:00
atomic_ref.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
base_n.rs chore: Fix typos in 'compiler' (batch 1) 2024-09-02 07:42:38 +02:00
captures.rs Remove #[allow(unused_lifetimes)] which is now unnecessary 2021-06-17 08:56:54 +09:00
fingerprint.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
flat_map_in_place.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
flock.rs Use Linux file locking on Redox 2024-06-16 12:56:50 +00:00
frozen.rs Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
fx.rs rustc_mir_transform: Make DestinationPropagation stable for queries 2024-01-05 20:55:32 +01:00
hashes.rs chore: Fix typos in 'compiler' (batch 1) 2024-09-02 07:42:38 +02:00
intern.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
jobserver.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
lib.rs Auto merge of #124780 - Mark-Simulacrum:lockless-cache, r=lcnr 2024-11-19 02:07:48 +00:00
marker.rs Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
memmap.rs Issue 122262: MAP_PRIVATE for more reliability on virtualised filesystems. 2024-03-15 18:31:07 -04:00
owned_slice.rs Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
packed.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
profiling.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
sharded.rs Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
small_c_str.rs Fix SmallCStr conversion from CStr 2024-02-14 18:40:53 -08:00
sorted_map.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
stable_hasher.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
stack.rs format 2024-10-01 17:21:56 -04:00
steal.rs update bootstrap configs 2024-10-15 20:30:23 -07:00
svh.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
sync.rs Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
tagged_ptr.rs Simplify bits_for_tags impl 2023-04-20 19:54:10 +00:00
temp_dir.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
thinvec.rs Add ExtractIf for ThinVec 2024-10-12 15:17:03 +01:00
transitive_relation.rs Use more slice patterns inside the compiler 2024-08-07 13:37:52 +02:00
unhash.rs Handle clippy cases of rustc::potential_query_instability lint 2024-10-05 07:34:14 +03:00
unord.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
vec_cache.rs Improve VecCache under parallel frontend 2024-11-15 18:20:32 -05:00
work_queue.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00