Skip to content

Commit 6a90b68

Browse files
committed
Revert "Use multiple codegen units"
This reverts commit 03acf67.
1 parent 63f2239 commit 6a90b68

File tree

1 file changed

+29
-30
lines changed

1 file changed

+29
-30
lines changed

src/driver.rs

+29-30
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ fn run_jit(tcx: TyCtxt<'_>) -> ! {
7272
.iter()
7373
.map(|cgu| cgu.items_in_deterministic_order(tcx).into_iter())
7474
.flatten()
75-
.collect::<FxHashMap<_, (_, _)>>()
76-
.into_iter()
77-
.collect::<Vec<(_, (_, _))>>();
75+
.collect::<FxHashMap<_, (_, _)>>();
7876

7977
time(tcx.sess, "codegen mono items", || {
8078
codegen_mono_items(tcx, &mut jit_module, None, mono_items);
@@ -210,35 +208,36 @@ fn run_aot(
210208
};
211209

212210
let (_, cgus) = tcx.collect_and_partition_mono_items(LOCAL_CRATE);
211+
let mono_items = cgus
212+
.iter()
213+
.map(|cgu| cgu.items_in_deterministic_order(tcx).into_iter())
214+
.flatten()
215+
.collect::<FxHashMap<_, (_, _)>>();
213216

214-
let modules = time(tcx.sess, "codegen mono items", move || {
215-
cgus.iter().map(|cgu| {
216-
let mono_items = cgu.items_in_deterministic_order(tcx);
217-
218-
let mut module = new_module(cgu.name().as_str().to_string());
219-
220-
let mut debug = if tcx.sess.opts.debuginfo != DebugInfo::None {
221-
let debug = DebugContext::new(
222-
tcx,
223-
module.target_config().pointer_type().bytes() as u8,
224-
);
225-
Some(debug)
226-
} else {
227-
None
228-
};
217+
let mut module = new_module("some_file".to_string());
229218

230-
codegen_mono_items(tcx, &mut module, debug.as_mut(), mono_items);
231-
crate::main_shim::maybe_create_entry_wrapper(tcx, &mut module);
219+
let mut debug = if tcx.sess.opts.debuginfo != DebugInfo::None {
220+
let debug = DebugContext::new(
221+
tcx,
222+
module.target_config().pointer_type().bytes() as u8,
223+
);
224+
Some(debug)
225+
} else {
226+
None
227+
};
232228

233-
emit_module(
234-
tcx,
235-
cgu.name().as_str().to_string(),
236-
ModuleKind::Regular,
237-
module,
238-
debug,
239-
)
240-
}).collect::<Vec<_>>()
229+
time(tcx.sess, "codegen mono items", || {
230+
codegen_mono_items(tcx, &mut module, debug.as_mut(), mono_items);
241231
});
232+
crate::main_shim::maybe_create_entry_wrapper(tcx, &mut module);
233+
234+
let modules = vec![emit_module(
235+
tcx,
236+
"some_file".to_string(),
237+
ModuleKind::Regular,
238+
module,
239+
debug,
240+
)];
242241

243242
tcx.sess.abort_if_errors();
244243

@@ -311,12 +310,12 @@ fn codegen_mono_items<'tcx>(
311310
tcx: TyCtxt<'tcx>,
312311
module: &mut Module<impl Backend + 'static>,
313312
debug_context: Option<&mut DebugContext<'tcx>>,
314-
mono_items: Vec<(MonoItem<'tcx>, (RLinkage, Visibility))>,
313+
mono_items: FxHashMap<MonoItem<'tcx>, (RLinkage, Visibility)>,
315314
) {
316315
let mut cx = CodegenCx::new(tcx, module, debug_context);
317316

318317
tcx.sess.time("predefine functions", || {
319-
for &(mono_item, (linkage, visibility)) in &mono_items {
318+
for (&mono_item, &(linkage, visibility)) in &mono_items {
320319
match mono_item {
321320
MonoItem::Fn(instance) => {
322321
let (name, sig) =

0 commit comments

Comments
 (0)