compiler: Factor rustc_target::abi out of cg_llvm

This commit is contained in:
Jubilee Young 2024-10-08 17:29:00 -07:00
parent 839cf1c1a4
commit 1379ef592a
5 changed files with 14 additions and 7 deletions

View File

@ -14,6 +14,7 @@ libc = "0.2"
measureme = "11" measureme = "11"
object = { version = "0.36.3", default-features = false, features = ["std", "read"] } object = { version = "0.36.3", default-features = false, features = ["std", "read"] }
rustc-demangle = "0.1.21" rustc-demangle = "0.1.21"
rustc_abi = { path = "../rustc_abi" }
rustc_ast = { path = "../rustc_ast" } rustc_ast = { path = "../rustc_ast" }
rustc_attr = { path = "../rustc_attr" } rustc_attr = { path = "../rustc_attr" }
rustc_codegen_ssa = { path = "../rustc_codegen_ssa" } rustc_codegen_ssa = { path = "../rustc_codegen_ssa" }

View File

@ -1,6 +1,9 @@
use std::cmp; use std::cmp;
use libc::c_uint; use libc::c_uint;
use rustc_abi as abi;
use rustc_abi::Primitive::Int;
use rustc_abi::{HasDataLayout, Size};
use rustc_codegen_ssa::MemFlags; use rustc_codegen_ssa::MemFlags;
use rustc_codegen_ssa::mir::operand::{OperandRef, OperandValue}; use rustc_codegen_ssa::mir::operand::{OperandRef, OperandValue};
use rustc_codegen_ssa::mir::place::{PlaceRef, PlaceValue}; use rustc_codegen_ssa::mir::place::{PlaceRef, PlaceValue};
@ -11,7 +14,6 @@
use rustc_middle::{bug, ty}; use rustc_middle::{bug, ty};
use rustc_session::config; use rustc_session::config;
pub(crate) use rustc_target::abi::call::*; pub(crate) use rustc_target::abi::call::*;
use rustc_target::abi::{self, HasDataLayout, Int, Size};
use rustc_target::spec::SanitizerSet; use rustc_target::spec::SanitizerSet;
pub(crate) use rustc_target::spec::abi::Abi; pub(crate) use rustc_target::spec::abi::Abi;
use smallvec::SmallVec; use smallvec::SmallVec;

View File

@ -3,6 +3,8 @@
use std::{iter, ptr}; use std::{iter, ptr};
use libc::{c_char, c_uint}; use libc::{c_char, c_uint};
use rustc_abi as abi;
use rustc_abi::{Align, Size, WrappingRange};
use rustc_codegen_ssa::MemFlags; use rustc_codegen_ssa::MemFlags;
use rustc_codegen_ssa::common::{IntPredicate, RealPredicate, SynchronizationScope, TypeKind}; use rustc_codegen_ssa::common::{IntPredicate, RealPredicate, SynchronizationScope, TypeKind};
use rustc_codegen_ssa::mir::operand::{OperandRef, OperandValue}; use rustc_codegen_ssa::mir::operand::{OperandRef, OperandValue};
@ -20,7 +22,6 @@
use rustc_session::config::OptLevel; use rustc_session::config::OptLevel;
use rustc_span::Span; use rustc_span::Span;
use rustc_target::abi::call::FnAbi; use rustc_target::abi::call::FnAbi;
use rustc_target::abi::{self, Align, Size, WrappingRange};
use rustc_target::spec::{HasTargetSpec, SanitizerSet, Target}; use rustc_target::spec::{HasTargetSpec, SanitizerSet, Target};
use smallvec::SmallVec; use smallvec::SmallVec;
use tracing::{debug, instrument}; use tracing::{debug, instrument};
@ -505,12 +506,12 @@ fn scalar_load_metadata<'a, 'll, 'tcx>(
} }
match scalar.primitive() { match scalar.primitive() {
abi::Int(..) => { abi::Primitive::Int(..) => {
if !scalar.is_always_valid(bx) { if !scalar.is_always_valid(bx) {
bx.range_metadata(load, scalar.valid_range(bx)); bx.range_metadata(load, scalar.valid_range(bx));
} }
} }
abi::Pointer(_) => { abi::Primitive::Pointer(_) => {
if !scalar.valid_range(bx).contains(0) { if !scalar.valid_range(bx).contains(0) {
bx.nonnull_metadata(load); bx.nonnull_metadata(load);
} }
@ -521,7 +522,7 @@ fn scalar_load_metadata<'a, 'll, 'tcx>(
} }
} }
} }
abi::Float(_) => {} abi::Primitive::Float(_) => {}
} }
} }

View File

@ -1,6 +1,9 @@
//! Code that is useful in various codegen modules. //! Code that is useful in various codegen modules.
use libc::{c_char, c_uint}; use libc::{c_char, c_uint};
use rustc_abi as abi;
use rustc_abi::Primitive::Pointer;
use rustc_abi::{AddressSpace, HasDataLayout};
use rustc_ast::Mutability; use rustc_ast::Mutability;
use rustc_codegen_ssa::traits::*; use rustc_codegen_ssa::traits::*;
use rustc_data_structures::stable_hasher::{Hash128, HashStable, StableHasher}; use rustc_data_structures::stable_hasher::{Hash128, HashStable, StableHasher};
@ -9,7 +12,6 @@
use rustc_middle::mir::interpret::{ConstAllocation, GlobalAlloc, Scalar}; use rustc_middle::mir::interpret::{ConstAllocation, GlobalAlloc, Scalar};
use rustc_middle::ty::TyCtxt; use rustc_middle::ty::TyCtxt;
use rustc_session::cstore::DllImport; use rustc_session::cstore::DllImport;
use rustc_target::abi::{self, AddressSpace, HasDataLayout, Pointer};
use tracing::debug; use tracing::debug;
use crate::consts::const_alloc_to_llvm; use crate::consts::const_alloc_to_llvm;

View File

@ -1,11 +1,12 @@
use std::fmt::Write; use std::fmt::Write;
use rustc_abi::Primitive::{Float, Int, Pointer};
use rustc_abi::{Abi, Align, FieldsShape, Scalar, Size, Variants};
use rustc_codegen_ssa::traits::*; use rustc_codegen_ssa::traits::*;
use rustc_middle::bug; use rustc_middle::bug;
use rustc_middle::ty::layout::{LayoutOf, TyAndLayout}; use rustc_middle::ty::layout::{LayoutOf, TyAndLayout};
use rustc_middle::ty::print::{with_no_trimmed_paths, with_no_visible_paths}; use rustc_middle::ty::print::{with_no_trimmed_paths, with_no_visible_paths};
use rustc_middle::ty::{self, CoroutineArgsExt, Ty, TypeVisitableExt}; use rustc_middle::ty::{self, CoroutineArgsExt, Ty, TypeVisitableExt};
use rustc_target::abi::{Abi, Align, FieldsShape, Float, Int, Pointer, Scalar, Size, Variants};
use tracing::debug; use tracing::debug;
use crate::common::*; use crate::common::*;