From d3ec14bbec7d3647a3c1a3bfdf2cafb0f72bf937 Mon Sep 17 00:00:00 2001 From: John Kåre Alsaker Date: Fri, 11 Apr 2025 21:27:53 +0200 Subject: Use thread local dep graph encoding --- compiler/rustc_data_structures/src/sync/parallel.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'compiler/rustc_data_structures/src/sync') diff --git a/compiler/rustc_data_structures/src/sync/parallel.rs b/compiler/rustc_data_structures/src/sync/parallel.rs index 64db39cc4c6..ab65c7f3a6b 100644 --- a/compiler/rustc_data_structures/src/sync/parallel.rs +++ b/compiler/rustc_data_structures/src/sync/parallel.rs @@ -237,3 +237,13 @@ pub fn par_map, R: DynSend, C: FromIterato } }) } + +pub fn broadcast(op: impl Fn(usize) -> R + DynSync) -> Vec { + if mode::is_dyn_thread_safe() { + let op = FromDyn::from(op); + let results = rayon_core::broadcast(|context| op.derive(op(context.index()))); + results.into_iter().map(|r| r.into_inner()).collect() + } else { + vec![op(0)] + } +} -- cgit 1.4.1-3-g733a5