diff options
author | Piotr Padlewski <prazek@google.com> | 2015-09-15 18:32:14 +0000 |
---|---|---|
committer | Piotr Padlewski <prazek@google.com> | 2015-09-15 18:32:14 +0000 |
commit | 6c15ec49ede56932382b24eaaaa851f79d3cca78 (patch) | |
tree | 0b993b57bf75064ce37ef3fc1b8b1cd30951ad09 /llvm/test/Transforms/CodeGenPrepare/invariant.group.ll | |
parent | dc29c973e5c8e3f1dfb6ea83570e4ee571008ca5 (diff) | |
download | bcm5719-llvm-6c15ec49ede56932382b24eaaaa851f79d3cca78.tar.gz bcm5719-llvm-6c15ec49ede56932382b24eaaaa851f79d3cca78.zip |
Introducing llvm.invariant.group.barrier intrinsic
For more info for what reason it was invented, goto:
http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html
invariant.group.barrier:
http://reviews.llvm.org/D12310
docs:
http://reviews.llvm.org/D11399
CodeGenPrepare:
http://reviews.llvm.org/D12875
llvm-svn: 247711
Diffstat (limited to 'llvm/test/Transforms/CodeGenPrepare/invariant.group.ll')
-rw-r--r-- | llvm/test/Transforms/CodeGenPrepare/invariant.group.ll | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/Transforms/CodeGenPrepare/invariant.group.ll b/llvm/test/Transforms/CodeGenPrepare/invariant.group.ll new file mode 100644 index 00000000000..e8f1e42ddcb --- /dev/null +++ b/llvm/test/Transforms/CodeGenPrepare/invariant.group.ll @@ -0,0 +1,23 @@ +; RUN: opt -codegenprepare -S < %s | FileCheck %s + +@tmp = global i8 0 + +; CHECK-LABEL: define void @foo() { +define void @foo() { +enter: + ; CHECK-NOT: !invariant.group + ; CHECK-NOT: @llvm.invariant.group.barrier( + ; CHECK: %val = load i8, i8* @tmp + %val = load i8, i8* @tmp, !invariant.group !0 + %ptr = call i8* @llvm.invariant.group.barrier(i8* @tmp) + + ; CHECK: store i8 42, i8* @tmp + store i8 42, i8* %ptr, !invariant.group !0 + + ret void +} +; CHECK-LABEL: } + +declare i8* @llvm.invariant.group.barrier(i8*) + +!0 = !{!"something"}
\ No newline at end of file |