@@ -14,6 +14,8 @@ use crate::{CachedModuleCodegen, CompiledModule, CrateInfo, MemFlags, ModuleCode
14
14
use rustc_attr as attr;
15
15
use rustc_data_structures:: fx:: FxHashMap ;
16
16
use rustc_data_structures:: profiling:: { get_resident_set_size, print_time_passes_entry} ;
17
+
18
+ #[ cfg( parallel_compiler) ]
17
19
use rustc_data_structures:: sync:: { par_iter, ParallelIterator } ;
18
20
use rustc_hir as hir;
19
21
use rustc_hir:: def_id:: { DefId , LOCAL_CRATE } ;
@@ -622,34 +624,34 @@ pub fn codegen_crate<B: ExtraBackendMethods>(
622
624
// This likely is a temporary measure. Once we don't have to support the
623
625
// non-parallel compiler anymore, we can compile CGUs end-to-end in
624
626
// parallel and get rid of the complicated scheduling logic.
627
+ #[ cfg( parallel_compiler) ]
625
628
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
+ } )
651
650
} ;
652
651
652
+ #[ cfg( not( parallel_compiler) ) ]
653
+ let pre_compile_cgus = |_: & [ CguReuse ] | ( FxHashMap :: default ( ) , Duration :: new ( 0 , 0 ) ) ;
654
+
653
655
let mut cgu_reuse = Vec :: new ( ) ;
654
656
let mut pre_compiled_cgus: Option < FxHashMap < usize , _ > > = None ;
655
657
let mut total_codegen_time = Duration :: new ( 0 , 0 ) ;
0 commit comments