LLVM 18 x86 data layout update
With https://reviews.llvm.org/D86310 LLVM now has i128 aligned to 16-bytes on x86 based platforms. This will be in LLVM-18. This patch updates all our spec targets to be 16-byte aligned, and removes the alignment when speaking to older LLVM. This results in Rust overaligning things relative to LLVM on older LLVMs. This alignment change was discussed in rust-lang/compiler-team#683 See #54341 for additional information about why this is happening and where this will be useful in the future. This *does not* stabilize `i128`/`u128` for FFI.
This commit is contained in:
parent
16fadb3f25
commit
dbff90c2a7
51 changed files with 103 additions and 85 deletions
|
@ -3304,9 +3304,13 @@ mod size_asserts {
|
|||
static_assert_size!(Impl, 136);
|
||||
static_assert_size!(Item, 136);
|
||||
static_assert_size!(ItemKind, 64);
|
||||
static_assert_size!(LitKind, 24);
|
||||
// This can be removed after i128:128 is in the bootstrap compiler's target.
|
||||
#[cfg(not(bootstrap))]
|
||||
static_assert_size!(LitKind, 32);
|
||||
static_assert_size!(Local, 72);
|
||||
static_assert_size!(MetaItemLit, 40);
|
||||
// This can be removed after i128:128 is in the bootstrap compiler's target.
|
||||
#[cfg(not(bootstrap))]
|
||||
static_assert_size!(MetaItemLit, 48);
|
||||
static_assert_size!(Param, 40);
|
||||
static_assert_size!(Pat, 72);
|
||||
static_assert_size!(Path, 24);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue