about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-06-16 12:18:45 +0000
committerbors <bors@rust-lang.org>2017-06-16 12:18:45 +0000
commitebbc9ea914a1cefa48afb9cc6c9f7a14ff7c6857 (patch)
tree413f80bfbaed58d39b32d9cc5856393da0a67e92 /src
parent787d9da1253da6351dd8edbef4aef23c3f26f475 (diff)
parent406eddf5e1e14b9356b332c0df987a1bdf0d2c7f (diff)
downloadrust-ebbc9ea914a1cefa48afb9cc6c9f7a14ff7c6857.tar.gz
rust-ebbc9ea914a1cefa48afb9cc6c9f7a14ff7c6857.zip
Auto merge of #42410 - nagisa:llvmup, r=sanxiyn
Upgrade LLVM

Includes https://github.com/rust-lang/llvm/pull/80
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/check.rs3
m---------src/llvm0
-rw-r--r--src/rustllvm/llvm-rebuild-trigger2
-rw-r--r--src/test/codegen/alloc-optimisation.rs22
-rw-r--r--src/tools/compiletest/src/common.rs3
-rw-r--r--src/tools/compiletest/src/header.rs3
-rw-r--r--src/tools/compiletest/src/main.rs2
7 files changed, 34 insertions, 1 deletions
diff --git a/src/bootstrap/check.rs b/src/bootstrap/check.rs
index 2a1b27334c3..0d3cc2e0b1b 100644
--- a/src/bootstrap/check.rs
+++ b/src/bootstrap/check.rs
@@ -245,6 +245,9 @@ pub fn compiletest(build: &Build,
     let llvm_config = build.llvm_config(target);
     let llvm_version = output(Command::new(&llvm_config).arg("--version"));
     cmd.arg("--llvm-version").arg(llvm_version);
+    if !build.is_rust_llvm(target) {
+        cmd.arg("--system-llvm");
+    }
 
     cmd.args(&build.flags.cmd.test_args());
 
diff --git a/src/llvm b/src/llvm
-Subproject 1ef3b9128e1baaed61b42d5b0de79dee100acf1
+Subproject ee545e1d13e6f2191572aebcadb7d1640ce45c6
diff --git a/src/rustllvm/llvm-rebuild-trigger b/src/rustllvm/llvm-rebuild-trigger
index 70663f30e8f..b2746bb6e68 100644
--- a/src/rustllvm/llvm-rebuild-trigger
+++ b/src/rustllvm/llvm-rebuild-trigger
@@ -1,4 +1,4 @@
 # If this file is modified, then llvm will be (optionally) cleaned and then rebuilt.
 # The actual contents of this file do not matter, but to trigger a change on the
 # build bots then the contents should be changed so git updates the mtime.
-2017-05-13
+2017-06-03
diff --git a/src/test/codegen/alloc-optimisation.rs b/src/test/codegen/alloc-optimisation.rs
new file mode 100644
index 00000000000..07dc1350714
--- /dev/null
+++ b/src/test/codegen/alloc-optimisation.rs
@@ -0,0 +1,22 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+//
+// no-system-llvm
+// compile-flags: -O
+#![crate_type="lib"]
+
+#[no_mangle]
+pub fn alloc_test(data: u32) {
+    // CHECK-LABEL: @alloc_test
+    // CHECK-NEXT: start:
+    // CHECK-NEXT: ret void
+    let x = Box::new(data);
+    drop(x);
+}
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
index 92f6f36d69d..cc95e1b8930 100644
--- a/src/tools/compiletest/src/common.rs
+++ b/src/tools/compiletest/src/common.rs
@@ -166,6 +166,9 @@ pub struct Config {
     // Version of LLVM
     pub llvm_version: Option<String>,
 
+    // Is LLVM a system LLVM
+    pub system_llvm: bool,
+
     // Path to the android tools
     pub android_cross_path: PathBuf,
 
diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs
index c503ca7d8cd..aa33580b337 100644
--- a/src/tools/compiletest/src/header.rs
+++ b/src/tools/compiletest/src/header.rs
@@ -166,6 +166,9 @@ impl EarlyProps {
         }
 
         fn ignore_llvm(config: &Config, line: &str) -> bool {
+            if config.system_llvm && line.starts_with("no-system-llvm") {
+                    return true;
+            }
             if let Some(ref actual_version) = config.llvm_version {
                 if line.starts_with("min-llvm-version") {
                     let min_version = line.trim_right()
diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs
index 1bb0b765f9f..3dac580a5f4 100644
--- a/src/tools/compiletest/src/main.rs
+++ b/src/tools/compiletest/src/main.rs
@@ -97,6 +97,7 @@ pub fn parse_config(args: Vec<String> ) -> Config {
           optopt("", "gdb", "path to GDB to use for GDB debuginfo tests", "PATH"),
           optopt("", "lldb-version", "the version of LLDB used", "VERSION STRING"),
           optopt("", "llvm-version", "the version of LLVM used", "VERSION STRING"),
+          optflag("", "system-llvm", "is LLVM the system LLVM"),
           optopt("", "android-cross-path", "Android NDK standalone path", "PATH"),
           optopt("", "adb-path", "path to the android debugger", "PATH"),
           optopt("", "adb-test-dir", "path to tests for the android debugger", "PATH"),
@@ -183,6 +184,7 @@ pub fn parse_config(args: Vec<String> ) -> Config {
         gdb_native_rust: gdb_native_rust,
         lldb_version: extract_lldb_version(matches.opt_str("lldb-version")),
         llvm_version: matches.opt_str("llvm-version"),
+        system_llvm: matches.opt_present("system-llvm"),
         android_cross_path: opt_path(matches, "android-cross-path"),
         adb_path: opt_str2(matches.opt_str("adb-path")),
         adb_test_dir: opt_str2(matches.opt_str("adb-test-dir")),