Skip to content

Commit a8a722f

Browse files
committed
Sync from rust 0308df2
2 parents 84afcee + 648f5e4 commit a8a722f

File tree

16 files changed

+70
-65
lines changed

16 files changed

+70
-65
lines changed

example/float-minmax-pass.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ fn main() {
2222

2323
#[cfg(not(any(target_arch = "mips", target_arch = "mips64")))]
2424
let nan = f32::NAN;
25-
// MIPS hardware treats f32::NAN as SNAN. Clear the signaling bit.
25+
// MIPS hardware except MIPS R6 treats f32::NAN as SNAN. Clear the signaling bit.
2626
// See https://github.com/rust-lang/rust/issues/52746.
2727
#[cfg(any(target_arch = "mips", target_arch = "mips64"))]
2828
let nan = f32::from_bits(f32::NAN.to_bits() - 1);

src/abi/comments.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,7 @@ pub(super) fn add_local_place_comments<'tcx>(
8080
return;
8181
}
8282
let TyAndLayout { ty, layout } = place.layout();
83-
let rustc_target::abi::LayoutS {
84-
size,
85-
align,
86-
abi: _,
87-
variants: _,
88-
fields: _,
89-
largest_niche: _,
90-
} = layout.0.0;
83+
let rustc_target::abi::LayoutS { size, align, .. } = layout.0.0;
9184

9285
let (kind, extra) = place.debug_comment();
9386

src/abi/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ pub(crate) fn get_function_sig<'tcx>(
7070
default_call_conv: CallConv,
7171
inst: Instance<'tcx>,
7272
) -> Signature {
73-
assert!(!inst.substs.has_infer());
73+
assert!(!inst.args.has_infer());
7474
clif_sig_from_fn_abi(
7575
tcx,
7676
default_call_conv,
@@ -377,16 +377,16 @@ pub(crate) fn codegen_terminator_call<'tcx>(
377377
let ret_place = codegen_place(fx, destination);
378378

379379
// Handle special calls like intrinsics and empty drop glue.
380-
let instance = if let ty::FnDef(def_id, substs) = *func.layout().ty.kind() {
380+
let instance = if let ty::FnDef(def_id, fn_args) = *func.layout().ty.kind() {
381381
let instance =
382-
ty::Instance::expect_resolve(fx.tcx, ty::ParamEnv::reveal_all(), def_id, substs)
382+
ty::Instance::expect_resolve(fx.tcx, ty::ParamEnv::reveal_all(), def_id, fn_args)
383383
.polymorphize(fx.tcx);
384384

385385
if fx.tcx.symbol_name(instance).name.starts_with("llvm.") {
386386
crate::intrinsics::codegen_llvm_intrinsic_call(
387387
fx,
388388
&fx.tcx.symbol_name(instance).name,
389-
substs,
389+
fn_args,
390390
args,
391391
ret_place,
392392
target,
@@ -616,7 +616,7 @@ pub(crate) fn codegen_drop<'tcx>(
616616
// `Instance::resolve_drop_in_place`?
617617
let virtual_drop = Instance {
618618
def: ty::InstanceDef::Virtual(drop_instance.def_id(), 0),
619-
substs: drop_instance.substs,
619+
args: drop_instance.args,
620620
};
621621
let fn_abi =
622622
RevealAllLayoutCx(fx.tcx).fn_abi_of_instance(virtual_drop, ty::List::empty());
@@ -653,7 +653,7 @@ pub(crate) fn codegen_drop<'tcx>(
653653

654654
let virtual_drop = Instance {
655655
def: ty::InstanceDef::Virtual(drop_instance.def_id(), 0),
656-
substs: drop_instance.substs,
656+
args: drop_instance.args,
657657
};
658658
let fn_abi =
659659
RevealAllLayoutCx(fx.tcx).fn_abi_of_instance(virtual_drop, ty::List::empty());

src/base.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ pub(crate) fn codegen_fn<'tcx>(
3030
module: &mut dyn Module,
3131
instance: Instance<'tcx>,
3232
) -> CodegenedFunction {
33-
debug_assert!(!instance.substs.has_infer());
33+
debug_assert!(!instance.args.has_infer());
3434

3535
let symbol_name = tcx.symbol_name(instance).name.to_string();
3636
let _timer = tcx.prof.generic_activity_with_arg("codegen fn", &*symbol_name);
@@ -594,13 +594,13 @@ fn codegen_stmt<'tcx>(
594594
let from_ty = fx.monomorphize(operand.ty(&fx.mir.local_decls, fx.tcx));
595595
let to_layout = fx.layout_of(fx.monomorphize(to_ty));
596596
match *from_ty.kind() {
597-
ty::FnDef(def_id, substs) => {
597+
ty::FnDef(def_id, args) => {
598598
let func_ref = fx.get_function_ref(
599599
Instance::resolve_for_fn_ptr(
600600
fx.tcx,
601601
ParamEnv::reveal_all(),
602602
def_id,
603-
substs,
603+
args,
604604
)
605605
.unwrap()
606606
.polymorphize(fx.tcx),
@@ -684,11 +684,11 @@ fn codegen_stmt<'tcx>(
684684
) => {
685685
let operand = codegen_operand(fx, operand);
686686
match *operand.layout().ty.kind() {
687-
ty::Closure(def_id, substs) => {
687+
ty::Closure(def_id, args) => {
688688
let instance = Instance::resolve_closure(
689689
fx.tcx,
690690
def_id,
691-
substs,
691+
args,
692692
ty::ClosureKind::FnOnce,
693693
)
694694
.expect("failed to normalize and resolve closure during codegen")

src/constant.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub(crate) fn codegen_tls_ref<'tcx>(
5757
let tls_ptr = if !def_id.is_local() && fx.tcx.needs_thread_local_shim(def_id) {
5858
let instance = ty::Instance {
5959
def: ty::InstanceDef::ThreadLocalShim(def_id),
60-
substs: ty::InternalSubsts::empty(),
60+
args: ty::GenericArgs::empty(),
6161
};
6262
let func_ref = fx.get_function_ref(instance);
6363
let call = fx.bcx.ins().call(func_ref, &[]);

src/driver/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
//! [`codegen_static`]: crate::constant::codegen_static
66
77
use rustc_data_structures::profiling::SelfProfilerRef;
8-
use rustc_middle::mir::mono::{Linkage as RLinkage, MonoItem, Visibility};
8+
use rustc_middle::mir::mono::{MonoItem, MonoItemData};
99

1010
use crate::prelude::*;
1111

@@ -16,11 +16,11 @@ pub(crate) mod jit;
1616
fn predefine_mono_items<'tcx>(
1717
tcx: TyCtxt<'tcx>,
1818
module: &mut dyn Module,
19-
mono_items: &[(MonoItem<'tcx>, (RLinkage, Visibility))],
19+
mono_items: &[(MonoItem<'tcx>, MonoItemData)],
2020
) {
2121
tcx.prof.generic_activity("predefine functions").run(|| {
2222
let is_compiler_builtins = tcx.is_compiler_builtins(LOCAL_CRATE);
23-
for &(mono_item, (linkage, visibility)) in mono_items {
23+
for &(mono_item, data) in mono_items {
2424
match mono_item {
2525
MonoItem::Fn(instance) => {
2626
let name = tcx.symbol_name(instance).name;
@@ -29,8 +29,8 @@ fn predefine_mono_items<'tcx>(
2929
get_function_sig(tcx, module.target_config().default_call_conv, instance);
3030
let linkage = crate::linkage::get_clif_linkage(
3131
mono_item,
32-
linkage,
33-
visibility,
32+
data.linkage,
33+
data.visibility,
3434
is_compiler_builtins,
3535
);
3636
module.declare_function(name, linkage, &sig).unwrap();

src/global_asm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub(crate) fn codegen_global_asm_item(tcx: TyCtxt<'_>, global_asm: &mut String,
4242
InlineAsmOperand::SymFn { anon_const } => {
4343
let ty = tcx.typeck_body(anon_const.body).node_type(anon_const.hir_id);
4444
let instance = match ty.kind() {
45-
&ty::FnDef(def_id, substs) => Instance::new(def_id, substs),
45+
&ty::FnDef(def_id, args) => Instance::new(def_id, args),
4646
_ => span_bug!(op_sp, "asm sym is not a function"),
4747
};
4848
let symbol = tcx.symbol_name(instance);

src/inline_asm.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,12 +254,12 @@ pub(crate) fn codegen_inline_asm<'tcx>(
254254
}
255255
InlineAsmOperand::SymFn { ref value } => {
256256
let literal = fx.monomorphize(value.literal);
257-
if let ty::FnDef(def_id, substs) = *literal.ty().kind() {
257+
if let ty::FnDef(def_id, args) = *literal.ty().kind() {
258258
let instance = ty::Instance::resolve_for_fn_ptr(
259259
fx.tcx,
260260
ty::ParamEnv::reveal_all(),
261261
def_id,
262-
substs,
262+
args,
263263
)
264264
.unwrap();
265265
let symbol = fx.tcx.symbol_name(instance);

src/intrinsics/llvm.rs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,35 @@
33
use crate::intrinsics::*;
44
use crate::prelude::*;
55

6-
use rustc_middle::ty::subst::SubstsRef;
6+
use rustc_middle::ty::GenericArgsRef;
77

88
pub(crate) fn codegen_llvm_intrinsic_call<'tcx>(
99
fx: &mut FunctionCx<'_, '_, 'tcx>,
1010
intrinsic: &str,
11-
substs: SubstsRef<'tcx>,
11+
generic_args: GenericArgsRef<'tcx>,
1212
args: &[mir::Operand<'tcx>],
1313
ret: CPlace<'tcx>,
1414
target: Option<BasicBlock>,
1515
) {
1616
if intrinsic.starts_with("llvm.aarch64") {
1717
return llvm_aarch64::codegen_aarch64_llvm_intrinsic_call(
18-
fx, intrinsic, substs, args, ret, target,
18+
fx,
19+
intrinsic,
20+
generic_args,
21+
args,
22+
ret,
23+
target,
1924
);
2025
}
2126
if intrinsic.starts_with("llvm.x86") {
22-
return llvm_x86::codegen_x86_llvm_intrinsic_call(fx, intrinsic, substs, args, ret, target);
27+
return llvm_x86::codegen_x86_llvm_intrinsic_call(
28+
fx,
29+
intrinsic,
30+
generic_args,
31+
args,
32+
ret,
33+
target,
34+
);
2335
}
2436

2537
match intrinsic {

src/intrinsics/llvm_aarch64.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
use crate::intrinsics::*;
44
use crate::prelude::*;
55

6-
use rustc_middle::ty::subst::SubstsRef;
6+
use rustc_middle::ty::GenericArgsRef;
77

88
pub(crate) fn codegen_aarch64_llvm_intrinsic_call<'tcx>(
99
fx: &mut FunctionCx<'_, '_, 'tcx>,
1010
intrinsic: &str,
11-
_substs: SubstsRef<'tcx>,
11+
_args: GenericArgsRef<'tcx>,
1212
args: &[mir::Operand<'tcx>],
1313
ret: CPlace<'tcx>,
1414
target: Option<BasicBlock>,

0 commit comments

Comments
 (0)