diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2024-05-05 19:57:24 -0400 |
|---|---|---|
| committer | Mark Rousskov <mark.simulacrum@gmail.com> | 2024-11-15 18:20:32 -0500 |
| commit | da58efb11df229eac6eb727c2884546310f9ffde (patch) | |
| tree | 91897cf85ecde09693842fad8144b6059614c2dc /compiler/rustc_query_system/src/lib.rs | |
| parent | b73478b6ee1ed915ac3727da02d4675835588538 (diff) | |
| download | rust-da58efb11df229eac6eb727c2884546310f9ffde.tar.gz rust-da58efb11df229eac6eb727c2884546310f9ffde.zip | |
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 (<0.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).
Diffstat (limited to 'compiler/rustc_query_system/src/lib.rs')
| -rw-r--r-- | compiler/rustc_query_system/src/lib.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_query_system/src/lib.rs b/compiler/rustc_query_system/src/lib.rs index ba7a631fb54..a85e8a55a21 100644 --- a/compiler/rustc_query_system/src/lib.rs +++ b/compiler/rustc_query_system/src/lib.rs @@ -2,6 +2,7 @@ #![allow(rustc::potential_query_instability, internal_features)] #![feature(assert_matches)] #![feature(core_intrinsics)] +#![feature(dropck_eyepatch)] #![feature(hash_raw_entry)] #![feature(let_chains)] #![feature(min_specialization)] |
