Move local Arena to Queries.

This commit is contained in:
Camille GILLOT
2019-11-26 23:16:48 +01:00
parent 7b71e9a9df
commit 7e72b36299
3 changed files with 13 additions and 4 deletions
+3 -2
View File
@@ -995,7 +995,7 @@ fn deref(&self) -> &Self::Target {
}
pub struct GlobalCtxt<'tcx> {
pub arena: WorkerLocal<Arena<'tcx>>,
pub arena: &'tcx WorkerLocal<Arena<'tcx>>,
interners: CtxtInterners<'tcx>,
@@ -1170,6 +1170,7 @@ pub fn create_global_ctxt(
local_providers: ty::query::Providers<'tcx>,
extern_providers: ty::query::Providers<'tcx>,
arenas: &'tcx AllArenas,
local_arena: &'tcx WorkerLocal<Arena<'tcx>>,
resolutions: ty::ResolverOutputs,
hir: hir_map::Map<'tcx>,
on_disk_query_result_cache: query::OnDiskCache<'tcx>,
@@ -1225,7 +1226,7 @@ pub fn create_global_ctxt(
sess: s,
lint_store,
cstore,
arena: WorkerLocal::new(|_| Arena::default()),
arena: local_arena,
interners,
dep_graph,
prof: s.prof.clone(),
+4 -1
View File
@@ -3,6 +3,7 @@
use crate::proc_macro_decls;
use log::{info, warn, log_enabled};
use rustc::arena::Arena;
use rustc::dep_graph::DepGraph;
use rustc::hir;
use rustc::hir::lowering::lower_crate;
@@ -22,7 +23,7 @@
use rustc_codegen_utils::codegen_backend::CodegenBackend;
use rustc_codegen_utils::link::filename_for_metadata;
use rustc_data_structures::{box_region_allow_access, declare_box_region_type, parallel};
use rustc_data_structures::sync::{Lrc, Once, ParallelIterator, par_iter};
use rustc_data_structures::sync::{Lrc, Once, ParallelIterator, par_iter, WorkerLocal};
use rustc_errors::PResult;
use rustc_incremental;
use rustc_metadata::cstore;
@@ -764,6 +765,7 @@ pub fn create_global_ctxt<'gcx>(
crate_name: &str,
global_ctxt: &'gcx Once<GlobalCtxt<'gcx>>,
arenas: &'gcx Once<AllArenas>,
local_arena: &'gcx WorkerLocal<Arena<'gcx>>,
) -> BoxedGlobalCtxt<'gcx> {
let sess = &compiler.session();
let defs = mem::take(&mut resolver_outputs.definitions);
@@ -798,6 +800,7 @@ pub fn create_global_ctxt<'gcx>(
local_providers,
extern_providers,
&arenas,
local_arena,
resolver_outputs,
hir_map,
query_result_on_disk_cache,
+6 -1
View File
@@ -2,10 +2,11 @@
use crate::passes::{self, BoxedResolver, BoxedGlobalCtxt};
use rustc_incremental::DepGraphFuture;
use rustc_data_structures::sync::{Lrc, Once};
use rustc_data_structures::sync::{Lrc, Once, WorkerLocal};
use rustc_codegen_utils::codegen_backend::CodegenBackend;
use rustc::session::config::{OutputFilenames, OutputType};
use rustc::util::common::{time, ErrorReported};
use rustc::arena::Arena;
use rustc::hir;
use rustc::lint;
use rustc::session::Session;
@@ -74,6 +75,8 @@ pub struct Queries<'comp> {
arenas: Once<AllArenas>,
forest: Once<hir::map::Forest>,
local_arena: WorkerLocal<Arena<'comp>>,
dep_graph_future: Query<Option<DepGraphFuture>>,
parse: Query<ast::Crate>,
crate_name: Query<String>,
@@ -93,6 +96,7 @@ pub fn new(compiler: &'comp Compiler) -> Queries<'comp> {
gcx: Once::new(),
arenas: Once::new(),
forest: Once::new(),
local_arena: WorkerLocal::new(|_| Arena::default()),
dep_graph_future: Default::default(),
parse: Default::default(),
crate_name: Default::default(),
@@ -265,6 +269,7 @@ pub fn global_ctxt(&'comp self) -> Result<&Query<BoxedGlobalCtxt<'comp>>> {
&crate_name,
&self.gcx,
&self.arenas,
&self.local_arena,
))
})
}