compiler: Factor rustc_target::abi out of cg_llvm
This commit is contained in:
parent
839cf1c1a4
commit
1379ef592a
@ -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" }
|
||||||
|
@ -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;
|
||||||
|
@ -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(_) => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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::*;
|
||||||
|
Loading…
Reference in New Issue
Block a user