about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/back
diff options
context:
space:
mode:
authorDenis Merigoux <denis.merigoux@gmail.com>2018-09-25 17:52:03 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2018-11-16 14:36:43 +0200
commit8d530db2c5e63da2fed3ec1ac3bba2fa0fb4363c (patch)
treef60326e943c6dd42e3bc9deb7778b197936f9473 /src/librustc_codegen_llvm/back
parent97825a36bec3bdad71669834178a85d7fdff43bc (diff)
downloadrust-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.rs15
-rw-r--r--src/librustc_codegen_llvm/back/write.rs22
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 {