@@ -72,9 +72,7 @@ fn run_jit(tcx: TyCtxt<'_>) -> ! {
72
72
. iter ( )
73
73
. map ( |cgu| cgu. items_in_deterministic_order ( tcx) . into_iter ( ) )
74
74
. flatten ( )
75
- . collect :: < FxHashMap < _ , ( _ , _ ) > > ( )
76
- . into_iter ( )
77
- . collect :: < Vec < ( _ , ( _ , _ ) ) > > ( ) ;
75
+ . collect :: < FxHashMap < _ , ( _ , _ ) > > ( ) ;
78
76
79
77
time ( tcx. sess , "codegen mono items" , || {
80
78
codegen_mono_items ( tcx, & mut jit_module, None , mono_items) ;
@@ -210,35 +208,36 @@ fn run_aot(
210
208
} ;
211
209
212
210
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 < _ , ( _ , _ ) > > ( ) ;
213
216
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 ( ) ) ;
229
218
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
+ } ;
232
228
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) ;
241
231
} ) ;
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
+ ) ] ;
242
241
243
242
tcx. sess . abort_if_errors ( ) ;
244
243
@@ -311,12 +310,12 @@ fn codegen_mono_items<'tcx>(
311
310
tcx : TyCtxt < ' tcx > ,
312
311
module : & mut Module < impl Backend + ' static > ,
313
312
debug_context : Option < & mut DebugContext < ' tcx > > ,
314
- mono_items : Vec < ( MonoItem < ' tcx > , ( RLinkage , Visibility ) ) > ,
313
+ mono_items : FxHashMap < MonoItem < ' tcx > , ( RLinkage , Visibility ) > ,
315
314
) {
316
315
let mut cx = CodegenCx :: new ( tcx, module, debug_context) ;
317
316
318
317
tcx. sess . time ( "predefine functions" , || {
319
- for & ( mono_item, ( linkage, visibility) ) in & mono_items {
318
+ for ( & mono_item, & ( linkage, visibility) ) in & mono_items {
320
319
match mono_item {
321
320
MonoItem :: Fn ( instance) => {
322
321
let ( name, sig) =
0 commit comments