Struct rustc_target::abi::TargetDataLayout [−][src]
pub struct TargetDataLayout { pub endian: Endian, pub i1_align: Align, pub i8_align: Align, pub i16_align: Align, pub i32_align: Align, pub i64_align: Align, pub i128_align: Align, pub f32_align: Align, pub f64_align: Align, pub pointer_size: Size, pub pointer_align: Align, pub aggregate_align: Align, pub vector_align: Vec<(Size, Align)>, }
Parsed Data layout for a target, which contains everything needed to compute layouts.
Fields
endian: Endian
i1_align: Align
i8_align: Align
i16_align: Align
i32_align: Align
i64_align: Align
i128_align: Align
f32_align: Align
f64_align: Align
pointer_size: Size
pointer_align: Align
aggregate_align: Align
vector_align: Vec<(Size, Align)>
Alignments for vector types.
Methods
impl TargetDataLayout
[src]
impl TargetDataLayout
pub fn parse(target: &Target) -> Result<TargetDataLayout, String>
[src]
pub fn parse(target: &Target) -> Result<TargetDataLayout, String>
pub fn obj_size_bound(&self) -> u64
[src]
pub fn obj_size_bound(&self) -> u64
Return exclusive upper bound on object size.
The theoretical maximum object size is defined as the maximum positive isize
value.
This ensures that the offset
semantics remain well-defined by allowing it to correctly
index every address within an object along with one byte past the end, along with allowing
isize
to store the difference between any two pointers into an object.
The upper bound on 64-bit currently needs to be lower because LLVM uses a 64-bit integer to represent object size in bits. It would need to be 1 << 61 to account for this, but is currently conservatively bounded to 1 << 47 as that is enough to cover the current usable address space on 64-bit ARMv8 and x86_64.
pub fn ptr_sized_integer(&self) -> Integer
[src]
pub fn ptr_sized_integer(&self) -> Integer
pub fn vector_align(&self, vec_size: Size) -> Align
[src]
pub fn vector_align(&self, vec_size: Size) -> Align
Trait Implementations
impl Default for TargetDataLayout
[src]
impl Default for TargetDataLayout
fn default() -> TargetDataLayout
[src]
fn default() -> TargetDataLayout
Creates an instance of TargetDataLayout
.
impl<'a> HasDataLayout for &'a TargetDataLayout
[src]
impl<'a> HasDataLayout for &'a TargetDataLayout
fn data_layout(&self) -> &TargetDataLayout
[src]
fn data_layout(&self) -> &TargetDataLayout
Auto Trait Implementations
impl Send for TargetDataLayout
impl Send for TargetDataLayout
impl Sync for TargetDataLayout
impl Sync for TargetDataLayout