aboutsummaryrefslogtreecommitdiffstats
path: root/test/Analysis/BasicAA
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2008-12-19 06:39:12 +0000
committerNick Lewycky <nicholas@mxc.ca>2008-12-19 06:39:12 +0000
commitf23d0d392ab47e191e1bbd17dc7487b9d461485c (patch)
treef7b614552c1261a2700e9e1ae056dab091dfffa3 /test/Analysis/BasicAA
parentbebbded574f3be2756ac04746b982bdfb90cb7c4 (diff)
downloadexternal_llvm-f23d0d392ab47e191e1bbd17dc7487b9d461485c.zip
external_llvm-f23d0d392ab47e191e1bbd17dc7487b9d461485c.tar.gz
external_llvm-f23d0d392ab47e191e1bbd17dc7487b9d461485c.tar.bz2
Resubmit support for the 'nocapture' attribute.
The problematic part of this patch is that we were out of attribute bits, requiring some fancy bit hacking to make it fit (by shrinking alignment) without breaking existing users or the file format. This change will require users to rebuild llvm-gcc to match llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61239 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Analysis/BasicAA')
-rw-r--r--test/Analysis/BasicAA/nocapture.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/Analysis/BasicAA/nocapture.ll b/test/Analysis/BasicAA/nocapture.ll
new file mode 100644
index 0000000..0ca444c
--- /dev/null
+++ b/test/Analysis/BasicAA/nocapture.ll
@@ -0,0 +1,14 @@
+; RUN: llvm-as < %s | opt -basicaa -gvn -instcombine | llvm-dis | grep {ret i32 0}
+
+declare i32* @test(i32* nocapture)
+
+define i32 @test2() {
+ %P = alloca i32
+ %Q = call i32* @test(i32* %P)
+ %a = load i32* %P
+ store i32 4, i32* %Q ;; cannot clobber P since it is nocapture.
+ %b = load i32* %P
+ %c = sub i32 %a, %b
+ ret i32 %c
+}
+