Skip to content

Commit e05cd15

Browse files
committed
Move lowering to create_global_ctxt.
1 parent b80f720 commit e05cd15

File tree

2 files changed

+16
-24
lines changed

2 files changed

+16
-24
lines changed

compiler/rustc_interface/src/passes.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -458,15 +458,9 @@ pub fn lower_to_hir<'res, 'tcx>(
458458
sess: &'tcx Session,
459459
lint_store: &LintStore,
460460
resolver: &'res mut Resolver<'_>,
461-
dep_graph: &'res DepGraph,
462461
krate: &'res ast::Crate,
463462
arena: &'tcx rustc_ast_lowering::Arena<'tcx>,
464463
) -> Crate<'tcx> {
465-
// We're constructing the HIR here; we don't care what we will
466-
// read, since we haven't even constructed the *input* to
467-
// incr. comp. yet.
468-
dep_graph.assert_ignored();
469-
470464
// Lower AST to HIR.
471465
let hir_crate = rustc_ast_lowering::lower_crate(
472466
sess,
@@ -783,17 +777,27 @@ impl<'tcx> QueryContext<'tcx> {
783777
pub fn create_global_ctxt<'tcx>(
784778
compiler: &'tcx Compiler,
785779
lint_store: Lrc<LintStore>,
786-
krate: &'tcx Crate<'tcx>,
780+
krate: &ast::Crate,
787781
dep_graph: DepGraph,
788-
resolver_outputs: ResolverOutputs,
782+
resolver: Rc<RefCell<BoxedResolver>>,
789783
outputs: OutputFilenames,
790784
crate_name: &str,
791785
queries: &'tcx OnceCell<TcxQueries<'tcx>>,
792786
global_ctxt: &'tcx OnceCell<GlobalCtxt<'tcx>>,
793787
arena: &'tcx WorkerLocal<Arena<'tcx>>,
788+
hir_arena: &'tcx WorkerLocal<rustc_ast_lowering::Arena<'tcx>>,
794789
) -> QueryContext<'tcx> {
790+
// We're constructing the HIR here; we don't care what we will
791+
// read, since we haven't even constructed the *input* to
792+
// incr. comp. yet.
793+
dep_graph.assert_ignored();
794+
795795
let sess = &compiler.session();
796-
let _timer = sess.timer("create_global_ctxt");
796+
let krate = resolver
797+
.borrow_mut()
798+
.access(|resolver| lower_to_hir(sess, &lint_store, resolver, krate, hir_arena));
799+
let krate = &*hir_arena.alloc(krate);
800+
let resolver_outputs = BoxedResolver::to_resolver_outputs(resolver);
797801

798802
let query_result_on_disk_cache = rustc_incremental::load_query_result_cache(sess);
799803

@@ -812,7 +816,7 @@ pub fn create_global_ctxt<'tcx>(
812816
let queries = queries.get_or_init(|| TcxQueries::new(local_providers, extern_providers));
813817

814818
let gcx = sess.time("setup_global_ctxt", || {
815-
global_ctxt.get_or_init(|| {
819+
global_ctxt.get_or_init(move || {
816820
TyCtxt::create_global_ctxt(
817821
sess,
818822
lint_store,

compiler/rustc_interface/src/queries.rs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -224,31 +224,19 @@ impl<'tcx> Queries<'tcx> {
224224
let crate_name = self.crate_name()?.peek().clone();
225225
let outputs = self.prepare_outputs()?.peek().clone();
226226
let (ref krate, ref resolver, ref lint_store) = &*self.expansion()?.peek();
227-
let resolver = resolver.steal();
228227
let dep_graph = self.dep_graph()?.peek().clone();
229-
let krate = resolver.borrow_mut().access(|resolver| {
230-
Ok(passes::lower_to_hir(
231-
self.session(),
232-
lint_store,
233-
resolver,
234-
&dep_graph,
235-
&krate,
236-
&self.hir_arena,
237-
))
238-
})?;
239-
let krate = self.hir_arena.alloc(krate);
240-
let resolver_outputs = Steal::new(BoxedResolver::to_resolver_outputs(resolver));
241228
Ok(passes::create_global_ctxt(
242229
self.compiler,
243230
lint_store.clone(),
244231
krate,
245232
dep_graph,
246-
resolver_outputs.steal(),
233+
resolver.steal(),
247234
outputs,
248235
&crate_name,
249236
&self.queries,
250237
&self.gcx,
251238
&self.arena,
239+
&self.hir_arena,
252240
))
253241
})
254242
}

0 commit comments

Comments
 (0)