@@ -6,9 +6,7 @@ use crate::llvm::{self, build_string, False, True};
66use crate :: { llvm_util, LlvmCodegenBackend , ModuleLlvm } ;
77use rustc_codegen_ssa:: back:: lto:: { LtoModuleCodegen , SerializedModule , ThinModule , ThinShared } ;
88use 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 } ;
1210use rustc_codegen_ssa:: traits:: * ;
1311use rustc_codegen_ssa:: { looks_like_rust_object_file, ModuleCodegen , ModuleKind } ;
1412use rustc_data_structures:: fx:: FxHashMap ;
@@ -353,7 +351,7 @@ fn fat_lto(
353351 }
354352 }
355353
356- Ok ( LtoModuleCodegen :: Fat { module : Some ( module ) , _serialized_bitcode : serialized_bitcode } )
354+ Ok ( LtoModuleCodegen :: Fat { module, _serialized_bitcode : serialized_bitcode } )
357355}
358356
359357crate struct Linker < ' a > ( & ' a mut llvm:: Linker < ' a > ) ;
@@ -578,11 +576,11 @@ fn thin_lto(
578576pub ( crate ) fn run_pass_manager (
579577 cgcx : & CodegenContext < LlvmCodegenBackend > ,
580578 diag_handler : & Handler ,
581- module : & ModuleCodegen < ModuleLlvm > ,
582- config : & ModuleConfig ,
579+ module : & mut ModuleCodegen < ModuleLlvm > ,
583580 thin : bool ,
584581) -> Result < ( ) , FatalError > {
585582 let _timer = cgcx. prof . extra_verbose_generic_activity ( "LLVM_lto_optimize" , & * module. name ) ;
583+ let config = cgcx. config ( module. kind ) ;
586584
587585 // Now we have one massive module inside of llmod. Time to run the
588586 // LTO-specific optimization passes that LLVM provides.
@@ -726,7 +724,7 @@ impl Drop for ThinBuffer {
726724}
727725
728726pub unsafe fn optimize_thin_module (
729- thin_module : & mut ThinModule < LlvmCodegenBackend > ,
727+ thin_module : ThinModule < LlvmCodegenBackend > ,
730728 cgcx : & CodegenContext < LlvmCodegenBackend > ,
731729) -> Result < ModuleCodegen < ModuleLlvm > , FatalError > {
732730 let diag_handler = cgcx. create_diag_handler ( ) ;
@@ -743,7 +741,7 @@ pub unsafe fn optimize_thin_module(
743741 // that LLVM Context and Module.
744742 let llcx = llvm:: LLVMRustContextCreate ( cgcx. fewer_names ) ;
745743 let llmod_raw = parse_module ( llcx, module_name, thin_module. data ( ) , & diag_handler) ? as * const _ ;
746- let module = ModuleCodegen {
744+ let mut module = ModuleCodegen {
747745 module_llvm : ModuleLlvm { llmod_raw, llcx, tm } ,
748746 name : thin_module. name ( ) . to_string ( ) ,
749747 kind : ModuleKind :: Regular ,
@@ -859,8 +857,7 @@ pub unsafe fn optimize_thin_module(
859857 // little differently.
860858 {
861859 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 ) ?;
864861 save_temp_bitcode ( cgcx, & module, "thin-lto-after-pm" ) ;
865862 }
866863 }
0 commit comments