Skip to content

Commit 36d68f5

Browse files
authored
Rollup merge of rust-lang#57418 - lqd:collector_query, r=michaelwoerister
MetadataOnlyCodegenBackend: run the collector only once Use the `collect_and_partition_mono_items` query to avoid calling the collector directly twice. Fixes rust-lang#57406.
2 parents 0d883cb + e5318f3 commit 36d68f5

File tree

1 file changed

+3
-14
lines changed

1 file changed

+3
-14
lines changed

src/librustc_codegen_utils/codegen_backend.rs

+3-14
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ use rustc::middle::cstore::EncodedMetadata;
3131
use rustc::middle::cstore::MetadataLoader;
3232
use rustc::dep_graph::DepGraph;
3333
use rustc_target::spec::Target;
34-
use rustc_mir::monomorphize::collector;
3534
use link::out_filename;
3635

3736
pub use rustc_data_structures::sync::MetadataRef;
@@ -136,25 +135,15 @@ impl CodegenBackend for MetadataOnlyCodegenBackend {
136135
::symbol_names_test::report_symbol_names(tcx);
137136
::rustc_incremental::assert_dep_graph(tcx);
138137
::rustc_incremental::assert_module_sources::assert_module_sources(tcx);
139-
::rustc_mir::monomorphize::assert_symbols_are_distinct(tcx,
140-
collector::collect_crate_mono_items(
141-
tcx,
142-
collector::MonoItemCollectionMode::Eager
143-
).0.iter()
144-
);
145138
// FIXME: Fix this
146139
// ::rustc::middle::dependency_format::calculate(tcx);
147140
let _ = tcx.link_args(LOCAL_CRATE);
148141
let _ = tcx.native_libraries(LOCAL_CRATE);
149-
for mono_item in
150-
collector::collect_crate_mono_items(
151-
tcx,
152-
collector::MonoItemCollectionMode::Eager
153-
).0 {
142+
let (_, cgus) = tcx.collect_and_partition_mono_items(LOCAL_CRATE);
143+
for (mono_item, _) in cgus.iter().flat_map(|cgu| cgu.items().iter()) {
154144
if let MonoItem::Fn(inst) = mono_item {
155145
let def_id = inst.def_id();
156-
if def_id.is_local() {
157-
let _ = inst.def.is_inline(tcx);
146+
if def_id.is_local() {
158147
let _ = tcx.codegen_fn_attrs(def_id);
159148
}
160149
}

0 commit comments

Comments
 (0)