about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo>2017-07-26 11:50:45 +0200
committerMichael Woerister <michaelwoerister@posteo.net>2017-07-31 15:15:09 +0200
commit397b2a800f7a25e81c2aaab2ac0291adbfdce3ce (patch)
tree19573867686133dc9ea9d326f16f78d203b426a0
parentf3ce50558f6ba3f42011833a36a43f8026bf4863 (diff)
downloadrust-397b2a800f7a25e81c2aaab2ac0291adbfdce3ce.tar.gz
rust-397b2a800f7a25e81c2aaab2ac0291adbfdce3ce.zip
async-llvm(12): Hide no_integrated_as logic in write::run_passes.
-rw-r--r--src/librustc_trans/back/write.rs7
-rw-r--r--src/librustc_trans/base.rs57
2 files changed, 23 insertions, 41 deletions
diff --git a/src/librustc_trans/back/write.rs b/src/librustc_trans/back/write.rs
index c33d65e3e53..280951e0dc8 100644
--- a/src/librustc_trans/back/write.rs
+++ b/src/librustc_trans/back/write.rs
@@ -665,7 +665,6 @@ pub fn run_passes(sess: &Session,
                   modules: Vec<ModuleTranslation>,
                   metadata_module: ModuleTranslation,
                   allocator_module: Option<ModuleTranslation>,
-                  output_types_override: &OutputTypes,
                   crate_output: &OutputFilenames,
 
                   crate_name: Symbol,
@@ -690,6 +689,12 @@ pub fn run_passes(sess: &Session,
         sess.fatal("can't perform LTO when using multiple codegen units");
     }
 
+    let output_types_override = if no_integrated_as {
+        OutputTypes::new(&[(OutputType::Assembly, None)])
+    } else {
+        sess.opts.output_types.clone()
+    };
+
     // Sanity check
     assert!(modules.len() == sess.opts.cg.codegen_units ||
             sess.opts.debugging_opts.incremental.is_some() ||
diff --git a/src/librustc_trans/base.rs b/src/librustc_trans/base.rs
index 65041e60fe3..53fb330e364 100644
--- a/src/librustc_trans/base.rs
+++ b/src/librustc_trans/base.rs
@@ -44,7 +44,7 @@ use rustc::dep_graph::AssertDepGraphSafe;
 use rustc::middle::cstore::LinkMeta;
 use rustc::hir::map as hir_map;
 use rustc::util::common::time;
-use rustc::session::config::{self, NoDebugInfo, OutputFilenames, OutputType, OutputTypes};
+use rustc::session::config::{self, NoDebugInfo, OutputFilenames, OutputType};
 use rustc::session::Session;
 use rustc_incremental::{self, IncrementalHashesMap};
 use abi;
@@ -967,7 +967,6 @@ pub fn trans_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
                                  vec![],
                                  metadata_module,
                                  None,
-                                 &output_filenames.outputs,
                                  output_filenames,
 
                                  tcx.crate_name(LOCAL_CRATE),
@@ -1237,44 +1236,22 @@ pub fn trans_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
                                               link_meta.crate_hash));
     // ---
 
-    if no_integrated_as {
-        let output_types = OutputTypes::new(&[(OutputType::Assembly, None)]);
-        time(sess.time_passes(),
-             "LLVM passes",
-             || write::run_passes(sess,
-                                  modules,
-                                  metadata_module,
-                                  allocator_module,
-                                  &output_types,
-                                  outputs,
-
-                                  tcx.crate_name(LOCAL_CRATE),
-                                  link_meta,
-                                  metadata,
-                                  exported_symbols,
-                                  no_builtins,
-                                  windows_subsystem,
-                                  linker_info,
-                                  no_integrated_as))
-    } else {
-        time(sess.time_passes(),
-             "LLVM passes",
-             || write::run_passes(sess,
-                                  modules,
-                                  metadata_module,
-                                  allocator_module,
-                                  &sess.opts.output_types,
-                                  outputs,
-
-                                  tcx.crate_name(LOCAL_CRATE),
-                                  link_meta,
-                                  metadata,
-                                  exported_symbols,
-                                  no_builtins,
-                                  windows_subsystem,
-                                  linker_info,
-                                  no_integrated_as))
-    }
+    time(sess.time_passes(),
+         "LLVM passes",
+         || write::run_passes(sess,
+                              modules,
+                              metadata_module,
+                              allocator_module,
+                              outputs,
+
+                              tcx.crate_name(LOCAL_CRATE),
+                              link_meta,
+                              metadata,
+                              exported_symbols,
+                              no_builtins,
+                              windows_subsystem,
+                              linker_info,
+                              no_integrated_as))
 }
 
 #[inline(never)] // give this a place in the profiler