@@ -14,6 +14,8 @@ use crate::{CachedModuleCodegen, CompiledModule, CrateInfo, MemFlags, ModuleCode
1414use rustc_attr as attr;
1515use rustc_data_structures:: fx:: FxHashMap ;
1616use rustc_data_structures:: profiling:: { get_resident_set_size, print_time_passes_entry} ;
17+
18+ #[ cfg( parallel_compiler) ]
1719use rustc_data_structures:: sync:: { par_iter, ParallelIterator } ;
1820use rustc_hir as hir;
1921use rustc_hir:: def_id:: { DefId , LOCAL_CRATE } ;
@@ -622,34 +624,34 @@ pub fn codegen_crate<B: ExtraBackendMethods>(
622624 // This likely is a temporary measure. Once we don't have to support the
623625 // non-parallel compiler anymore, we can compile CGUs end-to-end in
624626 // parallel and get rid of the complicated scheduling logic.
627+ #[ cfg( parallel_compiler) ]
625628 let pre_compile_cgus = |cgu_reuse : & [ CguReuse ] | {
626- if cfg ! ( parallel_compiler) {
627- tcx. sess . time ( "compile_first_CGU_batch" , || {
628- // Try to find one CGU to compile per thread.
629- let cgus: Vec < _ > = cgu_reuse
630- . iter ( )
631- . enumerate ( )
632- . filter ( |& ( _, reuse) | reuse == & CguReuse :: No )
633- . take ( tcx. sess . threads ( ) )
634- . collect ( ) ;
635-
636- // Compile the found CGUs in parallel.
637- let start_time = Instant :: now ( ) ;
638-
639- let pre_compiled_cgus = par_iter ( cgus)
640- . map ( |( i, _) | {
641- let module = backend. compile_codegen_unit ( tcx, codegen_units[ i] . name ( ) ) ;
642- ( i, module)
643- } )
644- . collect ( ) ;
645-
646- ( pre_compiled_cgus, start_time. elapsed ( ) )
647- } )
648- } else {
649- ( FxHashMap :: default ( ) , Duration :: new ( 0 , 0 ) )
650- }
629+ tcx. sess . time ( "compile_first_CGU_batch" , || {
630+ // Try to find one CGU to compile per thread.
631+ let cgus: Vec < _ > = cgu_reuse
632+ . iter ( )
633+ . enumerate ( )
634+ . filter ( |& ( _, reuse) | reuse == & CguReuse :: No )
635+ . take ( tcx. sess . threads ( ) )
636+ . collect ( ) ;
637+
638+ // Compile the found CGUs in parallel.
639+ let start_time = Instant :: now ( ) ;
640+
641+ let pre_compiled_cgus = par_iter ( cgus)
642+ . map ( |( i, _) | {
643+ let module = backend. compile_codegen_unit ( tcx, codegen_units[ i] . name ( ) ) ;
644+ ( i, module)
645+ } )
646+ . collect ( ) ;
647+
648+ ( pre_compiled_cgus, start_time. elapsed ( ) )
649+ } )
651650 } ;
652651
652+ #[ cfg( not( parallel_compiler) ) ]
653+ let pre_compile_cgus = |_: & [ CguReuse ] | ( FxHashMap :: default ( ) , Duration :: new ( 0 , 0 ) ) ;
654+
653655 let mut cgu_reuse = Vec :: new ( ) ;
654656 let mut pre_compiled_cgus: Option < FxHashMap < usize , _ > > = None ;
655657 let mut total_codegen_time = Duration :: new ( 0 , 0 ) ;
0 commit comments