Fix clippy lints
This commit is contained in:
parent
b6057bf7b7
commit
759eba0a08
61 changed files with 458 additions and 506 deletions
|
@ -526,7 +526,7 @@ impl<'tcx> FnAbiLlvmExt<'tcx> for FnAbi<'tcx, Ty<'tcx>> {
|
|||
};
|
||||
match self.ret.mode {
|
||||
PassMode::Direct(ref attrs) => {
|
||||
attrs.apply_attrs_to_callsite(llvm::AttributePlace::ReturnValue, &bx.cx, callsite);
|
||||
attrs.apply_attrs_to_callsite(llvm::AttributePlace::ReturnValue, bx.cx, callsite);
|
||||
}
|
||||
PassMode::Indirect { ref attrs, extra_attrs: _, on_stack } => {
|
||||
assert!(!on_stack);
|
||||
|
|
|
@ -105,7 +105,7 @@ impl AsmBuilderMethods<'tcx> for Builder<'a, 'll, 'tcx> {
|
|||
let r = r.unwrap();
|
||||
|
||||
// Again, based on how many outputs we have
|
||||
let outputs = ia.outputs.iter().zip(&outputs).filter(|&(ref o, _)| !o.is_indirect);
|
||||
let outputs = ia.outputs.iter().zip(&outputs).filter(|&(o, _)| !o.is_indirect);
|
||||
for (i, (_, &place)) in outputs.enumerate() {
|
||||
let v = if num_outputs == 1 { r } else { self.extract_value(r, i as u64) };
|
||||
OperandValue::Immediate(v).store(self, place);
|
||||
|
@ -331,7 +331,7 @@ impl AsmBuilderMethods<'tcx> for Builder<'a, 'll, 'tcx> {
|
|||
let output_type = match &output_types[..] {
|
||||
[] => self.type_void(),
|
||||
[ty] => ty,
|
||||
tys => self.type_struct(&tys, false),
|
||||
tys => self.type_struct(tys, false),
|
||||
};
|
||||
let dialect = match asm_arch {
|
||||
InlineAsmArch::X86 | InlineAsmArch::X86_64
|
||||
|
|
|
@ -109,7 +109,7 @@ fn prepare_lto(
|
|||
.extend(exported_symbols[&cnum].iter().filter_map(symbol_filter));
|
||||
}
|
||||
|
||||
let archive = ArchiveRO::open(&path).expect("wanted an rlib");
|
||||
let archive = ArchiveRO::open(path).expect("wanted an rlib");
|
||||
let obj_files = archive
|
||||
.iter()
|
||||
.filter_map(|child| child.ok().and_then(|c| c.name().map(|name| (name, c))))
|
||||
|
@ -316,14 +316,14 @@ fn fat_lto(
|
|||
.generic_activity_with_arg("LLVM_fat_lto_link_module", format!("{:?}", name));
|
||||
info!("linking {:?}", name);
|
||||
let data = bc_decoded.data();
|
||||
linker.add(&data).map_err(|()| {
|
||||
linker.add(data).map_err(|()| {
|
||||
let msg = format!("failed to load bc of {:?}", name);
|
||||
write::llvm_err(&diag_handler, &msg)
|
||||
write::llvm_err(diag_handler, &msg)
|
||||
})?;
|
||||
serialized_bitcode.push(bc_decoded);
|
||||
}
|
||||
drop(linker);
|
||||
save_temp_bitcode(&cgcx, &module, "lto.input");
|
||||
save_temp_bitcode(cgcx, &module, "lto.input");
|
||||
|
||||
// Fat LTO also suffers from the invalid DWARF issue similar to Thin LTO.
|
||||
// Here we rewrite all `DICompileUnit` pointers if there is only one `DICompileUnit`.
|
||||
|
@ -347,14 +347,14 @@ fn fat_lto(
|
|||
ptr as *const *const libc::c_char,
|
||||
symbols_below_threshold.len() as libc::size_t,
|
||||
);
|
||||
save_temp_bitcode(&cgcx, &module, "lto.after-restriction");
|
||||
save_temp_bitcode(cgcx, &module, "lto.after-restriction");
|
||||
}
|
||||
|
||||
if cgcx.no_landing_pads {
|
||||
unsafe {
|
||||
llvm::LLVMRustMarkAllFunctionsNounwind(llmod);
|
||||
}
|
||||
save_temp_bitcode(&cgcx, &module, "lto.after-nounwind");
|
||||
save_temp_bitcode(cgcx, &module, "lto.after-nounwind");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -498,7 +498,7 @@ fn thin_lto(
|
|||
symbols_below_threshold.as_ptr(),
|
||||
symbols_below_threshold.len() as u32,
|
||||
)
|
||||
.ok_or_else(|| write::llvm_err(&diag_handler, "failed to prepare thin LTO context"))?;
|
||||
.ok_or_else(|| write::llvm_err(diag_handler, "failed to prepare thin LTO context"))?;
|
||||
|
||||
let data = ThinData(data);
|
||||
|
||||
|
@ -572,7 +572,7 @@ fn thin_lto(
|
|||
if let Some(path) = key_map_path {
|
||||
if let Err(err) = curr_key_map.save_to_file(&path) {
|
||||
let msg = format!("Error while writing ThinLTO key data: {}", err);
|
||||
return Err(write::llvm_err(&diag_handler, &msg));
|
||||
return Err(write::llvm_err(diag_handler, &msg));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -744,8 +744,7 @@ pub unsafe fn optimize_thin_module(
|
|||
// crates but for locally codegened modules we may be able to reuse
|
||||
// that LLVM Context and Module.
|
||||
let llcx = llvm::LLVMRustContextCreate(cgcx.fewer_names);
|
||||
let llmod_raw =
|
||||
parse_module(llcx, &module_name, thin_module.data(), &diag_handler)? as *const _;
|
||||
let llmod_raw = parse_module(llcx, module_name, thin_module.data(), &diag_handler)? as *const _;
|
||||
let module = ModuleCodegen {
|
||||
module_llvm: ModuleLlvm { llmod_raw, llcx, tm },
|
||||
name: thin_module.name().to_string(),
|
||||
|
@ -754,7 +753,7 @@ pub unsafe fn optimize_thin_module(
|
|||
{
|
||||
let target = &*module.module_llvm.tm;
|
||||
let llmod = module.module_llvm.llmod();
|
||||
save_temp_bitcode(&cgcx, &module, "thin-lto-input");
|
||||
save_temp_bitcode(cgcx, &module, "thin-lto-input");
|
||||
|
||||
// Before we do much else find the "main" `DICompileUnit` that we'll be
|
||||
// using below. If we find more than one though then rustc has changed
|
||||
|
@ -775,7 +774,7 @@ pub unsafe fn optimize_thin_module(
|
|||
.prof
|
||||
.generic_activity_with_arg("LLVM_thin_lto_remove_landing_pads", thin_module.name());
|
||||
llvm::LLVMRustMarkAllFunctionsNounwind(llmod);
|
||||
save_temp_bitcode(&cgcx, &module, "thin-lto-after-nounwind");
|
||||
save_temp_bitcode(cgcx, &module, "thin-lto-after-nounwind");
|
||||
}
|
||||
|
||||
// Up next comes the per-module local analyses that we do for Thin LTO.
|
||||
|
@ -947,7 +946,7 @@ pub fn parse_module<'a>(
|
|||
llvm::LLVMRustParseBitcodeForLTO(cx, data.as_ptr(), data.len(), name.as_ptr()).ok_or_else(
|
||||
|| {
|
||||
let msg = "failed to parse bitcode for LTO module";
|
||||
write::llvm_err(&diag_handler, msg)
|
||||
write::llvm_err(diag_handler, msg)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ use std::sync::Arc;
|
|||
pub fn llvm_err(handler: &rustc_errors::Handler, msg: &str) -> FatalError {
|
||||
match llvm::last_error() {
|
||||
Some(err) => handler.fatal(&format!("{}: {}", msg, err)),
|
||||
None => handler.fatal(&msg),
|
||||
None => handler.fatal(msg),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ pub fn create_target_machine(tcx: TyCtxt<'_>, mod_name: &str) -> &'static mut ll
|
|||
None
|
||||
};
|
||||
let config = TargetMachineFactoryConfig { split_dwarf_file };
|
||||
target_machine_factory(&tcx.sess, tcx.backend_optimization_level(()))(config)
|
||||
target_machine_factory(tcx.sess, tcx.backend_optimization_level(()))(config)
|
||||
.unwrap_or_else(|err| llvm_err(tcx.sess.diagnostic(), &err).raise())
|
||||
}
|
||||
|
||||
|
@ -556,7 +556,7 @@ pub(crate) unsafe fn optimize(
|
|||
let prepare_for_thin_lto = cgcx.lto == Lto::Thin
|
||||
|| cgcx.lto == Lto::ThinLocal
|
||||
|| (cgcx.lto != Lto::Fat && cgcx.opts.cg.linker_plugin_lto.enabled());
|
||||
with_llvm_pmb(llmod, &config, opt_level, prepare_for_thin_lto, &mut |b| {
|
||||
with_llvm_pmb(llmod, config, opt_level, prepare_for_thin_lto, &mut |b| {
|
||||
llvm::LLVMRustAddLastExtensionPasses(
|
||||
b,
|
||||
extra_passes.as_ptr(),
|
||||
|
@ -658,9 +658,9 @@ pub(crate) fn link(
|
|||
let _timer =
|
||||
cgcx.prof.generic_activity_with_arg("LLVM_link_module", format!("{:?}", module.name));
|
||||
let buffer = ModuleBuffer::new(module.module_llvm.llmod());
|
||||
linker.add(&buffer.data()).map_err(|()| {
|
||||
linker.add(buffer.data()).map_err(|()| {
|
||||
let msg = format!("failed to serialize module {:?}", module.name);
|
||||
llvm_err(&diag_handler, &msg)
|
||||
llvm_err(diag_handler, &msg)
|
||||
})?;
|
||||
}
|
||||
drop(linker);
|
||||
|
|
|
@ -86,7 +86,7 @@ impl ty::layout::HasParamEnv<'tcx> for Builder<'_, '_, 'tcx> {
|
|||
impl HasTargetSpec for Builder<'_, '_, 'tcx> {
|
||||
#[inline]
|
||||
fn target_spec(&self) -> &Target {
|
||||
&self.cx.target_spec()
|
||||
self.cx.target_spec()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ pub fn get_fn(cx: &CodegenCx<'ll, 'tcx>, instance: Instance<'tcx>) -> &'ll Value
|
|||
|
||||
let fn_abi = cx.fn_abi_of_instance(instance, ty::List::empty());
|
||||
|
||||
let llfn = if let Some(llfn) = cx.get_declared_value(&sym) {
|
||||
let llfn = if let Some(llfn) = cx.get_declared_value(sym) {
|
||||
// Create a fn pointer with the new signature.
|
||||
let llptrty = fn_abi.ptr_to_llvm_type(cx);
|
||||
|
||||
|
@ -79,7 +79,7 @@ pub fn get_fn(cx: &CodegenCx<'ll, 'tcx>, instance: Instance<'tcx>) -> &'ll Value
|
|||
llfn
|
||||
}
|
||||
} else {
|
||||
let llfn = cx.declare_fn(&sym, &fn_abi);
|
||||
let llfn = cx.declare_fn(sym, fn_abi);
|
||||
debug!("get_fn: not casting pointer!");
|
||||
|
||||
attributes::from_fn_attrs(cx, llfn, instance);
|
||||
|
|
|
@ -178,7 +178,7 @@ fn check_and_apply_linkage(
|
|||
};
|
||||
unsafe {
|
||||
// Declare a symbol `foo` with the desired linkage.
|
||||
let g1 = cx.declare_global(&sym, llty2);
|
||||
let g1 = cx.declare_global(sym, llty2);
|
||||
llvm::LLVMRustSetLinkage(g1, base::linkage_to_llvm(linkage));
|
||||
|
||||
// Declare an internal global `extern_with_linkage_foo` which
|
||||
|
@ -188,7 +188,7 @@ fn check_and_apply_linkage(
|
|||
// `extern_with_linkage_foo` will instead be initialized to
|
||||
// zero.
|
||||
let mut real_name = "_rust_extern_with_linkage_".to_string();
|
||||
real_name.push_str(&sym);
|
||||
real_name.push_str(sym);
|
||||
let g2 = cx.define_global(&real_name, llty).unwrap_or_else(|| {
|
||||
cx.sess().span_fatal(
|
||||
cx.tcx.def_span(span_def_id),
|
||||
|
@ -202,7 +202,7 @@ fn check_and_apply_linkage(
|
|||
} else {
|
||||
// Generate an external declaration.
|
||||
// FIXME(nagisa): investigate whether it can be changed into define_global
|
||||
cx.declare_global(&sym, llty)
|
||||
cx.declare_global(sym, llty)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -234,7 +234,7 @@ impl CodegenCx<'ll, 'tcx> {
|
|||
_ => self.define_private_global(self.val_ty(cv)),
|
||||
};
|
||||
llvm::LLVMSetInitializer(gv, cv);
|
||||
set_global_alignment(&self, gv, align);
|
||||
set_global_alignment(self, gv, align);
|
||||
llvm::SetUnnamedAddress(gv, llvm::UnnamedAddr::Global);
|
||||
gv
|
||||
}
|
||||
|
@ -279,7 +279,7 @@ impl CodegenCx<'ll, 'tcx> {
|
|||
|
||||
g
|
||||
} else {
|
||||
check_and_apply_linkage(&self, &fn_attrs, ty, sym, def_id)
|
||||
check_and_apply_linkage(self, fn_attrs, ty, sym, def_id)
|
||||
};
|
||||
|
||||
// Thread-local statics in some other crate need to *always* be linked
|
||||
|
@ -369,7 +369,7 @@ impl StaticMethods for CodegenCx<'ll, 'tcx> {
|
|||
unsafe {
|
||||
let attrs = self.tcx.codegen_fn_attrs(def_id);
|
||||
|
||||
let (v, alloc) = match codegen_static_initializer(&self, def_id) {
|
||||
let (v, alloc) = match codegen_static_initializer(self, def_id) {
|
||||
Ok(v) => v,
|
||||
// Error has already been reported
|
||||
Err(_) => return,
|
||||
|
@ -417,7 +417,7 @@ impl StaticMethods for CodegenCx<'ll, 'tcx> {
|
|||
self.statics_to_rauw.borrow_mut().push((g, new_g));
|
||||
new_g
|
||||
};
|
||||
set_global_alignment(&self, g, self.align_of(ty));
|
||||
set_global_alignment(self, g, self.align_of(ty));
|
||||
llvm::LLVMSetInitializer(g, v);
|
||||
|
||||
if self.should_assume_dso_local(g, true) {
|
||||
|
@ -430,7 +430,7 @@ impl StaticMethods for CodegenCx<'ll, 'tcx> {
|
|||
llvm::LLVMSetGlobalConstant(g, llvm::True);
|
||||
}
|
||||
|
||||
debuginfo::create_global_var_metadata(&self, def_id, g);
|
||||
debuginfo::create_global_var_metadata(self, def_id, g);
|
||||
|
||||
if attrs.flags.contains(CodegenFnAttrFlags::THREAD_LOCAL) {
|
||||
llvm::set_thread_local_mode(g, self.tls_model);
|
||||
|
@ -518,7 +518,7 @@ impl StaticMethods for CodegenCx<'ll, 'tcx> {
|
|||
);
|
||||
}
|
||||
} else {
|
||||
base::set_link_section(g, &attrs);
|
||||
base::set_link_section(g, attrs);
|
||||
}
|
||||
|
||||
if attrs.flags.contains(CodegenFnAttrFlags::USED) {
|
||||
|
|
|
@ -363,7 +363,7 @@ impl<'ll, 'tcx> CodegenCx<'ll, 'tcx> {
|
|||
|
||||
fn create_used_variable_impl(&self, name: &'static CStr, values: &[&'ll Value]) {
|
||||
let section = cstr!("llvm.metadata");
|
||||
let array = self.const_array(&self.type_ptr_to(self.type_i8()), values);
|
||||
let array = self.const_array(self.type_ptr_to(self.type_i8()), values);
|
||||
|
||||
unsafe {
|
||||
let g = llvm::LLVMAddGlobal(self.llmod, self.val_ty(array), name.as_ptr());
|
||||
|
@ -447,7 +447,7 @@ impl MiscMethods<'tcx> for CodegenCx<'ll, 'tcx> {
|
|||
}
|
||||
|
||||
fn sess(&self) -> &Session {
|
||||
&self.tcx.sess
|
||||
self.tcx.sess
|
||||
}
|
||||
|
||||
fn check_overflow(&self) -> bool {
|
||||
|
|
|
@ -73,7 +73,7 @@ pub fn finalize<'ll, 'tcx>(cx: &CodegenCx<'ll, 'tcx>) {
|
|||
mapgen.write_coverage_mapping(expressions, counter_regions, coverage_mapping_buffer);
|
||||
});
|
||||
debug_assert!(
|
||||
coverage_mapping_buffer.len() > 0,
|
||||
!coverage_mapping_buffer.is_empty(),
|
||||
"Every `FunctionCoverage` should have at least one counter"
|
||||
);
|
||||
|
||||
|
@ -311,8 +311,7 @@ fn add_unused_functions<'ll, 'tcx>(cx: &CodegenCx<'ll, 'tcx>) {
|
|||
// for each region in it's MIR.
|
||||
|
||||
// Convert the `HashSet` of `codegenned_def_ids` to a sortable vector, and sort them.
|
||||
let mut sorted_codegenned_def_ids: Vec<DefId> =
|
||||
codegenned_def_ids.iter().map(|def_id| *def_id).collect();
|
||||
let mut sorted_codegenned_def_ids: Vec<DefId> = codegenned_def_ids.iter().copied().collect();
|
||||
sorted_codegenned_def_ids.sort_unstable();
|
||||
|
||||
let mut first_covered_def_id_by_file: FxHashMap<Symbol, DefId> = FxHashMap::default();
|
||||
|
|
|
@ -199,8 +199,8 @@ fn declare_unused_fn(cx: &CodegenCx<'ll, 'tcx>, def_id: &DefId) -> Instance<'tcx
|
|||
);
|
||||
|
||||
let llfn = cx.declare_fn(
|
||||
&tcx.symbol_name(instance).name,
|
||||
&cx.fn_abi_of_fn_ptr(
|
||||
tcx.symbol_name(instance).name,
|
||||
cx.fn_abi_of_fn_ptr(
|
||||
ty::Binder::dummy(tcx.mk_fn_sig(
|
||||
iter::once(tcx.mk_unit()),
|
||||
tcx.mk_unit(),
|
||||
|
|
|
@ -41,7 +41,7 @@ pub fn compute_mir_scopes(
|
|||
// Instantiate all scopes.
|
||||
for idx in 0..mir.source_scopes.len() {
|
||||
let scope = SourceScope::new(idx);
|
||||
make_mir_scope(cx, instance, &mir, fn_dbg_scope, &has_variables, debug_context, scope);
|
||||
make_mir_scope(cx, instance, mir, fn_dbg_scope, &has_variables, debug_context, scope);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ fn make_mir_scope(
|
|||
callee,
|
||||
);
|
||||
let callee_fn_abi = cx.fn_abi_of_instance(callee, ty::List::empty());
|
||||
cx.dbg_scope_fn(callee, &callee_fn_abi, None)
|
||||
cx.dbg_scope_fn(callee, callee_fn_abi, None)
|
||||
}
|
||||
None => unsafe {
|
||||
llvm::LLVMRustDIBuilderCreateLexicalBlock(
|
||||
|
|
|
@ -59,10 +59,8 @@ pub fn get_or_insert_gdb_debug_scripts_section_global(cx: &CodegenCx<'ll, '_>) -
|
|||
}
|
||||
|
||||
pub fn needs_gdb_debug_scripts_section(cx: &CodegenCx<'_, '_>) -> bool {
|
||||
let omit_gdb_pretty_printer_section = cx
|
||||
.tcx
|
||||
.sess
|
||||
.contains_name(&cx.tcx.hir().krate_attrs(), sym::omit_gdb_pretty_printer_section);
|
||||
let omit_gdb_pretty_printer_section =
|
||||
cx.tcx.sess.contains_name(cx.tcx.hir().krate_attrs(), sym::omit_gdb_pretty_printer_section);
|
||||
|
||||
!omit_gdb_pretty_printer_section
|
||||
&& cx.sess().opts.debuginfo != DebugInfo::None
|
||||
|
|
|
@ -477,7 +477,7 @@ fn subroutine_type_metadata(
|
|||
let signature_metadata: Vec<_> = iter::once(
|
||||
// return type
|
||||
match signature.output().kind() {
|
||||
ty::Tuple(ref tys) if tys.is_empty() => None,
|
||||
ty::Tuple(tys) if tys.is_empty() => None,
|
||||
_ => Some(type_metadata(cx, signature.output(), span)),
|
||||
},
|
||||
)
|
||||
|
@ -647,7 +647,7 @@ pub fn type_metadata(cx: &CodegenCx<'ll, 'tcx>, t: Ty<'tcx>, usage_site_span: Sp
|
|||
ty::Never | ty::Bool | ty::Char | ty::Int(_) | ty::Uint(_) | ty::Float(_) => {
|
||||
MetadataCreationResult::new(basic_type_metadata(cx, t), false)
|
||||
}
|
||||
ty::Tuple(ref elements) if elements.is_empty() => {
|
||||
ty::Tuple(elements) if elements.is_empty() => {
|
||||
MetadataCreationResult::new(basic_type_metadata(cx, t), false)
|
||||
}
|
||||
ty::Array(typ, _) | ty::Slice(typ) => {
|
||||
|
@ -746,7 +746,7 @@ pub fn type_metadata(cx: &CodegenCx<'ll, 'tcx>, t: Ty<'tcx>, usage_site_span: Sp
|
|||
.finalize(cx)
|
||||
}
|
||||
},
|
||||
ty::Tuple(ref elements) => {
|
||||
ty::Tuple(elements) => {
|
||||
let tys: Vec<_> = elements.iter().map(|k| k.expect_ty()).collect();
|
||||
prepare_tuple_metadata(cx, t, &tys, unique_type_id, usage_site_span, NO_SCOPE_METADATA)
|
||||
.finalize(cx)
|
||||
|
@ -932,7 +932,7 @@ fn basic_type_metadata(cx: &CodegenCx<'ll, 'tcx>, t: Ty<'tcx>) -> &'ll DIType {
|
|||
|
||||
let (name, encoding) = match t.kind() {
|
||||
ty::Never => ("!", DW_ATE_unsigned),
|
||||
ty::Tuple(ref elements) if elements.is_empty() => ("()", DW_ATE_unsigned),
|
||||
ty::Tuple(elements) if elements.is_empty() => ("()", DW_ATE_unsigned),
|
||||
ty::Bool => ("bool", DW_ATE_boolean),
|
||||
ty::Char => ("char", DW_ATE_unsigned_char),
|
||||
ty::Int(int_ty) if msvc_like_names => (int_ty.msvc_basic_name(), DW_ATE_signed),
|
||||
|
@ -1123,7 +1123,7 @@ pub fn compile_unit_metadata(
|
|||
|
||||
let gcov_cu_info = [
|
||||
path_to_mdstring(debug_context.llcontext, &output_filenames.with_extension("gcno")),
|
||||
path_to_mdstring(debug_context.llcontext, &gcda_path),
|
||||
path_to_mdstring(debug_context.llcontext, gcda_path),
|
||||
cu_desc_metadata,
|
||||
];
|
||||
let gcov_metadata = llvm::LLVMMDNodeInContext(
|
||||
|
@ -1963,17 +1963,13 @@ impl<'tcx> VariantInfo<'_, 'tcx> {
|
|||
}
|
||||
|
||||
fn source_info(&self, cx: &CodegenCx<'ll, 'tcx>) -> Option<SourceInfo<'ll>> {
|
||||
match self {
|
||||
VariantInfo::Generator { def_id, variant_index, .. } => {
|
||||
let span = cx.tcx.generator_layout(*def_id).unwrap().variant_source_info
|
||||
[*variant_index]
|
||||
.span;
|
||||
if !span.is_dummy() {
|
||||
let loc = cx.lookup_debug_loc(span.lo());
|
||||
return Some(SourceInfo { file: file_metadata(cx, &loc.file), line: loc.line });
|
||||
}
|
||||
if let VariantInfo::Generator { def_id, variant_index, .. } = self {
|
||||
let span =
|
||||
cx.tcx.generator_layout(*def_id).unwrap().variant_source_info[*variant_index].span;
|
||||
if !span.is_dummy() {
|
||||
let loc = cx.lookup_debug_loc(span.lo());
|
||||
return Some(SourceInfo { file: file_metadata(cx, &loc.file), line: loc.line });
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
None
|
||||
}
|
||||
|
@ -1994,11 +1990,11 @@ fn describe_enum_variant(
|
|||
let unique_type_id = debug_context(cx)
|
||||
.type_map
|
||||
.borrow_mut()
|
||||
.get_unique_type_id_of_enum_variant(cx, layout.ty, &variant_name);
|
||||
.get_unique_type_id_of_enum_variant(cx, layout.ty, variant_name);
|
||||
create_struct_stub(
|
||||
cx,
|
||||
layout.ty,
|
||||
&variant_name,
|
||||
variant_name,
|
||||
unique_type_id,
|
||||
Some(containing_scope),
|
||||
DIFlags::FlagZero,
|
||||
|
@ -2385,7 +2381,7 @@ fn set_members_of_composite_type(
|
|||
{
|
||||
let mut composite_types_completed =
|
||||
debug_context(cx).composite_types_completed.borrow_mut();
|
||||
if !composite_types_completed.insert(&composite_type_metadata) {
|
||||
if !composite_types_completed.insert(composite_type_metadata) {
|
||||
bug!(
|
||||
"debuginfo::set_members_of_composite_type() - \
|
||||
Already completed forward declaration re-encountered."
|
||||
|
|
|
@ -328,7 +328,7 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
|
|||
// name if necessary.
|
||||
let generics = self.tcx().generics_of(enclosing_fn_def_id);
|
||||
let substs = instance.substs.truncate_to(self.tcx(), generics);
|
||||
let template_parameters = get_template_parameters(self, &generics, substs, &mut name);
|
||||
let template_parameters = get_template_parameters(self, generics, substs, &mut name);
|
||||
|
||||
let linkage_name = &mangled_name_of_instance(self, instance).name;
|
||||
// Omit the linkage_name if it is the same as subprogram name.
|
||||
|
@ -559,7 +559,7 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
|
|||
scope_metadata: &'ll DIScope,
|
||||
file: &rustc_span::SourceFile,
|
||||
) -> &'ll DILexicalBlock {
|
||||
metadata::extend_scope_to_file(&self, scope_metadata, file)
|
||||
metadata::extend_scope_to_file(self, scope_metadata, file)
|
||||
}
|
||||
|
||||
fn debuginfo_finalize(&self) {
|
||||
|
|
|
@ -71,7 +71,7 @@ fn get_simple_intrinsic(cx: &CodegenCx<'ll, '_>, name: Symbol) -> Option<(&'ll T
|
|||
sym::roundf64 => "llvm.round.f64",
|
||||
_ => return None,
|
||||
};
|
||||
Some(cx.get_intrinsic(&llvm_name))
|
||||
Some(cx.get_intrinsic(llvm_name))
|
||||
}
|
||||
|
||||
impl IntrinsicCallMethods<'tcx> for Builder<'a, 'll, 'tcx> {
|
||||
|
@ -743,7 +743,7 @@ fn gen_fn<'ll, 'tcx>(
|
|||
) -> (&'ll Type, &'ll Value) {
|
||||
let fn_abi = cx.fn_abi_of_fn_ptr(rust_fn_sig, ty::List::empty());
|
||||
let llty = fn_abi.llvm_type(cx);
|
||||
let llfn = cx.declare_fn(name, &fn_abi);
|
||||
let llfn = cx.declare_fn(name, fn_abi);
|
||||
cx.set_frame_pointer_type(llfn);
|
||||
cx.apply_target_cpu_attr(llfn);
|
||||
// FIXME(eddyb) find a nicer way to do this.
|
||||
|
@ -1159,7 +1159,7 @@ fn generic_simd_intrinsic(
|
|||
_ => return_error!("unrecognized intrinsic `{}`", name),
|
||||
};
|
||||
let llvm_name = &format!("llvm.{0}.v{1}{2}", intr_name, in_len, elem_ty_str);
|
||||
let f = bx.declare_cfn(&llvm_name, llvm::UnnamedAddr::No, fn_ty);
|
||||
let f = bx.declare_cfn(llvm_name, llvm::UnnamedAddr::No, fn_ty);
|
||||
let c =
|
||||
bx.call(fn_ty, f, &args.iter().map(|arg| arg.immediate()).collect::<Vec<_>>(), None);
|
||||
Ok(c)
|
||||
|
@ -1793,7 +1793,7 @@ unsupported {} from `{}` with element `{}` of size `{}` to `{}`"#,
|
|||
let vec_ty = bx.cx.type_vector(elem_ty, in_len as u64);
|
||||
|
||||
let fn_ty = bx.type_func(&[vec_ty, vec_ty], vec_ty);
|
||||
let f = bx.declare_cfn(&llvm_intrinsic, llvm::UnnamedAddr::No, fn_ty);
|
||||
let f = bx.declare_cfn(llvm_intrinsic, llvm::UnnamedAddr::No, fn_ty);
|
||||
let v = bx.call(fn_ty, f, &[lhs, rhs], None);
|
||||
return Ok(v);
|
||||
}
|
||||
|
|
|
@ -339,7 +339,7 @@ impl ModuleLlvm {
|
|||
unsafe {
|
||||
let llcx = llvm::LLVMRustContextCreate(cgcx.fewer_names);
|
||||
let llmod_raw = back::lto::parse_module(llcx, name, buffer, handler)?;
|
||||
let tm_factory_config = TargetMachineFactoryConfig::new(&cgcx, name.to_str().unwrap());
|
||||
let tm_factory_config = TargetMachineFactoryConfig::new(cgcx, name.to_str().unwrap());
|
||||
let tm = match (cgcx.tm_factory)(tm_factory_config) {
|
||||
Ok(m) => m,
|
||||
Err(e) => {
|
||||
|
|
|
@ -789,7 +789,7 @@ pub mod coverageinfo {
|
|||
start_line,
|
||||
start_col,
|
||||
end_line,
|
||||
end_col: ((1 as u32) << 31) | end_col,
|
||||
end_col: (1_u32 << 31) | end_col,
|
||||
kind: RegionKind::GapRegion,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -298,7 +298,7 @@ fn print_target_features(sess: &Session, tm: &llvm::TargetMachine) {
|
|||
for (feature, desc) in &target_features {
|
||||
println!(" {1:0$} - {2}.", max_feature_len, feature, desc);
|
||||
}
|
||||
if target_features.len() == 0 {
|
||||
if target_features.is_empty() {
|
||||
println!(" Target features listing is not supported by this LLVM version.");
|
||||
}
|
||||
println!("\nUse +feature to enable a feature, or -feature to disable it.");
|
||||
|
|
|
@ -53,10 +53,10 @@ impl PreDefineMethods<'tcx> for CodegenCx<'ll, 'tcx> {
|
|||
assert!(!instance.substs.needs_infer());
|
||||
|
||||
let fn_abi = self.fn_abi_of_instance(instance, ty::List::empty());
|
||||
let lldecl = self.declare_fn(symbol_name, &fn_abi);
|
||||
let lldecl = self.declare_fn(symbol_name, fn_abi);
|
||||
unsafe { llvm::LLVMRustSetLinkage(lldecl, base::linkage_to_llvm(linkage)) };
|
||||
let attrs = self.tcx.codegen_fn_attrs(instance.def_id());
|
||||
base::set_link_section(lldecl, &attrs);
|
||||
base::set_link_section(lldecl, attrs);
|
||||
if linkage == Linkage::LinkOnceODR || linkage == Linkage::WeakODR {
|
||||
llvm::SetUniqueComdat(self.llmod, lldecl);
|
||||
}
|
||||
|
@ -145,10 +145,6 @@ impl CodegenCx<'ll, 'tcx> {
|
|||
|
||||
// With pie relocation model calls of functions defined in the translation
|
||||
// unit can use copy relocations.
|
||||
if self.tcx.sess.relocation_model() == RelocModel::Pie && !is_declaration {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
self.tcx.sess.relocation_model() == RelocModel::Pie && !is_declaration
|
||||
}
|
||||
}
|
||||
|
|
|
@ -248,7 +248,7 @@ impl Type {
|
|||
}
|
||||
|
||||
fn ptr_to(&self, address_space: AddressSpace) -> &Type {
|
||||
unsafe { llvm::LLVMPointerType(&self, address_space.0) }
|
||||
unsafe { llvm::LLVMPointerType(self, address_space.0) }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -232,7 +232,7 @@ impl<'tcx> LayoutLlvmExt<'tcx> for TyAndLayout<'tcx> {
|
|||
cx.type_ptr_to(cx.layout_of(self.ty.boxed_ty()).llvm_type(cx))
|
||||
}
|
||||
ty::FnPtr(sig) => {
|
||||
cx.fn_ptr_backend_type(&cx.fn_abi_of_fn_ptr(sig, ty::List::empty()))
|
||||
cx.fn_ptr_backend_type(cx.fn_abi_of_fn_ptr(sig, ty::List::empty()))
|
||||
}
|
||||
_ => self.scalar_llvm_type_at(cx, scalar, Size::ZERO),
|
||||
};
|
||||
|
@ -245,7 +245,7 @@ impl<'tcx> LayoutLlvmExt<'tcx> for TyAndLayout<'tcx> {
|
|||
Variants::Single { index } => Some(index),
|
||||
_ => None,
|
||||
};
|
||||
if let Some(ref llty) = cx.type_lowering.borrow().get(&(self.ty, variant_index)) {
|
||||
if let Some(llty) = cx.type_lowering.borrow().get(&(self.ty, variant_index)) {
|
||||
return llty.lltype;
|
||||
}
|
||||
|
||||
|
@ -270,10 +270,9 @@ impl<'tcx> LayoutLlvmExt<'tcx> for TyAndLayout<'tcx> {
|
|||
};
|
||||
debug!("--> mapped {:#?} to llty={:?}", self, llty);
|
||||
|
||||
cx.type_lowering.borrow_mut().insert(
|
||||
(self.ty, variant_index),
|
||||
TypeLowering { lltype: llty, field_remapping: field_remapping },
|
||||
);
|
||||
cx.type_lowering
|
||||
.borrow_mut()
|
||||
.insert((self.ty, variant_index), TypeLowering { lltype: llty, field_remapping });
|
||||
|
||||
if let Some((llty, layout)) = defer {
|
||||
let (llfields, packed, new_field_remapping) = struct_llfields(cx, layout);
|
||||
|
|
|
@ -125,7 +125,7 @@ fn emit_aapcs_va_arg(
|
|||
// if the offset >= 0 then the value will be on the stack
|
||||
let mut reg_off_v = bx.load(bx.type_i32(), reg_off, offset_align);
|
||||
let use_stack = bx.icmp(IntPredicate::IntSGE, reg_off_v, zero);
|
||||
bx.cond_br(use_stack, &on_stack.llbb(), &maybe_reg.llbb());
|
||||
bx.cond_br(use_stack, on_stack.llbb(), maybe_reg.llbb());
|
||||
|
||||
// The value at this point might be in a register, but there is a chance that
|
||||
// it could be on the stack so we have to update the offset and then check
|
||||
|
@ -142,7 +142,7 @@ fn emit_aapcs_va_arg(
|
|||
// Check to see if we have overflowed the registers as a result of this.
|
||||
// If we have then we need to use the stack for this value
|
||||
let use_stack = maybe_reg.icmp(IntPredicate::IntSGT, new_reg_off_v, zero);
|
||||
maybe_reg.cond_br(use_stack, &on_stack.llbb(), &in_reg.llbb());
|
||||
maybe_reg.cond_br(use_stack, on_stack.llbb(), in_reg.llbb());
|
||||
|
||||
let top_type = bx.type_i8p();
|
||||
let top = in_reg.struct_gep(va_list_ty, va_list_addr, reg_top_index);
|
||||
|
@ -158,17 +158,17 @@ fn emit_aapcs_va_arg(
|
|||
let reg_type = layout.llvm_type(bx);
|
||||
let reg_addr = in_reg.bitcast(reg_addr, bx.cx.type_ptr_to(reg_type));
|
||||
let reg_value = in_reg.load(reg_type, reg_addr, layout.align.abi);
|
||||
in_reg.br(&end.llbb());
|
||||
in_reg.br(end.llbb());
|
||||
|
||||
// On Stack block
|
||||
let stack_value =
|
||||
emit_ptr_va_arg(&mut on_stack, list, target_ty, false, Align::from_bytes(8).unwrap(), true);
|
||||
on_stack.br(&end.llbb());
|
||||
on_stack.br(end.llbb());
|
||||
|
||||
let val = end.phi(
|
||||
layout.immediate_llvm_type(bx),
|
||||
&[reg_value, stack_value],
|
||||
&[&in_reg.llbb(), &on_stack.llbb()],
|
||||
&[in_reg.llbb(), on_stack.llbb()],
|
||||
);
|
||||
|
||||
*bx = end;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue