Skip to content

Commit 35f23fa

Browse files
committed
dl.pointer_pos && d.vector_align
1 parent 8513dd8 commit 35f23fa

File tree

19 files changed

+60
-60
lines changed

19 files changed

+60
-60
lines changed

src/librustc/mir/interpret/allocation.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ impl<'tcx, Tag: Copy, Extra: AllocationExtra<Tag>> Allocation<Tag, Extra> {
398398
// Now we do the actual reading.
399399
let bits = read_target_uint(cx.data_layout().endian, bytes).unwrap();
400400
// See if we got a pointer.
401-
if size != cx.data_layout().pointer_size {
401+
if size != cx.data_layout().pointer_pos.size {
402402
// *Now*, we better make sure that the inside is free of relocations too.
403403
self.check_relocations(cx, ptr, size)?;
404404
} else {
@@ -424,7 +424,7 @@ impl<'tcx, Tag: Copy, Extra: AllocationExtra<Tag>> Allocation<Tag, Extra> {
424424
ptr: Pointer<Tag>,
425425
) -> InterpResult<'tcx, ScalarMaybeUndef<Tag>>
426426
{
427-
self.read_scalar(cx, ptr, cx.data_layout().pointer_size)
427+
self.read_scalar(cx, ptr, cx.data_layout().pointer_pos.size)
428428
}
429429

430430
/// Writes a *non-ZST* scalar.
@@ -486,7 +486,7 @@ impl<'tcx, Tag: Copy, Extra: AllocationExtra<Tag>> Allocation<Tag, Extra> {
486486
val: ScalarMaybeUndef<Tag>
487487
) -> InterpResult<'tcx>
488488
{
489-
let ptr_size = cx.data_layout().pointer_size;
489+
let ptr_size = cx.data_layout().pointer_pos.size;
490490
self.write_scalar(cx, ptr.into(), val, ptr_size)
491491
}
492492
}
@@ -500,9 +500,10 @@ impl<'tcx, Tag: Copy, Extra> Allocation<Tag, Extra> {
500500
ptr: Pointer<Tag>,
501501
size: Size,
502502
) -> &[(Size, (Tag, AllocId))] {
503+
let ptr_pos = cx.data_layout().pointer_pos;
503504
// We have to go back `pointer_size - 1` bytes, as that one would still overlap with
504505
// the beginning of this range.
505-
let start = ptr.offset.bytes().saturating_sub(cx.data_layout().pointer_size.bytes() - 1);
506+
let start = ptr.offset.bytes().saturating_sub(ptr_pos.size.bytes() - 1);
506507
let end = ptr.offset + size; // This does overflow checking.
507508
self.relocations.range(Size::from_bytes(start)..end)
508509
}
@@ -543,7 +544,7 @@ impl<'tcx, Tag: Copy, Extra> Allocation<Tag, Extra> {
543544
}
544545

545546
(relocations.first().unwrap().0,
546-
relocations.last().unwrap().0 + cx.data_layout().pointer_size)
547+
relocations.last().unwrap().0 + cx.data_layout().pointer_pos.size)
547548
};
548549
let start = ptr.offset;
549550
let end = start + size;

src/librustc/mir/interpret/pointer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ pub trait PointerArithmetic: layout::HasDataLayout {
3737

3838
#[inline(always)]
3939
fn pointer_size(&self) -> Size {
40-
self.data_layout().pointer_size
40+
self.data_layout().pointer_pos.size
4141
}
4242

4343
/// Helper function: truncate given value-"overflowed flag" pair to pointer size and

src/librustc/mir/interpret/value.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ impl<'tcx, Tag> Scalar<Tag> {
191191
pub fn ptr_null(cx: &impl HasDataLayout) -> Self {
192192
Scalar::Raw {
193193
data: 0,
194-
size: cx.data_layout().pointer_size.bytes() as u8,
194+
size: cx.data_layout().pointer_pos.size.bytes() as u8,
195195
}
196196
}
197197

@@ -205,7 +205,7 @@ impl<'tcx, Tag> Scalar<Tag> {
205205
let dl = cx.data_layout();
206206
match self {
207207
Scalar::Raw { data, size } => {
208-
assert_eq!(size as u64, dl.pointer_size.bytes());
208+
assert_eq!(size as u64, dl.pointer_pos.size.bytes());
209209
Ok(Scalar::Raw {
210210
data: dl.offset(data as u64, i.bytes())? as u128,
211211
size,
@@ -220,7 +220,7 @@ impl<'tcx, Tag> Scalar<Tag> {
220220
let dl = cx.data_layout();
221221
match self {
222222
Scalar::Raw { data, size } => {
223-
assert_eq!(size as u64, dl.pointer_size.bytes());
223+
assert_eq!(size as u64, dl.pointer_pos.size.bytes());
224224
Scalar::Raw {
225225
data: dl.overflowing_offset(data as u64, i.bytes()).0 as u128,
226226
size,
@@ -250,7 +250,7 @@ impl<'tcx, Tag> Scalar<Tag> {
250250
let dl = cx.data_layout();
251251
match self {
252252
Scalar::Raw { data, size } => {
253-
assert_eq!(size as u64, dl.pointer_size.bytes());
253+
assert_eq!(size as u64, dl.pointer_pos.size.bytes());
254254
Scalar::Raw {
255255
data: dl.overflowing_signed_offset(data as u64, i128::from(i)).0 as u128,
256256
size,
@@ -342,7 +342,7 @@ impl<'tcx, Tag> Scalar<Tag> {
342342
Ok(data)
343343
}
344344
Scalar::Ptr(ptr) => {
345-
assert_eq!(target_size, cx.data_layout().pointer_size);
345+
assert_eq!(target_size, cx.data_layout().pointer_pos.size);
346346
Err(ptr)
347347
}
348348
}
@@ -440,7 +440,7 @@ impl<'tcx, Tag> Scalar<Tag> {
440440
}
441441

442442
pub fn to_machine_usize(self, cx: &impl HasDataLayout) -> InterpResult<'static, u64> {
443-
let b = self.to_bits(cx.data_layout().pointer_size)?;
443+
let b = self.to_bits(cx.data_layout().pointer_pos.size)?;
444444
Ok(b as u64)
445445
}
446446

@@ -466,7 +466,7 @@ impl<'tcx, Tag> Scalar<Tag> {
466466
}
467467

468468
pub fn to_machine_isize(self, cx: &impl HasDataLayout) -> InterpResult<'static, i64> {
469-
let sz = cx.data_layout().pointer_size;
469+
let sz = cx.data_layout().pointer_pos.size;
470470
let b = self.to_bits(sz)?;
471471
let b = sign_extend(b, sz) as i128;
472472
Ok(b as i64)

src/librustc_codegen_llvm/common.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ impl ConstMethods<'tcx> for CodegenCx<'ll, 'tcx> {
202202
}
203203

204204
fn const_usize(&self, i: u64) -> &'ll Value {
205-
let bit_size = self.data_layout().pointer_size.bits();
205+
let bit_size = self.data_layout().pointer_pos.size.bits();
206206
if bit_size < 64 {
207207
// make sure it doesn't overflow
208208
assert!(i < (1<<bit_size));

src/librustc_codegen_llvm/consts.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use std::ffi::{CStr, CString};
2626
pub fn const_alloc_to_llvm(cx: &CodegenCx<'ll, '_>, alloc: &Allocation) -> &'ll Value {
2727
let mut llvals = Vec::with_capacity(alloc.relocations().len() + 1);
2828
let dl = cx.data_layout();
29-
let pointer_size = dl.pointer_size.bytes() as usize;
29+
let pointer_size = dl.pointer_pos.size.bytes() as usize;
3030

3131
let mut next_offset = 0;
3232
for &(offset, ((), alloc_id)) in alloc.relocations().iter() {

src/librustc_codegen_llvm/context.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ impl<'ll, 'tcx> CodegenCx<'ll, 'tcx> {
288288
None
289289
};
290290

291-
let isize_ty = Type::ix_llcx(llcx, tcx.data_layout.pointer_size.bits());
291+
let isize_ty = Type::ix_llcx(llcx, tcx.data_layout.pointer_pos.size.bits());
292292

293293
CodegenCx {
294294
tcx,

src/librustc_codegen_llvm/debuginfo/metadata.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2304,7 +2304,7 @@ pub fn create_vtable_metadata(cx: &CodegenCx<'ll, 'tcx>, ty: Ty<'tcx>, vtable: &
23042304
unknown_file_metadata(cx),
23052305
UNKNOWN_LINE_NUMBER,
23062306
Size::ZERO.bits(),
2307-
cx.tcx.data_layout.pointer_align.abi.bits() as u32,
2307+
cx.tcx.data_layout.pointer_pos.align.abi.bits() as u32,
23082308
DIFlags::FlagArtificial,
23092309
None,
23102310
empty_array,

src/librustc_codegen_llvm/intrinsic.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,7 @@ fn try_intrinsic(
810810
) {
811811
if bx.sess().no_landing_pads() {
812812
bx.call(func, &[data], None);
813-
let ptr_align = bx.tcx().data_layout.pointer_align.abi;
813+
let ptr_align = bx.tcx().data_layout.pointer_pos.align.abi;
814814
bx.store(bx.const_null(bx.type_i8p()), dest, ptr_align);
815815
} else if wants_msvc_seh(bx.sess()) {
816816
codegen_msvc_try(bx, func, data, local_ptr, dest);
@@ -984,7 +984,7 @@ fn codegen_gnu_try(
984984
};
985985
catch.add_clause(vals, tydesc);
986986
let ptr = catch.extract_value(vals, 0);
987-
let ptr_align = bx.tcx().data_layout.pointer_align.abi;
987+
let ptr_align = bx.tcx().data_layout.pointer_pos.align.abi;
988988
let bitcast = catch.bitcast(local_ptr, bx.type_ptr_to(bx.type_i8p()));
989989
catch.store(ptr, bitcast, ptr_align);
990990
catch.ret(bx.const_i32(1));
@@ -1262,11 +1262,11 @@ fn generic_simd_intrinsic(
12621262
let (i_xn, in_elem_bitwidth) = match in_elem.kind {
12631263
ty::Int(i) => (
12641264
args[0].immediate(),
1265-
i.bit_width().unwrap_or(bx.data_layout().pointer_size.bits() as _)
1265+
i.bit_width().unwrap_or(bx.data_layout().pointer_pos.size.bits() as _)
12661266
),
12671267
ty::Uint(i) => (
12681268
args[0].immediate(),
1269-
i.bit_width().unwrap_or(bx.data_layout().pointer_size.bits() as _)
1269+
i.bit_width().unwrap_or(bx.data_layout().pointer_pos.size.bits() as _)
12701270
),
12711271
_ => return_error!(
12721272
"vector argument `{}`'s element type `{}`, expected integer element type",
@@ -1876,7 +1876,7 @@ unsupported {} from `{}` with element `{}` of size `{}` to `{}`"#,
18761876
let lhs = args[0].immediate();
18771877
let rhs = args[1].immediate();
18781878
let is_add = name == "simd_saturating_add";
1879-
let ptr_bits = bx.tcx().data_layout.pointer_size.bits() as _;
1879+
let ptr_bits = bx.tcx().data_layout.pointer_pos.size.bits() as _;
18801880
let (signed, elem_width, elem_ty) = match in_elem.kind {
18811881
ty::Int(i) =>
18821882
(

src/librustc_codegen_llvm/va_arg.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn emit_direct_ptr_va_arg(
3636
list.immediate()
3737
};
3838

39-
let ptr = bx.load(va_list_addr, bx.tcx().data_layout.pointer_align.abi);
39+
let ptr = bx.load(va_list_addr, bx.tcx().data_layout.pointer_pos.align.abi);
4040

4141
let (addr, addr_align) = if allow_higher_align && align > slot_size {
4242
(round_pointer_up_to_alignment(bx, ptr, align, bx.cx().type_i8p()), align)
@@ -48,7 +48,7 @@ fn emit_direct_ptr_va_arg(
4848
let aligned_size = size.align_to(slot_size).bytes() as i32;
4949
let full_direct_size = bx.cx().const_i32(aligned_size);
5050
let next = bx.inbounds_gep(addr, &[full_direct_size]);
51-
bx.store(next, va_list_addr, bx.tcx().data_layout.pointer_align.abi);
51+
bx.store(next, va_list_addr, bx.tcx().data_layout.pointer_pos.align.abi);
5252

5353
if size.bytes() < slot_size.bytes() &&
5454
&*bx.tcx().sess.target.target.target_endian == "big" {
@@ -71,8 +71,8 @@ fn emit_ptr_va_arg(
7171
let layout = bx.cx.layout_of(target_ty);
7272
let (llty, size, align) = if indirect {
7373
(bx.cx.layout_of(bx.cx.tcx.mk_imm_ptr(target_ty)).llvm_type(bx.cx),
74-
bx.cx.data_layout().pointer_size,
75-
bx.cx.data_layout().pointer_align)
74+
bx.cx.data_layout().pointer_pos.size,
75+
bx.cx.data_layout().pointer_pos.align)
7676
} else {
7777
(layout.llvm_type(bx.cx),
7878
layout.size,

src/librustc_codegen_ssa/meth.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ impl<'a, 'tcx> VirtualIndex {
2929
llvtable,
3030
bx.type_ptr_to(bx.fn_ptr_backend_type(fn_abi))
3131
);
32-
let ptr_align = bx.tcx().data_layout.pointer_align.abi;
32+
let ptr_align = bx.tcx().data_layout.pointer_pos.align.abi;
3333
let gep = bx.inbounds_gep(llvtable, &[bx.const_usize(self.0)]);
3434
let ptr = bx.load(gep, ptr_align);
3535
bx.nonnull_metadata(ptr);
@@ -47,7 +47,7 @@ impl<'a, 'tcx> VirtualIndex {
4747
debug!("get_int({:?}, {:?})", llvtable, self);
4848

4949
let llvtable = bx.pointercast(llvtable, bx.type_ptr_to(bx.type_isize()));
50-
let usize_align = bx.tcx().data_layout.pointer_align.abi;
50+
let usize_align = bx.tcx().data_layout.pointer_pos.align.abi;
5151
let gep = bx.inbounds_gep(llvtable, &[bx.const_usize(self.0)]);
5252
let ptr = bx.load(gep, usize_align);
5353
// Vtable loads are invariant
@@ -114,7 +114,7 @@ pub fn get_vtable<'tcx, Cx: CodegenMethods<'tcx>>(
114114
].iter().cloned().chain(methods).collect();
115115

116116
let vtable_const = cx.const_struct(&components, false);
117-
let align = cx.data_layout().pointer_align.abi;
117+
let align = cx.data_layout().pointer_pos.align.abi;
118118
let vtable = cx.static_addr_of(vtable_const, align, Some("vtable"));
119119

120120
cx.create_vtable_metadata(ty, vtable);

0 commit comments

Comments
 (0)