X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustc_codegen_llvm%2Fdeclare.rs;h=691f32dd85a05b8faee5ebc835fa9960107e7ee7;hb=dfbbd5d6ead535de08ff8d10e320194ac7585457;hp=5144b92ea101cee5c47ccd2fb944135cfe6e436c;hpb=c8ea4ace9213ae045123fdfeb59d1ac887656d31;p=rust.git diff --git a/src/librustc_codegen_llvm/declare.rs b/src/librustc_codegen_llvm/declare.rs index 5144b92ea10..691f32dd85a 100644 --- a/src/librustc_codegen_llvm/declare.rs +++ b/src/librustc_codegen_llvm/declare.rs @@ -11,18 +11,17 @@ //! * Use define_* family of methods when you might be defining the Value. //! * When in doubt, define. -use crate::llvm; -use crate::llvm::AttributePlace::Function; use crate::abi::{FnAbi, FnAbiLlvmExt}; use crate::attributes; use crate::context::CodegenCx; +use crate::llvm; +use crate::llvm::AttributePlace::Function; use crate::type_::Type; use crate::value::Value; +use log::debug; use rustc::ty::Ty; -use rustc::session::config::Sanitizer; -use rustc_data_structures::small_c_str::SmallCStr; use rustc_codegen_ssa::traits::*; -use log::debug; +use rustc_data_structures::small_c_str::SmallCStr; /// Declare a function. /// @@ -36,65 +35,33 @@ fn declare_raw_fn( ) -> &'ll Value { debug!("declare_raw_fn(name={:?}, ty={:?})", name, ty); let namebuf = SmallCStr::new(name); - let llfn = unsafe { - llvm::LLVMRustGetOrInsertFunction(cx.llmod, namebuf.as_ptr(), ty) - }; + let llfn = unsafe { llvm::LLVMRustGetOrInsertFunction(cx.llmod, namebuf.as_ptr(), ty) }; llvm::SetFunctionCallConv(llfn, callconv); // Function addresses in Rust are never significant, allowing functions to // be merged. llvm::SetUnnamedAddr(llfn, true); - if cx.tcx.sess.opts.cg.no_redzone - .unwrap_or(cx.tcx.sess.target.target.options.disable_redzone) { + if cx.tcx.sess.opts.cg.no_redzone.unwrap_or(cx.tcx.sess.target.target.options.disable_redzone) { llvm::Attribute::NoRedZone.apply_llfn(Function, llfn); } - if let Some(ref sanitizer) = cx.tcx.sess.opts.debugging_opts.sanitizer { - match *sanitizer { - Sanitizer::Address => { - llvm::Attribute::SanitizeAddress.apply_llfn(Function, llfn); - }, - Sanitizer::Memory => { - llvm::Attribute::SanitizeMemory.apply_llfn(Function, llfn); - }, - Sanitizer::Thread => { - llvm::Attribute::SanitizeThread.apply_llfn(Function, llfn); - }, - _ => {} - } - } - attributes::default_optimisation_attrs(cx.tcx.sess, llfn); attributes::non_lazy_bind(cx.sess(), llfn); llfn } impl DeclareMethods<'tcx> for CodegenCx<'ll, 'tcx> { - - fn declare_global( - &self, - name: &str, ty: &'ll Type - ) -> &'ll Value { + fn declare_global(&self, name: &str, ty: &'ll Type) -> &'ll Value { debug!("declare_global(name={:?})", name); - unsafe { - llvm::LLVMRustGetOrInsertGlobal(self.llmod, name.as_ptr().cast(), name.len(), ty) - } + unsafe { llvm::LLVMRustGetOrInsertGlobal(self.llmod, name.as_ptr().cast(), name.len(), ty) } } - fn declare_cfn( - &self, - name: &str, - fn_type: &'ll Type - ) -> &'ll Value { + fn declare_cfn(&self, name: &str, fn_type: &'ll Type) -> &'ll Value { declare_raw_fn(self, name, llvm::CCallConv, fn_type) } - fn declare_fn( - &self, - name: &str, - fn_abi: &FnAbi<'tcx, Ty<'tcx>>, - ) -> &'ll Value { + fn declare_fn(&self, name: &str, fn_abi: &FnAbi<'tcx, Ty<'tcx>>) -> &'ll Value { debug!("declare_rust_fn(name={:?}, fn_abi={:?})", name, fn_abi); let llfn = declare_raw_fn(self, name, fn_abi.llvm_cconv(), fn_abi.llvm_type(self)); @@ -102,11 +69,7 @@ fn declare_fn( llfn } - fn define_global( - &self, - name: &str, - ty: &'ll Type - ) -> Option<&'ll Value> { + fn define_global(&self, name: &str, ty: &'ll Type) -> Option<&'ll Value> { if self.get_defined_value(name).is_some() { None } else { @@ -115,9 +78,7 @@ fn define_global( } fn define_private_global(&self, ty: &'ll Type) -> &'ll Value { - unsafe { - llvm::LLVMRustInsertPrivateGlobal(self.llmod, ty) - } + unsafe { llvm::LLVMRustInsertPrivateGlobal(self.llmod, ty) } } fn get_declared_value(&self, name: &str) -> Option<&'ll Value> { @@ -127,15 +88,9 @@ fn get_declared_value(&self, name: &str) -> Option<&'ll Value> { } fn get_defined_value(&self, name: &str) -> Option<&'ll Value> { - self.get_declared_value(name).and_then(|val|{ - let declaration = unsafe { - llvm::LLVMIsDeclaration(val) != 0 - }; - if !declaration { - Some(val) - } else { - None - } + self.get_declared_value(name).and_then(|val| { + let declaration = unsafe { llvm::LLVMIsDeclaration(val) != 0 }; + if !declaration { Some(val) } else { None } }) } }