Skip to content

Commit c055207

Browse files
compiler: Directly use rustc_abi in const_eval
1 parent b895bf4 commit c055207

17 files changed

+25
-28
lines changed

compiler/rustc_const_eval/src/const_eval/dummy_machine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ impl<'tcx> interpret::Machine<'tcx> for DummyMachine {
8686
fn find_mir_or_eval_fn(
8787
_ecx: &mut InterpCx<'tcx, Self>,
8888
_instance: ty::Instance<'tcx>,
89-
_abi: rustc_target::spec::abi::Abi,
89+
_abi: rustc_abi::ExternAbi,
9090
_args: &[interpret::FnArg<'tcx, Self::Provenance>],
9191
_destination: &interpret::MPlaceTy<'tcx, Self::Provenance>,
9292
_target: Option<BasicBlock>,

compiler/rustc_const_eval/src/const_eval/machine.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::fmt;
33
use std::hash::Hash;
44
use std::ops::ControlFlow;
55

6+
use rustc_abi::{Align, ExternAbi as CallAbi, Size};
67
use rustc_ast::Mutability;
78
use rustc_data_structures::fx::{FxHashMap, FxIndexMap, IndexEntry};
89
use rustc_hir::def_id::{DefId, LocalDefId};
@@ -14,8 +15,6 @@ use rustc_middle::ty::{self, Ty, TyCtxt};
1415
use rustc_middle::{bug, mir};
1516
use rustc_span::Span;
1617
use rustc_span::symbol::{Symbol, sym};
17-
use rustc_target::abi::{Align, Size};
18-
use rustc_target::spec::abi::Abi as CallAbi;
1918
use tracing::debug;
2019

2120
use super::error::*;

compiler/rustc_const_eval/src/const_eval/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// Not in interpret to make sure we do not use private implementation details
22

3+
use rustc_abi::VariantIdx;
34
use rustc_middle::query::{Key, TyCtxtAt};
45
use rustc_middle::ty::{self, Ty, TyCtxt};
56
use rustc_middle::{bug, mir};
6-
use rustc_target::abi::VariantIdx;
77
use tracing::instrument;
88

99
use crate::interpret::InterpCx;

compiler/rustc_const_eval/src/errors.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::borrow::Cow;
22
use std::fmt::Write;
33

44
use either::Either;
5+
use rustc_abi::WrappingRange;
56
use rustc_errors::codes::*;
67
use rustc_errors::{
78
Diag, DiagArgValue, DiagCtxtHandle, DiagMessage, Diagnostic, EmissionGuarantee, Level,
@@ -15,8 +16,7 @@ use rustc_middle::mir::interpret::{
1516
};
1617
use rustc_middle::ty::{self, Mutability, Ty};
1718
use rustc_span::{Span, Symbol};
18-
use rustc_target::abi::WrappingRange;
19-
use rustc_target::abi::call::AdjustForForeignAbiError;
19+
use rustc_target::callconv::AdjustForForeignAbiError;
2020

2121
use crate::interpret::InternKind;
2222

compiler/rustc_const_eval/src/interpret/call.rs

+6-7
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ use std::assert_matches::assert_matches;
44
use std::borrow::Cow;
55

66
use either::{Left, Right};
7+
use rustc_abi::{self as abi, ExternAbi, FieldIdx, Integer};
78
use rustc_middle::ty::layout::{FnAbiOf, IntegerExt, LayoutOf, TyAndLayout};
89
use rustc_middle::ty::{self, AdtDef, Instance, Ty};
910
use rustc_middle::{bug, mir, span_bug};
1011
use rustc_span::sym;
11-
use rustc_target::abi::call::{ArgAbi, FnAbi, PassMode};
12-
use rustc_target::abi::{self, FieldIdx, Integer};
13-
use rustc_target::spec::abi::Abi;
12+
use rustc_target::callconv::{ArgAbi, FnAbi, PassMode};
1413
use tracing::{info, instrument, trace};
1514

1615
use super::{
@@ -488,7 +487,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
488487
pub(super) fn init_fn_call(
489488
&mut self,
490489
fn_val: FnVal<'tcx, M::ExtraFnVal>,
491-
(caller_abi, caller_fn_abi): (Abi, &FnAbi<'tcx, Ty<'tcx>>),
490+
(caller_abi, caller_fn_abi): (ExternAbi, &FnAbi<'tcx, Ty<'tcx>>),
492491
args: &[FnArg<'tcx, M::Provenance>],
493492
with_caller_location: bool,
494493
destination: &MPlaceTy<'tcx, M::Provenance>,
@@ -566,7 +565,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
566565

567566
// Special handling for the closure ABI: untuple the last argument.
568567
let args: Cow<'_, [FnArg<'tcx, M::Provenance>]> =
569-
if caller_abi == Abi::RustCall && !args.is_empty() {
568+
if caller_abi == ExternAbi::RustCall && !args.is_empty() {
570569
// Untuple
571570
let (untuple_arg, args) = args.split_last().unwrap();
572571
trace!("init_fn_call: Will pass last argument by untupling");
@@ -732,7 +731,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
732731
pub(super) fn init_fn_tail_call(
733732
&mut self,
734733
fn_val: FnVal<'tcx, M::ExtraFnVal>,
735-
(caller_abi, caller_fn_abi): (Abi, &FnAbi<'tcx, Ty<'tcx>>),
734+
(caller_abi, caller_fn_abi): (ExternAbi, &FnAbi<'tcx, Ty<'tcx>>),
736735
args: &[FnArg<'tcx, M::Provenance>],
737736
with_caller_location: bool,
738737
) -> InterpResult<'tcx> {
@@ -817,7 +816,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
817816

818817
self.init_fn_call(
819818
FnVal::Instance(instance),
820-
(Abi::Rust, fn_abi),
819+
(ExternAbi::Rust, fn_abi),
821820
&[FnArg::Copy(arg.into())],
822821
false,
823822
&ret,

compiler/rustc_const_eval/src/interpret/cast.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use std::assert_matches::assert_matches;
22

3+
use rustc_abi::Integer;
34
use rustc_apfloat::ieee::{Double, Half, Quad, Single};
45
use rustc_apfloat::{Float, FloatConvert};
56
use rustc_middle::mir::CastKind;
@@ -8,7 +9,6 @@ use rustc_middle::ty::adjustment::PointerCoercion;
89
use rustc_middle::ty::layout::{IntegerExt, LayoutOf, TyAndLayout};
910
use rustc_middle::ty::{self, FloatTy, Ty};
1011
use rustc_middle::{bug, span_bug};
11-
use rustc_target::abi::Integer;
1212
use rustc_type_ir::TyKind::*;
1313
use tracing::trace;
1414

compiler/rustc_const_eval/src/interpret/discriminant.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
//! Functions for reading and writing discriminants of multi-variant layouts (enums and coroutines).
22
3+
use rustc_abi::{self as abi, TagEncoding, VariantIdx, Variants};
34
use rustc_middle::ty::layout::{LayoutOf, PrimitiveExt};
45
use rustc_middle::ty::{self, CoroutineArgsExt, ScalarInt, Ty};
56
use rustc_middle::{mir, span_bug};
6-
use rustc_target::abi::{self, TagEncoding, VariantIdx, Variants};
77
use tracing::{instrument, trace};
88

99
use super::{

compiler/rustc_const_eval/src/interpret/eval_context.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use either::{Left, Right};
2+
use rustc_abi::{Align, HasDataLayout, Size, TargetDataLayout};
23
use rustc_errors::DiagCtxtHandle;
34
use rustc_hir::def_id::DefId;
45
use rustc_infer::infer::TyCtxtInferExt;
@@ -15,8 +16,7 @@ use rustc_middle::ty::{
1516
use rustc_middle::{mir, span_bug};
1617
use rustc_session::Limit;
1718
use rustc_span::Span;
18-
use rustc_target::abi::call::FnAbi;
19-
use rustc_target::abi::{Align, HasDataLayout, Size, TargetDataLayout};
19+
use rustc_target::callconv::FnAbi;
2020
use rustc_trait_selection::traits::ObligationCtxt;
2121
use tracing::{debug, instrument, trace};
2222

compiler/rustc_const_eval/src/interpret/intrinsics.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
55
use std::assert_matches::assert_matches;
66

7+
use rustc_abi::Size;
78
use rustc_apfloat::ieee::{Double, Half, Quad, Single};
89
use rustc_hir::def_id::DefId;
910
use rustc_middle::mir::{self, BinOp, ConstValue, NonDivergingIntrinsic};
1011
use rustc_middle::ty::layout::{LayoutOf as _, TyAndLayout, ValidityRequirement};
1112
use rustc_middle::ty::{GenericArgsRef, Ty, TyCtxt};
1213
use rustc_middle::{bug, ty};
1314
use rustc_span::symbol::{Symbol, sym};
14-
use rustc_target::abi::Size;
1515
use tracing::trace;
1616

1717
use super::memory::MemoryKind;

compiler/rustc_const_eval/src/interpret/machine.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use std::borrow::{Borrow, Cow};
66
use std::fmt::Debug;
77
use std::hash::Hash;
88

9+
use rustc_abi::{Align, ExternAbi as CallAbi, Size};
910
use rustc_apfloat::{Float, FloatConvert};
1011
use rustc_ast::{InlineAsmOptions, InlineAsmTemplatePiece};
1112
use rustc_middle::query::TyCtxtAt;
@@ -14,8 +15,6 @@ use rustc_middle::ty::layout::TyAndLayout;
1415
use rustc_middle::{mir, ty};
1516
use rustc_span::Span;
1617
use rustc_span::def_id::DefId;
17-
use rustc_target::abi::{Align, Size};
18-
use rustc_target::spec::abi::Abi as CallAbi;
1918

2019
use super::{
2120
AllocBytes, AllocId, AllocKind, AllocRange, Allocation, CTFE_ALLOC_SALT, ConstAllocation,

compiler/rustc_const_eval/src/interpret/memory.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ use std::borrow::{Borrow, Cow};
1111
use std::collections::VecDeque;
1212
use std::{fmt, mem, ptr};
1313

14+
use rustc_abi::{Align, HasDataLayout, Size};
1415
use rustc_ast::Mutability;
1516
use rustc_data_structures::fx::{FxHashSet, FxIndexMap};
1617
use rustc_hir::def::DefKind;
1718
use rustc_middle::bug;
1819
use rustc_middle::mir::display_allocation;
1920
use rustc_middle::ty::{self, Instance, ParamEnv, Ty, TyCtxt};
20-
use rustc_target::abi::{Align, HasDataLayout, Size};
2121
use tracing::{debug, instrument, trace};
2222

2323
use super::{

compiler/rustc_const_eval/src/interpret/operator.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
use either::Either;
2+
use rustc_abi::Size;
23
use rustc_apfloat::{Float, FloatConvert};
34
use rustc_middle::mir::NullOp;
45
use rustc_middle::mir::interpret::{InterpResult, PointerArithmetic, Scalar};
56
use rustc_middle::ty::layout::{LayoutOf, TyAndLayout};
67
use rustc_middle::ty::{self, FloatTy, ScalarInt, Ty};
78
use rustc_middle::{bug, mir, span_bug};
89
use rustc_span::symbol::sym;
9-
use rustc_target::abi::Size;
1010
use tracing::trace;
1111

1212
use super::{ImmTy, InterpCx, Machine, MemPlaceMeta, interp_ok, throw_ub};

compiler/rustc_const_eval/src/interpret/projection.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
use std::marker::PhantomData;
1111
use std::ops::Range;
1212

13+
use rustc_abi::{self as abi, Size, VariantIdx};
1314
use rustc_middle::ty::Ty;
1415
use rustc_middle::ty::layout::{LayoutOf, TyAndLayout};
1516
use rustc_middle::{bug, mir, span_bug, ty};
16-
use rustc_target::abi::{self, Size, VariantIdx};
1717
use tracing::{debug, instrument};
1818

1919
use super::{

compiler/rustc_const_eval/src/interpret/step.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
//! The main entry point is the `step` method.
44
55
use either::Either;
6+
use rustc_abi::{FIRST_VARIANT, FieldIdx};
67
use rustc_index::IndexSlice;
78
use rustc_middle::ty::layout::FnAbiOf;
89
use rustc_middle::ty::{self, Instance, Ty};
910
use rustc_middle::{bug, mir, span_bug};
1011
use rustc_span::source_map::Spanned;
11-
use rustc_target::abi::call::FnAbi;
12-
use rustc_target::abi::{FIRST_VARIANT, FieldIdx};
12+
use rustc_target::callconv::FnAbi;
1313
use tracing::{info, instrument, trace};
1414

1515
use super::{

compiler/rustc_const_eval/src/interpret/traits.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
use rustc_abi::{Align, Size};
12
use rustc_middle::mir::interpret::{InterpResult, Pointer};
23
use rustc_middle::ty::layout::LayoutOf;
34
use rustc_middle::ty::{self, ExistentialPredicateStableCmpExt, Ty, TyCtxt, VtblEntry};
4-
use rustc_target::abi::{Align, Size};
55
use tracing::trace;
66

77
use super::util::ensure_monomorphic_enough;

compiler/rustc_const_eval/src/interpret/visitor.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
44
use std::num::NonZero;
55

6+
use rustc_abi::{FieldIdx, FieldsShape, VariantIdx, Variants};
67
use rustc_index::IndexVec;
78
use rustc_middle::mir::interpret::InterpResult;
89
use rustc_middle::ty::layout::LayoutOf;
910
use rustc_middle::ty::{self, Ty};
10-
use rustc_target::abi::{FieldIdx, FieldsShape, VariantIdx, Variants};
1111
use tracing::trace;
1212

1313
use super::{InterpCx, MPlaceTy, Machine, Projectable, interp_ok, throw_inval};

compiler/rustc_const_eval/src/util/alignment.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
use rustc_abi::Align;
12
use rustc_middle::mir::*;
23
use rustc_middle::ty::{self, TyCtxt};
3-
use rustc_target::abi::Align;
44
use tracing::debug;
55

66
/// Returns `true` if this place is allowed to be less aligned

0 commit comments

Comments
 (0)