From 139e94642499deb8c64a60b5caff03c016c9b624 Mon Sep 17 00:00:00 2001 From: Alik Aslanyan Date: Tue, 21 Dec 2021 22:31:23 +0400 Subject: [PATCH] Optimize visible_parent_map to use LRC to prevent unnecessary cloning --- compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs | 2 +- compiler/rustc_middle/src/query/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs b/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs index 4e5d21049a0d9..3f3b83cf79571 100644 --- a/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs +++ b/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs @@ -360,7 +360,7 @@ pub fn provide(providers: &mut Providers) { visible_parent_map.entry(child).or_insert(parent); } - visible_parent_map + Lrc::new(visible_parent_map) }, dependency_formats: |tcx, ()| Lrc::new(crate::dependency_format::calculate(tcx)), diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs index ad3f61d07843a..d134445b82752 100644 --- a/compiler/rustc_middle/src/query/mod.rs +++ b/compiler/rustc_middle/src/query/mod.rs @@ -1552,7 +1552,7 @@ rustc_queries! { desc { "calculating the missing lang items in a crate" } separate_provide_extern } - query visible_parent_map(_: ()) -> DefIdMap { + query visible_parent_map(_: ()) -> Lrc> { storage(ArenaCacheSelector<'tcx>) desc { "calculating the visible parent map" } }