summaryrefslogtreecommitdiff
path: root/test/CodeGen/SystemZ
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2017-06-23 15:56:14 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2017-06-23 15:56:14 +0000
commitdd1f27e281a148dc16425d91b4d2548d26e92e75 (patch)
tree895d1bf22037939db3e065e6a409a6495a6d4207 /test/CodeGen/SystemZ
parent45dca99e22e95666bfcc4d500b58c1b1684abd32 (diff)
[SystemZ] Remove unnecessary serialization before volatile loads
This reverts the use of TargetLowering::prepareVolatileOrAtomicLoad introduced by r196905. Nothing in the semantics of the "volatile" keyword or the definition of the z/Architecture actually requires that volatile loads are preceded by a serialization operation, and no other compiler on the platform actually implements this. Since we've now seen a use case where this additional serialization causes noticable performance degradation, this patch removes it. The patch still leaves in the serialization before atomic loads, which is now implemented directly in lowerATOMIC_LOAD. (This also seems overkill, but that can be addressed separately.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306117 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/SystemZ')
-rw-r--r--test/CodeGen/SystemZ/serialize-01.ll21
1 files changed, 0 insertions, 21 deletions
diff --git a/test/CodeGen/SystemZ/serialize-01.ll b/test/CodeGen/SystemZ/serialize-01.ll
deleted file mode 100644
index 4a245172465..00000000000
--- a/test/CodeGen/SystemZ/serialize-01.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; Test serialization instructions.
-;
-; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | \
-; RUN: FileCheck %s -check-prefix=CHECK-FULL
-; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | \
-; RUN: FileCheck %s -check-prefix=CHECK-FAST
-
-; Check that volatile loads produce a serialisation.
-define i32 @f1(i32 *%src) {
-; CHECK-FULL-LABEL: f1:
-; CHECK-FULL: bcr 15, %r0
-; CHECK-FULL: l %r2, 0(%r2)
-; CHECK-FULL: br %r14
-;
-; CHECK-FAST-LABEL: f1:
-; CHECK-FAST: bcr 14, %r0
-; CHECK-FAST: l %r2, 0(%r2)
-; CHECK-FAST: br %r14
- %val = load volatile i32 , i32 *%src
- ret i32 %val
-}