diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2008-12-19 06:39:12 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2008-12-19 06:39:12 +0000 |
commit | f23d0d392ab47e191e1bbd17dc7487b9d461485c (patch) | |
tree | f7b614552c1261a2700e9e1ae056dab091dfffa3 /test/Analysis | |
parent | bebbded574f3be2756ac04746b982bdfb90cb7c4 (diff) | |
download | external_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')
-rw-r--r-- | test/Analysis/BasicAA/nocapture.ll | 14 |
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 +} + |