@@ -6,9 +6,7 @@ use crate::llvm::{self, build_string, False, True};
6
6
use crate :: { llvm_util, LlvmCodegenBackend , ModuleLlvm } ;
7
7
use rustc_codegen_ssa:: back:: lto:: { LtoModuleCodegen , SerializedModule , ThinModule , ThinShared } ;
8
8
use rustc_codegen_ssa:: back:: symbol_export;
9
- use rustc_codegen_ssa:: back:: write:: {
10
- CodegenContext , FatLTOInput , ModuleConfig , TargetMachineFactoryConfig ,
11
- } ;
9
+ use rustc_codegen_ssa:: back:: write:: { CodegenContext , FatLTOInput , TargetMachineFactoryConfig } ;
12
10
use rustc_codegen_ssa:: traits:: * ;
13
11
use rustc_codegen_ssa:: { looks_like_rust_object_file, ModuleCodegen , ModuleKind } ;
14
12
use rustc_data_structures:: fx:: FxHashMap ;
@@ -353,7 +351,7 @@ fn fat_lto(
353
351
}
354
352
}
355
353
356
- Ok ( LtoModuleCodegen :: Fat { module : Some ( module ) , _serialized_bitcode : serialized_bitcode } )
354
+ Ok ( LtoModuleCodegen :: Fat { module, _serialized_bitcode : serialized_bitcode } )
357
355
}
358
356
359
357
crate struct Linker < ' a > ( & ' a mut llvm:: Linker < ' a > ) ;
@@ -578,11 +576,11 @@ fn thin_lto(
578
576
pub ( crate ) fn run_pass_manager (
579
577
cgcx : & CodegenContext < LlvmCodegenBackend > ,
580
578
diag_handler : & Handler ,
581
- module : & ModuleCodegen < ModuleLlvm > ,
582
- config : & ModuleConfig ,
579
+ module : & mut ModuleCodegen < ModuleLlvm > ,
583
580
thin : bool ,
584
581
) -> Result < ( ) , FatalError > {
585
582
let _timer = cgcx. prof . extra_verbose_generic_activity ( "LLVM_lto_optimize" , & * module. name ) ;
583
+ let config = cgcx. config ( module. kind ) ;
586
584
587
585
// Now we have one massive module inside of llmod. Time to run the
588
586
// LTO-specific optimization passes that LLVM provides.
@@ -726,7 +724,7 @@ impl Drop for ThinBuffer {
726
724
}
727
725
728
726
pub unsafe fn optimize_thin_module (
729
- thin_module : & mut ThinModule < LlvmCodegenBackend > ,
727
+ thin_module : ThinModule < LlvmCodegenBackend > ,
730
728
cgcx : & CodegenContext < LlvmCodegenBackend > ,
731
729
) -> Result < ModuleCodegen < ModuleLlvm > , FatalError > {
732
730
let diag_handler = cgcx. create_diag_handler ( ) ;
@@ -743,7 +741,7 @@ pub unsafe fn optimize_thin_module(
743
741
// that LLVM Context and Module.
744
742
let llcx = llvm:: LLVMRustContextCreate ( cgcx. fewer_names ) ;
745
743
let llmod_raw = parse_module ( llcx, module_name, thin_module. data ( ) , & diag_handler) ? as * const _ ;
746
- let module = ModuleCodegen {
744
+ let mut module = ModuleCodegen {
747
745
module_llvm : ModuleLlvm { llmod_raw, llcx, tm } ,
748
746
name : thin_module. name ( ) . to_string ( ) ,
749
747
kind : ModuleKind :: Regular ,
@@ -859,8 +857,7 @@ pub unsafe fn optimize_thin_module(
859
857
// little differently.
860
858
{
861
859
info ! ( "running thin lto passes over {}" , module. name) ;
862
- let config = cgcx. config ( module. kind ) ;
863
- run_pass_manager ( cgcx, & diag_handler, & module, config, true ) ?;
860
+ run_pass_manager ( cgcx, & diag_handler, & mut module, true ) ?;
864
861
save_temp_bitcode ( cgcx, & module, "thin-lto-after-pm" ) ;
865
862
}
866
863
}
0 commit comments