about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/native.rs1
m---------src/llvm-project0
-rw-r--r--src/test/codegen/array-equality.rs4
-rw-r--r--src/test/codegen/issue-83623-SIMD-PartialEq.rs46
-rw-r--r--src/test/codegen/repeat-trusted-len.rs2
-rw-r--r--src/test/run-make-fulldeps/coverage-llvmir/Makefile2
-rw-r--r--src/test/run-make-fulldeps/coverage-llvmir/filecheck.testprog.txt18
-rw-r--r--src/test/ui/llvm-asm/issue-69092.rs4
-rw-r--r--src/test/ui/llvm-asm/issue-69092.stderr4
9 files changed, 17 insertions, 64 deletions
diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs
index b32629af4d3..d1397394be7 100644
--- a/src/bootstrap/native.rs
+++ b/src/bootstrap/native.rs
@@ -180,6 +180,7 @@ impl Step for Llvm {
             .define("LLVM_INCLUDE_EXAMPLES", "OFF")
             .define("LLVM_INCLUDE_DOCS", "OFF")
             .define("LLVM_INCLUDE_BENCHMARKS", "OFF")
+            .define("LLVM_INCLUDE_TESTS", "OFF")
             .define("LLVM_ENABLE_TERMINFO", "OFF")
             .define("LLVM_ENABLE_LIBEDIT", "OFF")
             .define("LLVM_ENABLE_BINDINGS", "OFF")
diff --git a/src/llvm-project b/src/llvm-project
-Subproject 260e0f8682098faab68af9c608534756ad37836
+Subproject e6c5dd473b7da567dc20ed3a635ca4dd2c6b7fb
diff --git a/src/test/codegen/array-equality.rs b/src/test/codegen/array-equality.rs
index 4b60fa4b0bf..fefc232b490 100644
--- a/src/test/codegen/array-equality.rs
+++ b/src/test/codegen/array-equality.rs
@@ -29,7 +29,7 @@ pub fn array_eq_value_still_passed_by_pointer(a: [u16; 9], b: [u16; 9]) -> bool
     // CHECK-NEXT: start:
     // CHECK-NEXT: bitcast
     // CHECK-NEXT: bitcast
-    // CHECK-NEXT: %[[CMP:.+]] = tail call i32 @{{bcmp|memcmp}}(i8* nonnull dereferenceable(18) %{{.+}}, i8* nonnull dereferenceable(18) %{{.+}}, i64 18)
+    // CHECK-NEXT: %[[CMP:.+]] = tail call i32 @{{bcmp|memcmp}}(i8* {{.*}} dereferenceable(18) %{{.+}}, i8* {{.*}} dereferenceable(18) %{{.+}}, i64 18)
     // CHECK-NEXT: %[[EQ:.+]] = icmp eq i32 %[[CMP]], 0
     // CHECK-NEXT: ret i1 %[[EQ]]
     a == b
@@ -41,7 +41,7 @@ pub fn array_eq_long(a: &[u16; 1234], b: &[u16; 1234]) -> bool {
     // CHECK-NEXT: start:
     // CHECK-NEXT: bitcast
     // CHECK-NEXT: bitcast
-    // CHECK-NEXT: %[[CMP:.+]] = tail call i32 @{{bcmp|memcmp}}(i8* nonnull dereferenceable(2468) %{{.+}}, i8* nonnull dereferenceable(2468) %{{.+}}, i64 2468)
+    // CHECK-NEXT: %[[CMP:.+]] = tail call i32 @{{bcmp|memcmp}}(i8* {{.*}} dereferenceable(2468) %{{.+}}, i8* {{.*}} dereferenceable(2468) %{{.+}}, i64 2468)
     // CHECK-NEXT: %[[EQ:.+]] = icmp eq i32 %[[CMP]], 0
     // CHECK-NEXT: ret i1 %[[EQ]]
     a == b
diff --git a/src/test/codegen/issue-83623-SIMD-PartialEq.rs b/src/test/codegen/issue-83623-SIMD-PartialEq.rs
deleted file mode 100644
index b22b7f52402..00000000000
--- a/src/test/codegen/issue-83623-SIMD-PartialEq.rs
+++ /dev/null
@@ -1,46 +0,0 @@
-// This test checks that jumps generated by logical operators can be optimized away
-
-// compile-flags: -Copt-level=3
-// only-64bit
-
-#![crate_type="lib"]
-
-pub struct Blueprint {
-    pub fuel_tank_size: u32,
-    pub payload: u32,
-    pub wheel_diameter: u32,
-    pub wheel_width: u32,
-    pub storage: u32,
-}
-
-// && chains should not prevent SIMD optimizations for primitives
-impl PartialEq for Blueprint{
-    fn eq(&self, other: &Self)->bool{
-       // CHECK-NOT: call{{.*}}bcmp
-       // CHECK-NOT: call{{.*}}memcmp
-       // CHECK-NOT: br {{.*}}
-       self.fuel_tank_size == other.fuel_tank_size
-            && self.payload == other.payload
-            && self.wheel_diameter == other.wheel_diameter
-            && self.wheel_width == other.wheel_width
-            && self.storage == other.storage
-    }
-}
-
-#[derive(PartialEq)]
-pub struct Blueprint2 {
-    pub fuel_tank_size: u32,
-    pub payload: u32,
-    pub wheel_diameter: u32,
-    pub wheel_width: u32,
-    pub storage: u32,
-}
-
-// Derived PartialEq should not generate jumps and should use SIMD
-#[no_mangle]
-pub fn partial_eq_should_not_jump(a: &Blueprint2, b:&Blueprint2)->bool{
-    // CHECK-NOT: call{{.*}}bcmp
-    // CHECK-NOT: call{{.*}}memcmp
-    // CHECK-NOT: br {{.*}}
-    a==b
-}
diff --git a/src/test/codegen/repeat-trusted-len.rs b/src/test/codegen/repeat-trusted-len.rs
index 9e904fc82ab..cb2d0ef809a 100644
--- a/src/test/codegen/repeat-trusted-len.rs
+++ b/src/test/codegen/repeat-trusted-len.rs
@@ -8,6 +8,6 @@ use std::iter;
 // CHECK-LABEL: @repeat_take_collect
 #[no_mangle]
 pub fn repeat_take_collect() -> Vec<u8> {
-// CHECK: call void @llvm.memset.p0i8.i{{[0-9]+}}(i8* {{(nonnull )?}}align 1{{.*}} %{{[0-9]+}}, i8 42, i{{[0-9]+}} 100000, i1 false)
+// CHECK: call void @llvm.memset.p0i8.i{{[0-9]+}}(i8* {{.*}}align 1{{.*}} %{{[0-9]+}}, i8 42, i{{[0-9]+}} 100000, i1 false)
     iter::repeat(42).take(100000).collect()
 }
diff --git a/src/test/run-make-fulldeps/coverage-llvmir/Makefile b/src/test/run-make-fulldeps/coverage-llvmir/Makefile
index 7d9121ee2f8..1ff1ffcc4b0 100644
--- a/src/test/run-make-fulldeps/coverage-llvmir/Makefile
+++ b/src/test/run-make-fulldeps/coverage-llvmir/Makefile
@@ -22,7 +22,6 @@ DEFINE_INTERNAL=define internal
 ifdef IS_WINDOWS
 	LLVM_FILECHECK_OPTIONS=\
 		-check-prefixes=CHECK,WINDOWS \
-		-DPRIVATE_GLOBAL='internal global' \
 		-DDEFINE_INTERNAL='$(DEFINE_INTERNAL)' \
 		-DCOMDAT_IF_SUPPORTED='$(COMDAT_IF_SUPPORTED)' \
 		-DINSTR_PROF_DATA='.lprfd$$M' \
@@ -36,7 +35,6 @@ ifdef IS_WINDOWS
 else
 	LLVM_FILECHECK_OPTIONS=\
 		-check-prefixes=CHECK \
-		-DPRIVATE_GLOBAL='private global' \
 		-DDEFINE_INTERNAL='$(DEFINE_INTERNAL)' \
 		-DCOMDAT_IF_SUPPORTED='$(COMDAT_IF_SUPPORTED)' \
 		-DINSTR_PROF_DATA='$(DATA_SECTION_PREFIX)__llvm_prf_data$(INSTR_PROF_DATA_SUFFIX)' \
diff --git a/src/test/run-make-fulldeps/coverage-llvmir/filecheck.testprog.txt b/src/test/run-make-fulldeps/coverage-llvmir/filecheck.testprog.txt
index a312ec48e84..8e5f2104687 100644
--- a/src/test/run-make-fulldeps/coverage-llvmir/filecheck.testprog.txt
+++ b/src/test/run-make-fulldeps/coverage-llvmir/filecheck.testprog.txt
@@ -11,27 +11,25 @@ CHECK-SAME:   section "[[INSTR_PROF_COVMAP]]", align 8
 
 WINDOWS:      @__llvm_profile_runtime = external global i32
 
-CHECK:        @__profc__R{{[a-zA-Z0-9_]+}}testprog14will_be_called = [[PRIVATE_GLOBAL]]
-CHECK-SAME:   section "[[INSTR_PROF_CNTS]]", align 8
+CHECK:        @__profc__R{{[a-zA-Z0-9_]+}}testprog14will_be_called = {{private|internal}} global
+CHECK-SAME:   section "[[INSTR_PROF_CNTS]]"{{.*}}, align 8
 
-CHECK:        @__profd__R{{[a-zA-Z0-9_]+}}testprog14will_be_called = [[PRIVATE_GLOBAL]]
+CHECK:        @__profd__R{{[a-zA-Z0-9_]+}}testprog14will_be_called = {{private|internal}} global
 CHECK-SAME:   @__profc__R{{[a-zA-Z0-9_]+}}testprog14will_be_called,
-CHECK-SAME:   section "[[INSTR_PROF_DATA]]", align 8
+CHECK-SAME:   section "[[INSTR_PROF_DATA]]"{{.*}}, align 8
 
-CHECK:        @__profc__R{{[a-zA-Z0-9_]+}}testprog4main = [[PRIVATE_GLOBAL]]
-CHECK-SAME:   section "[[INSTR_PROF_CNTS]]", align 8
+CHECK:        @__profc__R{{[a-zA-Z0-9_]+}}testprog4main = {{private|internal}} global
+CHECK-SAME:   section "[[INSTR_PROF_CNTS]]"{{.*}}, align 8
 
-CHECK:        @__profd__R{{[a-zA-Z0-9_]+}}testprog4main = [[PRIVATE_GLOBAL]]
+CHECK:        @__profd__R{{[a-zA-Z0-9_]+}}testprog4main = {{private|internal}} global
 CHECK-SAME:   @__profc__R{{[a-zA-Z0-9_]+}}testprog4main,
-CHECK-SAME:   section "[[INSTR_PROF_DATA]]", align 8
+CHECK-SAME:   section "[[INSTR_PROF_DATA]]"{{.*}}, align 8
 
 CHECK:        @__llvm_prf_nm = private constant
 CHECK-SAME:   section "[[INSTR_PROF_NAME]]", align 1
 
 CHECK:        @llvm.used = appending global
 CHECK-SAME:   i8* bitcast ({ {{.*}} }* @__llvm_coverage_mapping to i8*)
-WINDOWS-SAME: i8* bitcast (i32 ()* @__llvm_profile_runtime_user to i8*)
-CHECK-SAME:   i8* bitcast ({ {{.*}} }* @__profd__R{{[a-zA-Z0-9_]*}}testprog4main to i8*)
 CHECK-SAME:   i8* getelementptr inbounds ({{.*}}* @__llvm_prf_nm, i32 0, i32 0)
 CHECK-SAME:   section "llvm.metadata"
 
diff --git a/src/test/ui/llvm-asm/issue-69092.rs b/src/test/ui/llvm-asm/issue-69092.rs
index 26fccec80f1..ea1b80cc9b0 100644
--- a/src/test/ui/llvm-asm/issue-69092.rs
+++ b/src/test/ui/llvm-asm/issue-69092.rs
@@ -1,5 +1,7 @@
 // build-fail
 // ignore-emscripten no asm! support
+// The error message differs slightly between LLVM versions
+// min-llvm-version: 13.0
 // Regression test for #69092
 
 #![feature(llvm_asm)]
@@ -7,5 +9,5 @@
 
 fn main() {
     unsafe { llvm_asm!(".ascii \"Xen\0\""); }
-    //~^ ERROR: expected string in '.ascii' directive
+    //~^ ERROR: expected string
 }
diff --git a/src/test/ui/llvm-asm/issue-69092.stderr b/src/test/ui/llvm-asm/issue-69092.stderr
index 15a35e43c27..28c5fbbca3c 100644
--- a/src/test/ui/llvm-asm/issue-69092.stderr
+++ b/src/test/ui/llvm-asm/issue-69092.stderr
@@ -1,5 +1,5 @@
-error: expected string in '.ascii' directive
-  --> $DIR/issue-69092.rs:9:14
+error: expected string
+  --> $DIR/issue-69092.rs:11:14
    |
 LL |     unsafe { llvm_asm!(".ascii \"Xen\0\""); }
    |              ^