From 852dea89b2289fe101f2bbd807c0abdd09902e08 Mon Sep 17 00:00:00 2001 From: Alik Aslanyan Date: Tue, 21 Dec 2021 22:31:23 +0400 Subject: [PATCH] Remove ArenaCacheSelector for visible_parent_map query. 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 | 3 +-- 2 files changed, 2 insertions(+), 3 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..81602dc9d61c4 100644 --- a/compiler/rustc_middle/src/query/mod.rs +++ b/compiler/rustc_middle/src/query/mod.rs @@ -1552,8 +1552,7 @@ rustc_queries! { desc { "calculating the missing lang items in a crate" } separate_provide_extern } - query visible_parent_map(_: ()) -> DefIdMap { - storage(ArenaCacheSelector<'tcx>) + query visible_parent_map(_: ()) -> Lrc> { desc { "calculating the visible parent map" } } query trimmed_def_paths(_: ()) -> FxHashMap {