1
Fork 0

async-llvm(12): Hide no_integrated_as logic in write::run_passes.

This commit is contained in:
Michael Woerister 2017-07-26 11:50:45 +02:00 committed by Michael Woerister
parent f3ce50558f
commit 397b2a800f
2 changed files with 22 additions and 40 deletions

View file

@ -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() ||

View file

@ -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,
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))
} 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))
}
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