1
Fork 0

codegen_llvm_back: whitespace & formatting fixes

This commit is contained in:
ljedrz 2018-10-06 11:37:28 +02:00
parent 06118eac4c
commit 1d1dc48407
7 changed files with 53 additions and 62 deletions

View file

@ -83,6 +83,7 @@ impl<'a> ArchiveBuilder<'a> {
if self.src_archive().is_none() { if self.src_archive().is_none() {
return Vec::new() return Vec::new()
} }
let archive = self.src_archive.as_ref().unwrap().as_ref().unwrap(); let archive = self.src_archive.as_ref().unwrap().as_ref().unwrap();
let ret = archive.iter() let ret = archive.iter()
.filter_map(|child| child.ok()) .filter_map(|child| child.ok())

View file

@ -47,8 +47,8 @@ use std::str;
use syntax::attr; use syntax::attr;
pub use rustc_codegen_utils::link::{find_crate_name, filename_for_input, default_output_for_target, pub use rustc_codegen_utils::link::{find_crate_name, filename_for_input, default_output_for_target,
invalid_output_for_target, out_filename, check_file_is_writeable, invalid_output_for_target, filename_for_metadata,
filename_for_metadata}; out_filename, check_file_is_writeable};
// The third parameter is for env vars, used on windows to set up the // The third parameter is for env vars, used on windows to set up the
// path for MSVC to find its DLLs, and gcc to find its bundled // path for MSVC to find its DLLs, and gcc to find its bundled
@ -147,9 +147,7 @@ pub(crate) fn link_binary(sess: &Session,
// Remove the temporary object file and metadata if we aren't saving temps // Remove the temporary object file and metadata if we aren't saving temps
if !sess.opts.cg.save_temps { if !sess.opts.cg.save_temps {
if sess.opts.output_types.should_codegen() && if sess.opts.output_types.should_codegen() && !preserve_objects_for_their_debuginfo(sess) {
!preserve_objects_for_their_debuginfo(sess)
{
for obj in codegen_results.modules.iter().filter_map(|m| m.object.as_ref()) { for obj in codegen_results.modules.iter().filter_map(|m| m.object.as_ref()) {
remove(sess, obj); remove(sess, obj);
} }
@ -814,8 +812,8 @@ fn link_natively(sess: &Session,
.unwrap_or_else(|_| { .unwrap_or_else(|_| {
let mut x = "Non-UTF-8 output: ".to_string(); let mut x = "Non-UTF-8 output: ".to_string();
x.extend(s.iter() x.extend(s.iter()
.flat_map(|&b| ascii::escape_default(b)) .flat_map(|&b| ascii::escape_default(b))
.map(|b| char::from_u32(b as u32).unwrap())); .map(|b| char::from_u32(b as u32).unwrap()));
x x
}) })
} }
@ -1012,8 +1010,7 @@ fn exec_linker(sess: &Session, cmd: &mut Command, out_filename: &Path, tmpdir: &
// ensure the line is interpreted as one whole argument. // ensure the line is interpreted as one whole argument.
for c in self.arg.chars() { for c in self.arg.chars() {
match c { match c {
'\\' | '\\' | ' ' => write!(f, "\\{}", c)?,
' ' => write!(f, "\\{}", c)?,
c => write!(f, "{}", c)?, c => write!(f, "{}", c)?,
} }
} }

View file

@ -205,11 +205,11 @@ pub(crate) fn run(cgcx: &CodegenContext,
Lto::Fat => { Lto::Fat => {
assert!(cached_modules.is_empty()); assert!(cached_modules.is_empty());
let opt_jobs = fat_lto(cgcx, let opt_jobs = fat_lto(cgcx,
&diag_handler, &diag_handler,
modules, modules,
upstream_modules, upstream_modules,
&symbol_white_list, &symbol_white_list,
timeline); timeline);
opt_jobs.map(|opt_jobs| (opt_jobs, vec![])) opt_jobs.map(|opt_jobs| (opt_jobs, vec![]))
} }
Lto::Thin | Lto::Thin |
@ -310,8 +310,8 @@ fn fat_lto(cgcx: &CodegenContext,
unsafe { unsafe {
let ptr = symbol_white_list.as_ptr(); let ptr = symbol_white_list.as_ptr();
llvm::LLVMRustRunRestrictionPass(llmod, llvm::LLVMRustRunRestrictionPass(llmod,
ptr as *const *const libc::c_char, ptr as *const *const libc::c_char,
symbol_white_list.len() as libc::size_t); symbol_white_list.len() as libc::size_t);
cgcx.save_temp_bitcode(&module, "lto.after-restriction"); cgcx.save_temp_bitcode(&module, "lto.after-restriction");
} }
@ -617,8 +617,7 @@ fn run_pass_manager(cgcx: &CodegenContext,
llvm::LLVMRustAddPass(pm, pass.unwrap()); llvm::LLVMRustAddPass(pm, pass.unwrap());
} }
time_ext(cgcx.time_passes, None, "LTO passes", || time_ext(cgcx.time_passes, None, "LTO passes", || llvm::LLVMRunPassManager(pm, llmod));
llvm::LLVMRunPassManager(pm, llmod));
llvm::LLVMDisposePassManager(pm); llvm::LLVMDisposePassManager(pm);
} }

View file

@ -117,8 +117,7 @@ fn get_rpath_relative_to_output(config: &mut RPathConfig, lib: &Path) -> String
let relative = path_relative_from(&lib, &output).unwrap_or_else(|| let relative = path_relative_from(&lib, &output).unwrap_or_else(||
panic!("couldn't create relative path from {:?} to {:?}", output, lib)); panic!("couldn't create relative path from {:?} to {:?}", output, lib));
// FIXME (#9639): This needs to handle non-utf8 paths // FIXME (#9639): This needs to handle non-utf8 paths
format!("{}/{}", prefix, format!("{}/{}", prefix, relative.to_str().expect("non-utf8 component in path"))
relative.to_str().expect("non-utf8 component in path"))
} }
// This routine is adapted from the *old* Path's `path_relative_from` // This routine is adapted from the *old* Path's `path_relative_from`

View file

@ -106,8 +106,7 @@ pub fn write_output_file(
file_type: llvm::FileType) -> Result<(), FatalError> { file_type: llvm::FileType) -> Result<(), FatalError> {
unsafe { unsafe {
let output_c = path2cstr(output); let output_c = path2cstr(output);
let result = llvm::LLVMRustWriteOutputFile( let result = llvm::LLVMRustWriteOutputFile(target, pm, m, output_c.as_ptr(), file_type);
target, pm, m, output_c.as_ptr(), file_type);
if result.into_result().is_err() { if result.into_result().is_err() {
let msg = format!("could not write output to {}", output.display()); let msg = format!("could not write output to {}", output.display());
Err(llvm_err(handler, msg)) Err(llvm_err(handler, msg))
@ -590,8 +589,7 @@ unsafe fn optimize(cgcx: &CodegenContext,
for pass in &config.passes { for pass in &config.passes {
if !addpass(pass) { if !addpass(pass) {
diag_handler.warn(&format!("unknown pass `{}`, ignoring", diag_handler.warn(&format!("unknown pass `{}`, ignoring", pass));
pass));
} }
if pass == "name-anon-globals" { if pass == "name-anon-globals" {
have_name_anon_globals_pass = true; have_name_anon_globals_pass = true;
@ -601,8 +599,8 @@ unsafe fn optimize(cgcx: &CodegenContext,
for pass in &cgcx.plugin_passes { for pass in &cgcx.plugin_passes {
if !addpass(pass) { if !addpass(pass) {
diag_handler.err(&format!("a plugin asked for LLVM pass \ diag_handler.err(&format!("a plugin asked for LLVM pass \
`{}` but LLVM does not \ `{}` but LLVM does not \
recognize it", pass)); recognize it", pass));
} }
if pass == "name-anon-globals" { if pass == "name-anon-globals" {
have_name_anon_globals_pass = true; have_name_anon_globals_pass = true;
@ -613,12 +611,12 @@ unsafe fn optimize(cgcx: &CodegenContext,
// As described above, this will probably cause an error in LLVM // As described above, this will probably cause an error in LLVM
if config.no_prepopulate_passes { if config.no_prepopulate_passes {
diag_handler.err("The current compilation is going to use thin LTO buffers \ diag_handler.err("The current compilation is going to use thin LTO buffers \
without running LLVM's NameAnonGlobals pass. \ without running LLVM's NameAnonGlobals pass. \
This will likely cause errors in LLVM. Consider adding \ This will likely cause errors in LLVM. Consider adding \
-C passes=name-anon-globals to the compiler command line."); -C passes=name-anon-globals to the compiler command line.");
} else { } else {
bug!("We are using thin LTO buffers without running the NameAnonGlobals pass. \ bug!("We are using thin LTO buffers without running the NameAnonGlobals pass. \
This will likely cause errors in LLVM and should never happen."); This will likely cause errors in LLVM and should never happen.");
} }
} }
} }
@ -704,9 +702,9 @@ unsafe fn codegen(cgcx: &CodegenContext,
// escape the closure itself, and the manager should only be // escape the closure itself, and the manager should only be
// used once. // used once.
unsafe fn with_codegen<'ll, F, R>(tm: &'ll llvm::TargetMachine, unsafe fn with_codegen<'ll, F, R>(tm: &'ll llvm::TargetMachine,
llmod: &'ll llvm::Module, llmod: &'ll llvm::Module,
no_builtins: bool, no_builtins: bool,
f: F) -> R f: F) -> R
where F: FnOnce(&'ll mut PassManager<'ll>) -> R, where F: FnOnce(&'ll mut PassManager<'ll>) -> R,
{ {
let cpm = llvm::LLVMCreatePassManager(); let cpm = llvm::LLVMCreatePassManager();
@ -818,7 +816,7 @@ unsafe fn codegen(cgcx: &CodegenContext,
}; };
with_codegen(tm, llmod, config.no_builtins, |cpm| { with_codegen(tm, llmod, config.no_builtins, |cpm| {
write_output_file(diag_handler, tm, cpm, llmod, &path, write_output_file(diag_handler, tm, cpm, llmod, &path,
llvm::FileType::AssemblyFile) llvm::FileType::AssemblyFile)
})?; })?;
timeline.record("asm"); timeline.record("asm");
} }
@ -826,7 +824,7 @@ unsafe fn codegen(cgcx: &CodegenContext,
if write_obj { if write_obj {
with_codegen(tm, llmod, config.no_builtins, |cpm| { with_codegen(tm, llmod, config.no_builtins, |cpm| {
write_output_file(diag_handler, tm, cpm, llmod, &obj_out, write_output_file(diag_handler, tm, cpm, llmod, &obj_out,
llvm::FileType::ObjectFile) llvm::FileType::ObjectFile)
})?; })?;
timeline.record("obj"); timeline.record("obj");
} else if asm_to_obj { } else if asm_to_obj {
@ -947,11 +945,11 @@ fn need_pre_thin_lto_bitcode_for_incr_comp(sess: &Session) -> bool {
} }
pub fn start_async_codegen(tcx: TyCtxt, pub fn start_async_codegen(tcx: TyCtxt,
time_graph: Option<TimeGraph>, time_graph: Option<TimeGraph>,
metadata: EncodedMetadata, metadata: EncodedMetadata,
coordinator_receive: Receiver<Box<dyn Any + Send>>, coordinator_receive: Receiver<Box<dyn Any + Send>>,
total_cgus: usize) total_cgus: usize)
-> OngoingCodegen { -> OngoingCodegen {
let sess = tcx.sess; let sess = tcx.sess;
let crate_name = tcx.crate_name(LOCAL_CRATE); let crate_name = tcx.crate_name(LOCAL_CRATE);
let crate_hash = tcx.crate_hash(LOCAL_CRATE); let crate_hash = tcx.crate_hash(LOCAL_CRATE);
@ -1116,7 +1114,8 @@ fn copy_all_cgu_workproducts_to_incr_comp_cache_dir(
} }
if let Some((id, product)) = if let Some((id, product)) =
copy_cgu_workproducts_to_incr_comp_cache_dir(sess, &module.name, &files) { copy_cgu_workproducts_to_incr_comp_cache_dir(sess, &module.name, &files)
{
work_products.insert(id, product); work_products.insert(id, product);
} }
} }
@ -1584,10 +1583,8 @@ fn start_executing_work(tcx: TyCtxt,
let (name, mut cmd) = get_linker(sess, &linker, flavor); let (name, mut cmd) = get_linker(sess, &linker, flavor);
cmd.args(&sess.target.target.options.asm_args); cmd.args(&sess.target.target.options.asm_args);
Some(Arc::new(AssemblerCommand {
name, Some(Arc::new(AssemblerCommand { name, cmd }))
cmd,
}))
} else { } else {
None None
}; };
@ -2186,9 +2183,9 @@ pub fn run_assembler(cgcx: &CodegenContext, handler: &Handler, assembly: &Path,
handler.struct_err(&format!("linking with `{}` failed: {}", handler.struct_err(&format!("linking with `{}` failed: {}",
pname.display(), pname.display(),
prog.status)) prog.status))
.note(&format!("{:?}", &cmd)) .note(&format!("{:?}", &cmd))
.note(str::from_utf8(&note[..]).unwrap()) .note(str::from_utf8(&note[..]).unwrap())
.emit(); .emit();
handler.abort_if_errors(); handler.abort_if_errors();
} }
}, },
@ -2450,8 +2447,8 @@ impl OngoingCodegen {
} }
pub(crate) fn submit_pre_codegened_module_to_llvm(&self, pub(crate) fn submit_pre_codegened_module_to_llvm(&self,
tcx: TyCtxt, tcx: TyCtxt,
module: ModuleCodegen) { module: ModuleCodegen) {
self.wait_for_signal_to_codegen_item(); self.wait_for_signal_to_codegen_item();
self.check_for_errors(tcx.sess); self.check_for_errors(tcx.sess);

View file

@ -224,9 +224,9 @@ impl<'a> GccLinker<'a> {
} }
impl<'a> Linker for GccLinker<'a> { impl<'a> Linker for GccLinker<'a> {
fn link_dylib(&mut self, lib: &str) { self.hint_dynamic(); self.cmd.arg(format!("-l{}",lib)); } fn link_dylib(&mut self, lib: &str) { self.hint_dynamic(); self.cmd.arg(format!("-l{}", lib)); }
fn link_staticlib(&mut self, lib: &str) { fn link_staticlib(&mut self, lib: &str) {
self.hint_static(); self.cmd.arg(format!("-l{}",lib)); self.hint_static(); self.cmd.arg(format!("-l{}", lib));
} }
fn link_rlib(&mut self, lib: &Path) { self.hint_static(); self.cmd.arg(lib); } fn link_rlib(&mut self, lib: &Path) { self.hint_static(); self.cmd.arg(lib); }
fn include_path(&mut self, path: &Path) { self.cmd.arg("-L").arg(path); } fn include_path(&mut self, path: &Path) { self.cmd.arg("-L").arg(path); }
@ -243,7 +243,7 @@ impl<'a> Linker for GccLinker<'a> {
fn link_rust_dylib(&mut self, lib: &str, _path: &Path) { fn link_rust_dylib(&mut self, lib: &str, _path: &Path) {
self.hint_dynamic(); self.hint_dynamic();
self.cmd.arg(format!("-l{}",lib)); self.cmd.arg(format!("-l{}", lib));
} }
fn link_framework(&mut self, framework: &str) { fn link_framework(&mut self, framework: &str) {
@ -261,7 +261,7 @@ impl<'a> Linker for GccLinker<'a> {
self.hint_static(); self.hint_static();
let target = &self.sess.target.target; let target = &self.sess.target.target;
if !target.options.is_like_osx { if !target.options.is_like_osx {
self.linker_arg("--whole-archive").cmd.arg(format!("-l{}",lib)); self.linker_arg("--whole-archive").cmd.arg(format!("-l{}", lib));
self.linker_arg("--no-whole-archive"); self.linker_arg("--no-whole-archive");
} else { } else {
// -force_load is the macOS equivalent of --whole-archive, but it // -force_load is the macOS equivalent of --whole-archive, but it
@ -373,8 +373,7 @@ impl<'a> Linker for GccLinker<'a> {
// purely to support rustbuild right now, we should get a more // purely to support rustbuild right now, we should get a more
// principled solution at some point to force the compiler to pass // principled solution at some point to force the compiler to pass
// the right `-Wl,-install_name` with an `@rpath` in it. // the right `-Wl,-install_name` with an `@rpath` in it.
if self.sess.opts.cg.rpath || if self.sess.opts.cg.rpath || self.sess.opts.debugging_opts.osx_rpath_install_name {
self.sess.opts.debugging_opts.osx_rpath_install_name {
self.linker_arg("-install_name"); self.linker_arg("-install_name");
let mut v = OsString::from("@rpath/"); let mut v = OsString::from("@rpath/");
v.push(out_filename.file_name().unwrap()); v.push(out_filename.file_name().unwrap());

View file

@ -47,11 +47,10 @@ fn crate_export_threshold(crate_type: config::CrateType) -> SymbolExportLevel {
} }
} }
pub fn crates_export_threshold(crate_types: &[config::CrateType]) pub fn crates_export_threshold(crate_types: &[config::CrateType]) -> SymbolExportLevel {
-> SymbolExportLevel { if crate_types.iter().any(|&crate_type|
if crate_types.iter().any(|&crate_type| { crate_export_threshold(crate_type) == SymbolExportLevel::Rust)
crate_export_threshold(crate_type) == SymbolExportLevel::Rust {
}) {
SymbolExportLevel::Rust SymbolExportLevel::Rust
} else { } else {
SymbolExportLevel::C SymbolExportLevel::C
@ -359,7 +358,7 @@ fn is_unreachable_local_definition_provider(tcx: TyCtxt, def_id: DefId) -> bool
!tcx.reachable_set(LOCAL_CRATE).0.contains(&node_id) !tcx.reachable_set(LOCAL_CRATE).0.contains(&node_id)
} else { } else {
bug!("is_unreachable_local_definition called with non-local DefId: {:?}", bug!("is_unreachable_local_definition called with non-local DefId: {:?}",
def_id) def_id)
} }
} }