Skip to content

Commit 6674519

Browse files
committed
Run HIR indexing and loading of query results in parallel
1 parent 4cea70f commit 6674519

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/librustc_interface/passes.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use rustc_builtin_macros;
2121
use rustc_codegen_ssa::back::link::emit_metadata;
2222
use rustc_codegen_utils::codegen_backend::CodegenBackend;
2323
use rustc_codegen_utils::link::filename_for_metadata;
24-
use rustc_data_structures::sync::{par_for_each, Lrc, Once, WorkerLocal};
24+
use rustc_data_structures::sync::{join, par_for_each, Lrc, Once, WorkerLocal};
2525
use rustc_data_structures::{box_region_allow_access, declare_box_region_type, parallel};
2626
use rustc_errors::PResult;
2727
use rustc_expand::base::ExtCtxt;
@@ -721,10 +721,13 @@ pub fn create_global_ctxt<'tcx>(
721721
let sess = &compiler.session();
722722
let defs = mem::take(&mut resolver_outputs.definitions);
723723

724-
// Construct the HIR map.
725-
let hir_map = map::map_crate(sess, &*resolver_outputs.cstore, &hir_forest, defs);
726-
727-
let query_result_on_disk_cache = rustc_incremental::load_query_result_cache(sess);
724+
let (query_result_on_disk_cache, hir_map) = join(
725+
|| rustc_incremental::load_query_result_cache(sess),
726+
|| {
727+
// Construct the HIR map.
728+
map::map_crate(sess, &*resolver_outputs.cstore, &hir_forest, defs)
729+
},
730+
);
728731

729732
let codegen_backend = compiler.codegen_backend();
730733
let mut local_providers = ty::query::Providers::default();

0 commit comments

Comments
 (0)