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`
This commit is contained in:
bors 2023-03-18 18:14:35 +00:00
commit 4a04d086ca
4 changed files with 10 additions and 9 deletions

2
.gitmodules vendored
View File

@ -25,7 +25,7 @@
[submodule "src/llvm-project"] [submodule "src/llvm-project"]
path = src/llvm-project path = src/llvm-project
url = https://github.com/rust-lang/llvm-project.git 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"] [submodule "src/doc/embedded-book"]
path = src/doc/embedded-book path = src/doc/embedded-book
url = https://github.com/rust-embedded/book.git url = https://github.com/rust-embedded/book.git

View File

@ -1153,6 +1153,11 @@ fn parse_inner<'a>(args: &[String], get_toml: impl 'a + Fn(&Path) -> TomlConfig)
config.rust_profile_generate = flags.rust_profile_generate; 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 { if let Some(llvm) = toml.llvm {
match llvm.ccache { match llvm.ccache {
Some(StringOrBool::String(ref s)) => config.ccache = Some(s.to_string()), Some(StringOrBool::String(ref s)) => config.ccache = Some(s.to_string()),
@ -1346,10 +1351,6 @@ fn parse_inner<'a>(args: &[String], get_toml: impl 'a + Fn(&Path) -> TomlConfig)
config.rust_debuginfo_level_tools = with_defaults(debuginfo_level_tools); config.rust_debuginfo_level_tools = with_defaults(debuginfo_level_tools);
config.rust_debuginfo_level_tests = debuginfo_level_tests.unwrap_or(0); 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(); let download_rustc = config.download_rustc_commit.is_some();
// See https://github.com/rust-lang/compiler-team/issues/326 // See https://github.com/rust-lang/compiler-team/issues/326
config.stage = match config.cmd { config.stage = match config.cmd {

@ -1 +1 @@
Subproject commit fd949f3034f8a422ecfffa889c2823485dde4bdd Subproject commit 4bb5eab6ac3faea4ab4e53c432a1643c3acec87e

View File

@ -38,10 +38,10 @@
// //
// CHECK-LABEL: @long_integer_map // CHECK-LABEL: @long_integer_map
#[no_mangle] #[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: start:
// CHECK-NEXT: alloca [64 x i32] // CHECK-NEXT: alloca [512 x i32]
// CHECK-NEXT: alloca %"core::mem::manually_drop::ManuallyDrop<[u32; 64]>" // CHECK-NEXT: alloca %"core::mem::manually_drop::ManuallyDrop<[u32; 512]>"
// CHECK-NOT: alloca // CHECK-NOT: alloca
// CHECK: mul <{{[0-9]+}} x i32> // CHECK: mul <{{[0-9]+}} x i32>
// CHECK: add <{{[0-9]+}} x i32> // CHECK: add <{{[0-9]+}} x i32>