Skip to content

Commit 8486571

Browse files
committed
rustc_target: rename TyAndLayoutMethods to TyAbiInterface.
1 parent 83d986a commit 8486571

File tree

15 files changed

+84
-71
lines changed

15 files changed

+84
-71
lines changed

compiler/rustc_codegen_llvm/src/type_of.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use rustc_middle::ty::print::with_no_trimmed_paths;
99
use rustc_middle::ty::{self, Ty, TypeFoldable};
1010
use rustc_target::abi::{Abi, AddressSpace, Align, FieldsShape};
1111
use rustc_target::abi::{Int, Pointer, F32, F64};
12-
use rustc_target::abi::{LayoutOf, PointeeInfo, Scalar, Size, TyAndLayoutMethods, Variants};
12+
use rustc_target::abi::{LayoutOf, PointeeInfo, Scalar, Size, TyAbiInterface, Variants};
1313
use smallvec::{smallvec, SmallVec};
1414
use tracing::debug;
1515

@@ -393,12 +393,15 @@ impl<'tcx> LayoutLlvmExt<'tcx> for TyAndLayout<'tcx> {
393393
}
394394
}
395395

396+
// FIXME(eddyb) this having the same name as `TyAndLayout::pointee_info_at`
397+
// (the inherent method, which is lacking this caching logic) can result in
398+
// the uncached version being called - not wrong, but potentially inefficient.
396399
fn pointee_info_at<'a>(&self, cx: &CodegenCx<'a, 'tcx>, offset: Size) -> Option<PointeeInfo> {
397400
if let Some(&pointee) = cx.pointee_infos.borrow().get(&(self.ty, offset)) {
398401
return pointee;
399402
}
400403

401-
let result = Ty::pointee_info_at(*self, cx, offset);
404+
let result = Ty::ty_and_layout_pointee_info_at(*self, cx, offset);
402405

403406
cx.pointee_infos.borrow_mut().insert((self.ty, offset), result);
404407
result

compiler/rustc_middle/src/ty/layout.rs

+8-4
Original file line numberDiff line numberDiff line change
@@ -2078,11 +2078,11 @@ impl LayoutOf<'tcx> for LayoutCx<'tcx, ty::query::TyCtxtAt<'tcx>> {
20782078
}
20792079
}
20802080

2081-
impl<'tcx, C> TyAndLayoutMethods<'tcx, C> for Ty<'tcx>
2081+
impl<'tcx, C> TyAbiInterface<'tcx, C> for Ty<'tcx>
20822082
where
20832083
C: LayoutOf<'tcx, Ty = Ty<'tcx>> + HasTyCtxt<'tcx> + HasParamEnv<'tcx>,
20842084
{
2085-
fn for_variant(
2085+
fn ty_and_layout_for_variant(
20862086
this: TyAndLayout<'tcx>,
20872087
cx: &C,
20882088
variant_index: VariantIdx,
@@ -2132,7 +2132,7 @@ where
21322132
TyAndLayout { ty: this.ty, layout }
21332133
}
21342134

2135-
fn field(this: TyAndLayout<'tcx>, cx: &C, i: usize) -> C::TyAndLayout {
2135+
fn ty_and_layout_field(this: TyAndLayout<'tcx>, cx: &C, i: usize) -> C::TyAndLayout {
21362136
enum TyMaybeWithLayout<'tcx, C: LayoutOf<'tcx>> {
21372137
Ty(C::Ty),
21382138
TyAndLayout(C::TyAndLayout),
@@ -2276,7 +2276,11 @@ where
22762276
})
22772277
}
22782278

2279-
fn pointee_info_at(this: TyAndLayout<'tcx>, cx: &C, offset: Size) -> Option<PointeeInfo> {
2279+
fn ty_and_layout_pointee_info_at(
2280+
this: TyAndLayout<'tcx>,
2281+
cx: &C,
2282+
offset: Size,
2283+
) -> Option<PointeeInfo> {
22802284
let addr_space_of_ty = |ty: Ty<'tcx>| {
22812285
if ty.is_fn() { cx.data_layout().instruction_address_space } else { AddressSpace::DATA }
22822286
};

compiler/rustc_target/src/abi/call/aarch64.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use crate::abi::call::{ArgAbi, FnAbi, Reg, RegKind, Uniform};
2-
use crate::abi::{HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods};
2+
use crate::abi::{HasDataLayout, LayoutOf, TyAbiInterface, TyAndLayout};
33

44
fn is_homogeneous_aggregate<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>) -> Option<Uniform>
55
where
6-
Ty: TyAndLayoutMethods<'a, C> + Copy,
6+
Ty: TyAbiInterface<'a, C> + Copy,
77
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
88
{
99
arg.layout.homogeneous_aggregate(cx).ok().and_then(|ha| ha.unit()).and_then(|unit| {
@@ -26,7 +26,7 @@ where
2626

2727
fn classify_ret<'a, Ty, C>(cx: &C, ret: &mut ArgAbi<'a, Ty>)
2828
where
29-
Ty: TyAndLayoutMethods<'a, C> + Copy,
29+
Ty: TyAbiInterface<'a, C> + Copy,
3030
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
3131
{
3232
if !ret.layout.is_aggregate() {
@@ -48,7 +48,7 @@ where
4848

4949
fn classify_arg<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>)
5050
where
51-
Ty: TyAndLayoutMethods<'a, C> + Copy,
51+
Ty: TyAbiInterface<'a, C> + Copy,
5252
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
5353
{
5454
if !arg.layout.is_aggregate() {
@@ -70,7 +70,7 @@ where
7070

7171
pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
7272
where
73-
Ty: TyAndLayoutMethods<'a, C> + Copy,
73+
Ty: TyAbiInterface<'a, C> + Copy,
7474
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
7575
{
7676
if !fn_abi.ret.is_ignore() {

compiler/rustc_target/src/abi/call/amdgpu.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
use crate::abi::call::{ArgAbi, FnAbi};
2-
use crate::abi::{HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods};
2+
use crate::abi::{HasDataLayout, LayoutOf, TyAbiInterface, TyAndLayout};
33

44
fn classify_ret<'a, Ty, C>(_cx: &C, ret: &mut ArgAbi<'a, Ty>)
55
where
6-
Ty: TyAndLayoutMethods<'a, C> + Copy,
6+
Ty: TyAbiInterface<'a, C> + Copy,
77
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
88
{
99
ret.extend_integer_width_to(32);
1010
}
1111

1212
fn classify_arg<'a, Ty, C>(_cx: &C, arg: &mut ArgAbi<'a, Ty>)
1313
where
14-
Ty: TyAndLayoutMethods<'a, C> + Copy,
14+
Ty: TyAbiInterface<'a, C> + Copy,
1515
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
1616
{
1717
arg.extend_integer_width_to(32);
1818
}
1919

2020
pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
2121
where
22-
Ty: TyAndLayoutMethods<'a, C> + Copy,
22+
Ty: TyAbiInterface<'a, C> + Copy,
2323
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
2424
{
2525
if !fn_abi.ret.is_ignore() {

compiler/rustc_target/src/abi/call/arm.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use crate::abi::call::{ArgAbi, Conv, FnAbi, Reg, RegKind, Uniform};
2-
use crate::abi::{HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods};
2+
use crate::abi::{HasDataLayout, LayoutOf, TyAbiInterface, TyAndLayout};
33
use crate::spec::HasTargetSpec;
44

55
fn is_homogeneous_aggregate<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>) -> Option<Uniform>
66
where
7-
Ty: TyAndLayoutMethods<'a, C> + Copy,
7+
Ty: TyAbiInterface<'a, C> + Copy,
88
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
99
{
1010
arg.layout.homogeneous_aggregate(cx).ok().and_then(|ha| ha.unit()).and_then(|unit| {
@@ -27,7 +27,7 @@ where
2727

2828
fn classify_ret<'a, Ty, C>(cx: &C, ret: &mut ArgAbi<'a, Ty>, vfp: bool)
2929
where
30-
Ty: TyAndLayoutMethods<'a, C> + Copy,
30+
Ty: TyAbiInterface<'a, C> + Copy,
3131
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
3232
{
3333
if !ret.layout.is_aggregate() {
@@ -53,7 +53,7 @@ where
5353

5454
fn classify_arg<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>, vfp: bool)
5555
where
56-
Ty: TyAndLayoutMethods<'a, C> + Copy,
56+
Ty: TyAbiInterface<'a, C> + Copy,
5757
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
5858
{
5959
if !arg.layout.is_aggregate() {
@@ -75,7 +75,7 @@ where
7575

7676
pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
7777
where
78-
Ty: TyAndLayoutMethods<'a, C> + Copy,
78+
Ty: TyAbiInterface<'a, C> + Copy,
7979
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout + HasTargetSpec,
8080
{
8181
// If this is a target with a hard-float ABI, and the function is not explicitly

compiler/rustc_target/src/abi/call/mips64.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::abi::call::{ArgAbi, ArgExtension, CastTarget, FnAbi, PassMode, Reg, RegKind, Uniform};
2-
use crate::abi::{self, HasDataLayout, LayoutOf, Size, TyAndLayout, TyAndLayoutMethods};
2+
use crate::abi::{self, HasDataLayout, LayoutOf, Size, TyAbiInterface, TyAndLayout};
33

44
fn extend_integer_width_mips<Ty>(arg: &mut ArgAbi<'_, Ty>, bits: u64) {
55
// Always sign extend u32 values on 64-bit mips
@@ -19,7 +19,7 @@ fn extend_integer_width_mips<Ty>(arg: &mut ArgAbi<'_, Ty>, bits: u64) {
1919

2020
fn float_reg<'a, Ty, C>(cx: &C, ret: &ArgAbi<'a, Ty>, i: usize) -> Option<Reg>
2121
where
22-
Ty: TyAndLayoutMethods<'a, C> + Copy,
22+
Ty: TyAbiInterface<'a, C> + Copy,
2323
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
2424
{
2525
match ret.layout.field(cx, i).abi {
@@ -34,7 +34,7 @@ where
3434

3535
fn classify_ret<'a, Ty, C>(cx: &C, ret: &mut ArgAbi<'a, Ty>)
3636
where
37-
Ty: TyAndLayoutMethods<'a, C> + Copy,
37+
Ty: TyAbiInterface<'a, C> + Copy,
3838
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
3939
{
4040
if !ret.layout.is_aggregate() {
@@ -74,7 +74,7 @@ where
7474

7575
fn classify_arg<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>)
7676
where
77-
Ty: TyAndLayoutMethods<'a, C> + Copy,
77+
Ty: TyAbiInterface<'a, C> + Copy,
7878
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
7979
{
8080
if !arg.layout.is_aggregate() {
@@ -144,7 +144,7 @@ where
144144

145145
pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
146146
where
147-
Ty: TyAndLayoutMethods<'a, C> + Copy,
147+
Ty: TyAbiInterface<'a, C> + Copy,
148148
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
149149
{
150150
if !fn_abi.ret.is_ignore() {

compiler/rustc_target/src/abi/call/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::abi::{self, Abi, Align, FieldsShape, Size};
2-
use crate::abi::{HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods};
2+
use crate::abi::{HasDataLayout, LayoutOf, TyAbiInterface, TyAndLayout};
33
use crate::spec::{self, HasTargetSpec};
44

55
mod aarch64;
@@ -316,7 +316,7 @@ impl<'a, Ty> TyAndLayout<'a, Ty> {
316316
/// specific targets.
317317
pub fn homogeneous_aggregate<C>(&self, cx: &C) -> Result<HomogeneousAggregate, Heterogeneous>
318318
where
319-
Ty: TyAndLayoutMethods<'a, C> + Copy,
319+
Ty: TyAbiInterface<'a, C> + Copy,
320320
C: LayoutOf<'a, Ty = Ty, TyAndLayout = Self>,
321321
{
322322
match self.abi {
@@ -603,7 +603,7 @@ pub struct FnAbi<'a, Ty> {
603603
impl<'a, Ty> FnAbi<'a, Ty> {
604604
pub fn adjust_for_cabi<C>(&mut self, cx: &C, abi: spec::abi::Abi) -> Result<(), String>
605605
where
606-
Ty: TyAndLayoutMethods<'a, C> + Copy,
606+
Ty: TyAbiInterface<'a, C> + Copy,
607607
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout + HasTargetSpec,
608608
{
609609
if abi == spec::abi::Abi::X86Interrupt {

compiler/rustc_target/src/abi/call/powerpc64.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// need to be fixed when PowerPC vector support is added.
44

55
use crate::abi::call::{ArgAbi, FnAbi, Reg, RegKind, Uniform};
6-
use crate::abi::{Endian, HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods};
6+
use crate::abi::{Endian, HasDataLayout, LayoutOf, TyAbiInterface, TyAndLayout};
77
use crate::spec::HasTargetSpec;
88

99
#[derive(Debug, Clone, Copy, PartialEq)]
@@ -19,7 +19,7 @@ fn is_homogeneous_aggregate<'a, Ty, C>(
1919
abi: ABI,
2020
) -> Option<Uniform>
2121
where
22-
Ty: TyAndLayoutMethods<'a, C> + Copy,
22+
Ty: TyAbiInterface<'a, C> + Copy,
2323
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
2424
{
2525
arg.layout.homogeneous_aggregate(cx).ok().and_then(|ha| ha.unit()).and_then(|unit| {
@@ -43,7 +43,7 @@ where
4343

4444
fn classify_ret<'a, Ty, C>(cx: &C, ret: &mut ArgAbi<'a, Ty>, abi: ABI)
4545
where
46-
Ty: TyAndLayoutMethods<'a, C> + Copy,
46+
Ty: TyAbiInterface<'a, C> + Copy,
4747
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
4848
{
4949
if !ret.layout.is_aggregate() {
@@ -86,7 +86,7 @@ where
8686

8787
fn classify_arg<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>, abi: ABI)
8888
where
89-
Ty: TyAndLayoutMethods<'a, C> + Copy,
89+
Ty: TyAbiInterface<'a, C> + Copy,
9090
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
9191
{
9292
if !arg.layout.is_aggregate() {
@@ -116,7 +116,7 @@ where
116116

117117
pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
118118
where
119-
Ty: TyAndLayoutMethods<'a, C> + Copy,
119+
Ty: TyAbiInterface<'a, C> + Copy,
120120
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout + HasTargetSpec,
121121
{
122122
let abi = if cx.target_spec().env == "musl" {

compiler/rustc_target/src/abi/call/riscv.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use crate::abi::call::{ArgAbi, ArgExtension, CastTarget, FnAbi, PassMode, Reg, RegKind, Uniform};
88
use crate::abi::{
9-
self, Abi, FieldsShape, HasDataLayout, LayoutOf, Size, TyAndLayout, TyAndLayoutMethods,
9+
self, Abi, FieldsShape, HasDataLayout, LayoutOf, Size, TyAbiInterface, TyAndLayout,
1010
};
1111
use crate::spec::HasTargetSpec;
1212

@@ -43,7 +43,7 @@ fn should_use_fp_conv_helper<'a, Ty, C>(
4343
field2_kind: &mut RegPassKind,
4444
) -> Result<(), CannotUseFpConv>
4545
where
46-
Ty: TyAndLayoutMethods<'a, C> + Copy,
46+
Ty: TyAbiInterface<'a, C> + Copy,
4747
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>>,
4848
{
4949
match arg_layout.abi {
@@ -130,7 +130,7 @@ fn should_use_fp_conv<'a, Ty, C>(
130130
flen: u64,
131131
) -> Option<FloatConv>
132132
where
133-
Ty: TyAndLayoutMethods<'a, C> + Copy,
133+
Ty: TyAbiInterface<'a, C> + Copy,
134134
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>>,
135135
{
136136
let mut field1_kind = RegPassKind::Unknown;
@@ -149,7 +149,7 @@ where
149149

150150
fn classify_ret<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>, xlen: u64, flen: u64) -> bool
151151
where
152-
Ty: TyAndLayoutMethods<'a, C> + Copy,
152+
Ty: TyAbiInterface<'a, C> + Copy,
153153
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>>,
154154
{
155155
if let Some(conv) = should_use_fp_conv(cx, &arg.layout, xlen, flen) {
@@ -212,7 +212,7 @@ fn classify_arg<'a, Ty, C>(
212212
avail_gprs: &mut u64,
213213
avail_fprs: &mut u64,
214214
) where
215-
Ty: TyAndLayoutMethods<'a, C> + Copy,
215+
Ty: TyAbiInterface<'a, C> + Copy,
216216
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>>,
217217
{
218218
if !is_vararg {
@@ -320,7 +320,7 @@ fn extend_integer_width<'a, Ty>(arg: &mut ArgAbi<'a, Ty>, xlen: u64) {
320320

321321
pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
322322
where
323-
Ty: TyAndLayoutMethods<'a, C> + Copy,
323+
Ty: TyAbiInterface<'a, C> + Copy,
324324
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout + HasTargetSpec,
325325
{
326326
let flen = match &cx.target_spec().llvm_abiname[..] {

compiler/rustc_target/src/abi/call/s390x.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// for a pre-z13 machine or using -mno-vx.
33

44
use crate::abi::call::{ArgAbi, FnAbi, Reg};
5-
use crate::abi::{self, HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods};
5+
use crate::abi::{self, HasDataLayout, LayoutOf, TyAbiInterface, TyAndLayout};
66

77
fn classify_ret<Ty>(ret: &mut ArgAbi<'_, Ty>) {
88
if !ret.layout.is_aggregate() && ret.layout.size.bits() <= 64 {
@@ -14,7 +14,7 @@ fn classify_ret<Ty>(ret: &mut ArgAbi<'_, Ty>) {
1414

1515
fn is_single_fp_element<'a, Ty, C>(cx: &C, layout: TyAndLayout<'a, Ty>) -> bool
1616
where
17-
Ty: TyAndLayoutMethods<'a, C>,
17+
Ty: TyAbiInterface<'a, C>,
1818
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
1919
{
2020
match layout.abi {
@@ -32,7 +32,7 @@ where
3232

3333
fn classify_arg<'a, Ty, C>(cx: &C, arg: &mut ArgAbi<'a, Ty>)
3434
where
35-
Ty: TyAndLayoutMethods<'a, C> + Copy,
35+
Ty: TyAbiInterface<'a, C> + Copy,
3636
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
3737
{
3838
if !arg.layout.is_aggregate() && arg.layout.size.bits() <= 64 {
@@ -59,7 +59,7 @@ where
5959

6060
pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
6161
where
62-
Ty: TyAndLayoutMethods<'a, C> + Copy,
62+
Ty: TyAbiInterface<'a, C> + Copy,
6363
C: LayoutOf<'a, Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
6464
{
6565
if !fn_abi.ret.is_ignore() {

0 commit comments

Comments
 (0)