@@ -272,80 +272,97 @@ fn module_codegen(
272272 ConcurrencyLimiterToken ,
273273 ) ,
274274) -> OngoingModuleCodegen {
275- let ( cgu_name, mut cx, mut module, codegened_functions) = tcx. sess . time ( "codegen cgu" , || {
276- let cgu = tcx. codegen_unit ( cgu_name) ;
277- let mono_items = cgu. items_in_deterministic_order ( tcx) ;
278-
279- let mut module = make_module ( tcx. sess , & backend_config, cgu_name. as_str ( ) . to_string ( ) ) ;
280-
281- let mut cx = crate :: CodegenCx :: new (
282- tcx,
283- backend_config. clone ( ) ,
284- module. isa ( ) ,
285- tcx. sess . opts . debuginfo != DebugInfo :: None ,
286- cgu_name,
287- ) ;
288- super :: predefine_mono_items ( tcx, & mut module, & mono_items) ;
289- let mut codegened_functions = vec ! [ ] ;
290- for ( mono_item, _) in mono_items {
291- match mono_item {
292- MonoItem :: Fn ( inst) => {
293- tcx. sess . time ( "codegen fn" , || {
294- let codegened_function = crate :: base:: codegen_fn (
275+ let ( cgu_name, mut cx, mut module, codegened_functions) =
276+ tcx. prof . verbose_generic_activity_with_arg ( "codegen cgu" , cgu_name. as_str ( ) ) . run ( || {
277+ let cgu = tcx. codegen_unit ( cgu_name) ;
278+ let mono_items = cgu. items_in_deterministic_order ( tcx) ;
279+
280+ let mut module = make_module ( tcx. sess , & backend_config, cgu_name. as_str ( ) . to_string ( ) ) ;
281+
282+ let mut cx = crate :: CodegenCx :: new (
283+ tcx,
284+ backend_config. clone ( ) ,
285+ module. isa ( ) ,
286+ tcx. sess . opts . debuginfo != DebugInfo :: None ,
287+ cgu_name,
288+ ) ;
289+ super :: predefine_mono_items ( tcx, & mut module, & mono_items) ;
290+ let mut codegened_functions = vec ! [ ] ;
291+ for ( mono_item, _) in mono_items {
292+ match mono_item {
293+ MonoItem :: Fn ( inst) => {
294+ tcx. prof . generic_activity ( "codegen fn" ) . run ( || {
295+ let codegened_function = crate :: base:: codegen_fn (
296+ tcx,
297+ & mut cx,
298+ Function :: new ( ) ,
299+ & mut module,
300+ inst,
301+ ) ;
302+ codegened_functions. push ( codegened_function) ;
303+ } ) ;
304+ }
305+ MonoItem :: Static ( def_id) => {
306+ crate :: constant:: codegen_static ( tcx, & mut module, def_id)
307+ }
308+ MonoItem :: GlobalAsm ( item_id) => {
309+ crate :: global_asm:: codegen_global_asm_item (
295310 tcx,
296- & mut cx,
297- Function :: new ( ) ,
298- & mut module,
299- inst,
311+ & mut cx. global_asm ,
312+ item_id,
300313 ) ;
301- codegened_functions. push ( codegened_function) ;
302- } ) ;
303- }
304- MonoItem :: Static ( def_id) => {
305- crate :: constant:: codegen_static ( tcx, & mut module, def_id)
306- }
307- MonoItem :: GlobalAsm ( item_id) => {
308- crate :: global_asm:: codegen_global_asm_item ( tcx, & mut cx. global_asm , item_id) ;
314+ }
309315 }
310316 }
311- }
312- crate :: main_shim:: maybe_create_entry_wrapper (
313- tcx,
314- & mut module,
315- & mut cx. unwind_context ,
316- false ,
317- cgu. is_primary ( ) ,
318- ) ;
317+ crate :: main_shim:: maybe_create_entry_wrapper (
318+ tcx,
319+ & mut module,
320+ & mut cx. unwind_context ,
321+ false ,
322+ cgu. is_primary ( ) ,
323+ ) ;
319324
320- let cgu_name = cgu. name ( ) . as_str ( ) . to_owned ( ) ;
325+ let cgu_name = cgu. name ( ) . as_str ( ) . to_owned ( ) ;
321326
322- ( cgu_name, cx, module, codegened_functions)
323- } ) ;
327+ ( cgu_name, cx, module, codegened_functions)
328+ } ) ;
324329
325330 OngoingModuleCodegen :: Async ( std:: thread:: spawn ( move || {
326- cx. profiler . clone ( ) . verbose_generic_activity ( "compile functions" ) . run ( || {
327- let mut cached_context = Context :: new ( ) ;
328- for codegened_func in codegened_functions {
329- crate :: base:: compile_fn ( & mut cx, & mut cached_context, & mut module, codegened_func) ;
330- }
331- } ) ;
331+ cx. profiler . clone ( ) . verbose_generic_activity_with_arg ( "compile functions" , & * cgu_name) . run (
332+ || {
333+ let mut cached_context = Context :: new ( ) ;
334+ for codegened_func in codegened_functions {
335+ crate :: base:: compile_fn (
336+ & mut cx,
337+ & mut cached_context,
338+ & mut module,
339+ codegened_func,
340+ ) ;
341+ }
342+ } ,
343+ ) ;
332344
333- let global_asm_object_file =
334- cx. profiler . verbose_generic_activity ( "compile assembly" ) . run ( || {
345+ let global_asm_object_file = cx
346+ . profiler
347+ . verbose_generic_activity_with_arg ( "compile assembly" , & * cgu_name)
348+ . run ( || {
335349 crate :: global_asm:: compile_global_asm ( & global_asm_config, & cgu_name, & cx. global_asm )
336350 } ) ?;
337351
338- let codegen_result = cx. profiler . verbose_generic_activity ( "write object file" ) . run ( || {
339- emit_cgu (
340- & global_asm_config. output_filenames ,
341- & cx. profiler ,
342- cgu_name,
343- module,
344- cx. debug_context ,
345- cx. unwind_context ,
346- global_asm_object_file,
347- )
348- } ) ;
352+ let codegen_result = cx
353+ . profiler
354+ . verbose_generic_activity_with_arg ( "write object file" , & * cgu_name)
355+ . run ( || {
356+ emit_cgu (
357+ & global_asm_config. output_filenames ,
358+ & cx. profiler ,
359+ cgu_name,
360+ module,
361+ cx. debug_context ,
362+ cx. unwind_context ,
363+ global_asm_object_file,
364+ )
365+ } ) ;
349366 std:: mem:: drop ( token) ;
350367 codegen_result
351368 } ) )
@@ -375,7 +392,7 @@ pub(crate) fn run_aot(
375392
376393 let mut concurrency_limiter = ConcurrencyLimiter :: new ( tcx. sess , cgus. len ( ) ) ;
377394
378- let modules = super :: time ( tcx, backend_config . display_cg_time , "codegen mono items" , || {
395+ let modules = tcx. sess . time ( "codegen mono items" , || {
379396 cgus. iter ( )
380397 . map ( |cgu| {
381398 let cgu_reuse = if backend_config. disable_incr_cache {
@@ -437,7 +454,6 @@ pub(crate) fn run_aot(
437454 } ;
438455
439456 let metadata_module = if need_metadata_module {
440- let _timer = tcx. prof . generic_activity ( "codegen crate metadata" ) ;
441457 let ( metadata_cgu_name, tmp_file) = tcx. sess . time ( "write compressed metadata" , || {
442458 use rustc_middle:: mir:: mono:: CodegenUnitNameBuilder ;
443459
0 commit comments