llvm-6502/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll
Duncan Sands 9e89ba31f1 Rename AddReadAttrs to FunctionAttrs, and teach it how
to work out (in a very simplistic way) which function
arguments (pointer arguments only) are only dereferenced
and so do not escape.  Mark such arguments 'nocapture'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61525 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-31 16:14:43 +00:00

19 lines
325 B
LLVM

; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep readnone | count 4
@x = global i32 0
declare i32 @e() readnone
define i32 @f() {
%tmp = call i32 @e( ) ; <i32> [#uses=1]
ret i32 %tmp
}
define i32 @g() readonly {
ret i32 0
}
define i32 @h() readnone {
%tmp = load i32* @x ; <i32> [#uses=1]
ret i32 %tmp
}