diff options
| author | Denis Merigoux <denis.merigoux@gmail.com> | 2018-09-25 17:52:03 +0200 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2018-11-16 14:36:43 +0200 |
| commit | 8d530db2c5e63da2fed3ec1ac3bba2fa0fb4363c (patch) | |
| tree | f60326e943c6dd42e3bc9deb7778b197936f9473 /src/librustc_codegen_llvm/back | |
| parent | 97825a36bec3bdad71669834178a85d7fdff43bc (diff) | |
| download | rust-8d530db2c5e63da2fed3ec1ac3bba2fa0fb4363c.tar.gz rust-8d530db2c5e63da2fed3ec1ac3bba2fa0fb4363c.zip | |
Generalized base:codegen_crate
Diffstat (limited to 'src/librustc_codegen_llvm/back')
| -rw-r--r-- | src/librustc_codegen_llvm/back/lto.rs | 15 | ||||
| -rw-r--r-- | src/librustc_codegen_llvm/back/write.rs | 22 |
2 files changed, 18 insertions, 19 deletions
diff --git a/src/librustc_codegen_llvm/back/lto.rs b/src/librustc_codegen_llvm/back/lto.rs index 60b06c579cb..5eb2e28a2a8 100644 --- a/src/librustc_codegen_llvm/back/lto.rs +++ b/src/librustc_codegen_llvm/back/lto.rs @@ -13,8 +13,7 @@ use back::write::{ModuleConfig, with_llvm_pmb, CodegenContext}; use back::write::{self, DiagnosticHandlers, pre_lto_bitcode_filename}; use errors::{FatalError, Handler}; use llvm::archive_ro::ArchiveRO; -use llvm::{True, False}; -use llvm; +use llvm::{self, True, False}; use memmap; use rustc::dep_graph::WorkProduct; use rustc::dep_graph::cgu_reuse_tracker::CguReuse; @@ -49,7 +48,7 @@ pub fn crate_type_allows_lto(crate_type: config::CrateType) -> bool { pub(crate) enum LtoModuleCodegen { Fat { - module: Option<ModuleCodegen>, + module: Option<ModuleCodegen<ModuleLlvm>>, _serialized_bitcode: Vec<SerializedModule>, }, @@ -73,7 +72,7 @@ impl LtoModuleCodegen { pub(crate) unsafe fn optimize(&mut self, cgcx: &CodegenContext, timeline: &mut Timeline) - -> Result<ModuleCodegen, FatalError> + -> Result<ModuleCodegen<ModuleLlvm>, FatalError> { match *self { LtoModuleCodegen::Fat { ref mut module, .. } => { @@ -108,7 +107,7 @@ impl LtoModuleCodegen { /// the need optimization and another for modules that can simply be copied over /// from the incr. comp. cache. pub(crate) fn run(cgcx: &CodegenContext, - modules: Vec<ModuleCodegen>, + modules: Vec<ModuleCodegen<ModuleLlvm>>, cached_modules: Vec<(SerializedModule, WorkProduct)>, timeline: &mut Timeline) -> Result<(Vec<LtoModuleCodegen>, Vec<WorkProduct>), FatalError> @@ -232,7 +231,7 @@ pub(crate) fn run(cgcx: &CodegenContext, fn fat_lto(cgcx: &CodegenContext, diag_handler: &Handler, - mut modules: Vec<ModuleCodegen>, + mut modules: Vec<ModuleCodegen<ModuleLlvm>>, mut serialized_modules: Vec<(SerializedModule, CString)>, symbol_white_list: &[*const libc::c_char], timeline: &mut Timeline) @@ -388,7 +387,7 @@ impl Drop for Linker<'a> { /// they all go out of scope. fn thin_lto(cgcx: &CodegenContext, diag_handler: &Handler, - modules: Vec<ModuleCodegen>, + modules: Vec<ModuleCodegen<ModuleLlvm>>, serialized_modules: Vec<(SerializedModule, CString)>, cached_modules: Vec<(SerializedModule, WorkProduct)>, symbol_white_list: &[*const libc::c_char], @@ -740,7 +739,7 @@ impl ThinModule { } unsafe fn optimize(&mut self, cgcx: &CodegenContext, timeline: &mut Timeline) - -> Result<ModuleCodegen, FatalError> + -> Result<ModuleCodegen<ModuleLlvm>, FatalError> { let diag_handler = cgcx.create_diag_handler(); let tm = (cgcx.tm_factory)().map_err(|e| { diff --git a/src/librustc_codegen_llvm/back/write.rs b/src/librustc_codegen_llvm/back/write.rs index bb490c58285..72820f967af 100644 --- a/src/librustc_codegen_llvm/back/write.rs +++ b/src/librustc_codegen_llvm/back/write.rs @@ -26,7 +26,7 @@ use rustc::util::nodemap::FxHashMap; use time_graph::{self, TimeGraph, Timeline}; use llvm::{self, DiagnosticInfo, PassManager, SMDiagnostic}; use llvm_util; -use {CodegenResults, ModuleCodegen, CompiledModule, ModuleKind, // ModuleLlvm, +use {CodegenResults, ModuleCodegen, CompiledModule, ModuleKind, ModuleLlvm, CachedModuleCodegen}; use CrateInfo; use rustc::hir::def_id::{CrateNum, LOCAL_CRATE}; @@ -408,7 +408,7 @@ impl CodegenContext { } } - pub(crate) fn save_temp_bitcode(&self, module: &ModuleCodegen, name: &str) { + pub(crate) fn save_temp_bitcode(&self, module: &ModuleCodegen<ModuleLlvm>, name: &str) { if !self.save_temps { return } @@ -515,7 +515,7 @@ unsafe extern "C" fn diagnostic_handler(info: &DiagnosticInfo, user: *mut c_void // Unsafe due to LLVM calls. unsafe fn optimize(cgcx: &CodegenContext, diag_handler: &Handler, - module: &ModuleCodegen, + module: &ModuleCodegen<ModuleLlvm>, config: &ModuleConfig, timeline: &mut Timeline) -> Result<(), FatalError> @@ -646,7 +646,7 @@ unsafe fn optimize(cgcx: &CodegenContext, } fn generate_lto_work(cgcx: &CodegenContext, - modules: Vec<ModuleCodegen>, + modules: Vec<ModuleCodegen<ModuleLlvm>>, import_only_modules: Vec<(SerializedModule, WorkProduct)>) -> Vec<(WorkItem, u64)> { @@ -675,7 +675,7 @@ fn generate_lto_work(cgcx: &CodegenContext, unsafe fn codegen(cgcx: &CodegenContext, diag_handler: &Handler, - module: ModuleCodegen, + module: ModuleCodegen<ModuleLlvm>, config: &ModuleConfig, timeline: &mut Timeline) -> Result<CompiledModule, FatalError> @@ -1284,7 +1284,7 @@ pub(crate) fn dump_incremental_data(_codegen_results: &CodegenResults) { enum WorkItem { /// Optimize a newly codegened, totally unoptimized module. - Optimize(ModuleCodegen), + Optimize(ModuleCodegen<ModuleLlvm>), /// Copy the post-LTO artifacts from the incremental cache to the output /// directory. CopyPostLtoArtifacts(CachedModuleCodegen), @@ -1312,7 +1312,7 @@ impl WorkItem { enum WorkItemResult { Compiled(CompiledModule), - NeedsLTO(ModuleCodegen), + NeedsLTO(ModuleCodegen<ModuleLlvm>), } fn execute_work_item(cgcx: &CodegenContext, @@ -1336,7 +1336,7 @@ fn execute_work_item(cgcx: &CodegenContext, } fn execute_optimize_work_item(cgcx: &CodegenContext, - module: ModuleCodegen, + module: ModuleCodegen<ModuleLlvm>, module_config: &ModuleConfig, timeline: &mut Timeline) -> Result<WorkItemResult, FatalError> @@ -1480,7 +1480,7 @@ fn execute_lto_work_item(cgcx: &CodegenContext, enum Message { Token(io::Result<Acquired>), NeedsLTO { - result: ModuleCodegen, + result: ModuleCodegen<ModuleLlvm>, worker_id: usize, }, Done { @@ -2445,7 +2445,7 @@ impl OngoingCodegen { pub(crate) fn submit_pre_codegened_module_to_llvm(&self, tcx: TyCtxt, - module: ModuleCodegen) { + module: ModuleCodegen<ModuleLlvm>) { self.wait_for_signal_to_codegen_item(); self.check_for_errors(tcx.sess); @@ -2497,7 +2497,7 @@ impl OngoingCodegen { // } pub(crate) fn submit_codegened_module_to_llvm(tcx: TyCtxt, - module: ModuleCodegen, + module: ModuleCodegen<ModuleLlvm>, cost: u64) { let llvm_work_item = WorkItem::Optimize(module); drop(tcx.tx_to_llvm_workers.lock().send(Box::new(Message::CodegenDone { |
