mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-19 23:23:38 -04:00
Add writeonly IR attribute
Summary: This complements the earlier addition of IntrWriteMem and IntrWriteArgMem LLVM intrinsic properties, see D18291. Also start using the attribute for memset, memcpy, and memmove intrinsics, and remove their special-casing in BasicAliasAnalysis. Reviewers: reames, joker.eph Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D18714 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274485 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -204,7 +204,7 @@ define void @f34()
|
||||
; CHECK: define void @f34()
|
||||
{
|
||||
call void @nobuiltin() nobuiltin
|
||||
; CHECK: call void @nobuiltin() #32
|
||||
; CHECK: call void @nobuiltin() #33
|
||||
ret void;
|
||||
}
|
||||
|
||||
@@ -328,6 +328,12 @@ define i8* @f55(i32, i32) allocsize(0, 1) {
|
||||
ret i8* null
|
||||
}
|
||||
|
||||
; CHECK: define void @f56() #32
|
||||
define void @f56() writeonly
|
||||
{
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: attributes #0 = { noreturn }
|
||||
; CHECK: attributes #1 = { nounwind }
|
||||
; CHECK: attributes #2 = { readnone }
|
||||
@@ -360,4 +366,5 @@ define i8* @f55(i32, i32) allocsize(0, 1) {
|
||||
; CHECK: attributes #29 = { inaccessiblemem_or_argmemonly }
|
||||
; CHECK: attributes #30 = { allocsize(0) }
|
||||
; CHECK: attributes #31 = { allocsize(0,1) }
|
||||
; CHECK: attributes #32 = { nobuiltin }
|
||||
; CHECK: attributes #32 = { writeonly }
|
||||
; CHECK: attributes #33 = { nobuiltin }
|
||||
|
||||
Reference in New Issue
Block a user