about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-03-18 18:14:35 +0000
committerbors <bors@rust-lang.org>2023-03-18 18:14:35 +0000
commit4a04d086cac54a41517d5657b59d5fe2caca2d71 (patch)
tree0dbdb16064771eef2d1d3bc437db3f287c350a06
parent2d0a7def330ed90f416a3429dbb44c5ee2a914e5 (diff)
parentb238a76f652390a486e5480b791abe0cd427add5 (diff)
downloadrust-4a04d086cac54a41517d5657b59d5fe2caca2d71.tar.gz
rust-4a04d086cac54a41517d5657b59d5fe2caca2d71.zip
Auto merge of #107224 - nikic:llvm-16, r=cuviper
Upgrade to LLVM 16

This updates Rust to LLVM 16. It also updates our host compiler for dist-x86_64-linux to LLVM 16. The reason for that is that Bolt from LLVM 15 is not capable of compiling LLVM 16 (https://github.com/llvm/llvm-project/issues/61114).

LLVM 16.0.0 has been [released](https://discourse.llvm.org/t/llvm-16-0-0-release/69326) on March 18, while Rust 1.70 will become stable on June 1.

Tested images: `dist-x86_64-linux`, `dist-riscv64-linux` (alt), `dist-x86_64-illumos`, `dist-various-1`, `dist-various-2`, `dist-powerpc-linux`, `wasm32`, `armhf-gnu`
Tested images until the usual IPv6 failures: `test-various`
-rw-r--r--.gitmodules2
-rw-r--r--src/bootstrap/config.rs9
m---------src/llvm-project0
-rw-r--r--tests/codegen/array-map.rs6
4 files changed, 9 insertions, 8 deletions
diff --git a/.gitmodules b/.gitmodules
index e79f2f089c1..0bbccb57130 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/bootstrap/config.rs b/src/bootstrap/config.rs
index 58729f396f0..0fee094c222 100644
--- a/src/bootstrap/config.rs
+++ b/src/bootstrap/config.rs
@@ -1153,6 +1153,11 @@ impl Config {
             config.rust_profile_generate = flags.rust_profile_generate;
         }
 
+        // rust_info must be set before is_ci_llvm_available() is called.
+        let default = config.channel == "dev";
+        config.ignore_git = ignore_git.unwrap_or(default);
+        config.rust_info = GitInfo::new(config.ignore_git, &config.src);
+
         if let Some(llvm) = toml.llvm {
             match llvm.ccache {
                 Some(StringOrBool::String(ref s)) => config.ccache = Some(s.to_string()),
@@ -1346,10 +1351,6 @@ impl Config {
         config.rust_debuginfo_level_tools = with_defaults(debuginfo_level_tools);
         config.rust_debuginfo_level_tests = debuginfo_level_tests.unwrap_or(0);
 
-        let default = config.channel == "dev";
-        config.ignore_git = ignore_git.unwrap_or(default);
-        config.rust_info = GitInfo::new(config.ignore_git, &config.src);
-
         let download_rustc = config.download_rustc_commit.is_some();
         // See https://github.com/rust-lang/compiler-team/issues/326
         config.stage = match config.cmd {
diff --git a/src/llvm-project b/src/llvm-project
-Subproject fd949f3034f8a422ecfffa889c2823485dde4bd
+Subproject 4bb5eab6ac3faea4ab4e53c432a1643c3acec87
diff --git a/tests/codegen/array-map.rs b/tests/codegen/array-map.rs
index 9298e89e397..7b8ab2c79a7 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>