From 079a801d8bb55eb8e08fcc6bd04f6858cbc850b3 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 21 Mar 2023 19:02:08 +0100 Subject: [PATCH 1/3] Update dist-x86_64-linux to GCC 8.5 While we don't use GCC for the LLVM build, we do use its libstdc++, and there has been an std::optional ABI break in this version. This makes the libLLVM.so for LLVM 16 ABI-incompatible with newer libstdc++ versions, which we use on all other builders, and which download-ci-llvm users are likely to use. --- src/ci/docker/host-x86_64/dist-x86_64-linux/build-gcc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ci/docker/host-x86_64/dist-x86_64-linux/build-gcc.sh b/src/ci/docker/host-x86_64/dist-x86_64-linux/build-gcc.sh index 9932b25056622..41ca1385c75d1 100755 --- a/src/ci/docker/host-x86_64/dist-x86_64-linux/build-gcc.sh +++ b/src/ci/docker/host-x86_64/dist-x86_64-linux/build-gcc.sh @@ -3,7 +3,7 @@ set -ex source shared.sh -GCC=7.5.0 +GCC=8.5.0 curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.xz | xzcat | tar xf - cd gcc-$GCC From 237f703a6dca8129f298739ecb030f7961a1921a Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 23 Jan 2023 11:33:33 +0100 Subject: [PATCH 2/3] Upgrade to LLVM 16 --- .gitmodules | 2 +- src/llvm-project | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index e79f2f089c1ed..0bbccb5713022 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,7 +25,7 @@ [submodule "src/llvm-project"] path = src/llvm-project url = https://github.com/rust-lang/llvm-project.git - branch = rustc/15.0-2022-12-07 + branch = rustc/16.0-2023-03-06 [submodule "src/doc/embedded-book"] path = src/doc/embedded-book url = https://github.com/rust-embedded/book.git diff --git a/src/llvm-project b/src/llvm-project index fd949f3034f8a..2b9c52f66815b 160000 --- a/src/llvm-project +++ b/src/llvm-project @@ -1 +1 @@ -Subproject commit fd949f3034f8a422ecfffa889c2823485dde4bdd +Subproject commit 2b9c52f66815bb8d6ea74a4b26df3410602be9b0 From 58ac25b453793662f92784dc94143ab19f1fd700 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 15 Mar 2023 17:20:56 +0100 Subject: [PATCH 3/3] Increase array size in array-map.rs Make sure that the loop is not fully unrolled (which allows eliminating the allocas) in LLVM 16 either. --- tests/codegen/array-map.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/codegen/array-map.rs b/tests/codegen/array-map.rs index 9298e89e397d0..7b8ab2c79a7fe 100644 --- a/tests/codegen/array-map.rs +++ b/tests/codegen/array-map.rs @@ -38,10 +38,10 @@ pub fn short_integer_zip_map(x: [u32; 8], y: [u32; 8]) -> [u32; 8] { // // CHECK-LABEL: @long_integer_map #[no_mangle] -pub fn long_integer_map(x: [u32; 64]) -> [u32; 64] { +pub fn long_integer_map(x: [u32; 512]) -> [u32; 512] { // CHECK: start: - // CHECK-NEXT: alloca [64 x i32] - // CHECK-NEXT: alloca %"core::mem::manually_drop::ManuallyDrop<[u32; 64]>" + // CHECK-NEXT: alloca [512 x i32] + // CHECK-NEXT: alloca %"core::mem::manually_drop::ManuallyDrop<[u32; 512]>" // CHECK-NOT: alloca // CHECK: mul <{{[0-9]+}} x i32> // CHECK: add <{{[0-9]+}} x i32>