Skip to content

Commit 4d282a3

Browse files
committed
Update upstream_monomorphizations and upstream_monomorphizations_for
1 parent b69b2a9 commit 4d282a3

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

src/librustc/arena.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ macro_rules! arena_types {
2222
[decode] mir_const_qualif: rustc_data_structures::bit_set::BitSet<rustc::mir::Local>,
2323
[decode] borrowck: rustc::middle::borrowck::BorrowCheckResult,
2424
[] trait_impls_of: rustc::ty::trait_def::TraitImpls,
25+
[few] upstream_monomorphizations:
26+
rustc::util::nodemap::DefIdMap<
27+
rustc_data_structures::fx::FxHashMap<
28+
rustc::ty::subst::SubstsRef<'tcx>,
29+
rustc::hir::def_id::CrateNum
30+
>
31+
>,
2532
], $tcx);
2633
)
2734
}

src/librustc/query/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -678,11 +678,11 @@ rustc_queries! {
678678
Codegen {
679679
query upstream_monomorphizations(
680680
k: CrateNum
681-
) -> Lrc<DefIdMap<Lrc<FxHashMap<SubstsRef<'tcx>, CrateNum>>>> {
681+
) -> &'tcx DefIdMap<FxHashMap<SubstsRef<'tcx>, CrateNum>> {
682682
desc { "collecting available upstream monomorphizations `{:?}`", k }
683683
}
684684
query upstream_monomorphizations_for(_: DefId)
685-
-> Option<Lrc<FxHashMap<SubstsRef<'tcx>, CrateNum>>> {}
685+
-> Option<&'tcx FxHashMap<SubstsRef<'tcx>, CrateNum>> {}
686686
}
687687

688688
Other {

src/librustc_codegen_ssa/back/symbol_export.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ fn exported_symbols_provider_local<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
282282
fn upstream_monomorphizations_provider<'a, 'tcx>(
283283
tcx: TyCtxt<'a, 'tcx, 'tcx>,
284284
cnum: CrateNum)
285-
-> Lrc<DefIdMap<Lrc<FxHashMap<SubstsRef<'tcx>, CrateNum>>>>
285+
-> &'tcx DefIdMap<FxHashMap<SubstsRef<'tcx>, CrateNum>>
286286
{
287287
debug_assert!(cnum == LOCAL_CRATE);
288288

@@ -326,20 +326,16 @@ fn upstream_monomorphizations_provider<'a, 'tcx>(
326326
}
327327
}
328328

329-
Lrc::new(instances.into_iter()
330-
.map(|(key, value)| (key, Lrc::new(value)))
331-
.collect())
329+
tcx.arena.alloc(instances)
332330
}
333331

334332
fn upstream_monomorphizations_for_provider<'a, 'tcx>(
335333
tcx: TyCtxt<'a, 'tcx, 'tcx>,
336334
def_id: DefId)
337-
-> Option<Lrc<FxHashMap<SubstsRef<'tcx>, CrateNum>>>
335+
-> Option<&'tcx FxHashMap<SubstsRef<'tcx>, CrateNum>>
338336
{
339337
debug_assert!(!def_id.is_local());
340-
tcx.upstream_monomorphizations(LOCAL_CRATE)
341-
.get(&def_id)
342-
.cloned()
338+
tcx.upstream_monomorphizations(LOCAL_CRATE).get(&def_id)
343339
}
344340

345341
fn is_unreachable_local_definition_provider(tcx: TyCtxt<'_, '_, '_>, def_id: DefId) -> bool {

0 commit comments

Comments
 (0)