[llvm] cea1af1 - [funcattrs] Add some additional indirect call tests

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 16 16:43:11 PST 2021


Author: Philip Reames
Date: 2021-12-16T16:38:54-08:00
New Revision: cea1af13d0f915bb840bc5c095665592498d8640

URL: https://github.com/llvm/llvm-project/commit/cea1af13d0f915bb840bc5c095665592498d8640
DIFF: https://github.com/llvm/llvm-project/commit/cea1af13d0f915bb840bc5c095665592498d8640.diff

LOG: [funcattrs] Add some additional indirect call tests

Added: 
    

Modified: 
    llvm/test/Transforms/FunctionAttrs/nocapture.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/FunctionAttrs/nocapture.ll b/llvm/test/Transforms/FunctionAttrs/nocapture.ll
index 2042f3e0d724f..3c699de9df6c9 100644
--- a/llvm/test/Transforms/FunctionAttrs/nocapture.ll
+++ b/llvm/test/Transforms/FunctionAttrs/nocapture.ll
@@ -317,5 +317,28 @@ define i1 @captureDereferenceableOrNullICmp(i32* dereferenceable_or_null(4) %x)
   ret i1 %2
 }
 
+declare void @capture(i8*)
+
+; FNATTR: define void @nocapture_fptr(i8* (i8*)* nocapture %f, i8* %p)
+define void @nocapture_fptr(i8* (i8*)* %f, i8* %p) {
+  %res = call i8* %f(i8* %p)
+  call void @capture(i8* %res)
+  ret void
+}
+
+; FNATTR: define void @recurse_fptr(i8* (i8*)* nocapture %f, i8* %p)
+define void @recurse_fptr(i8* (i8*)* %f, i8* %p) {
+  %res = call i8* %f(i8* %p)
+  store i8 0, i8* %res
+  ret void
+}
+
+; FNATTR: define void @readnone_indirec(void (i8*)* nocapture readnone %f, i8* readnone %p)
+define void @readnone_indirec(void (i8*)* %f, i8* %p) {
+  call void %f(i8* %p) readnone
+  ret void
+}
+
+
 declare i8* @llvm.launder.invariant.group.p0i8(i8*)
 declare i8* @llvm.strip.invariant.group.p0i8(i8*)


        


More information about the llvm-commits mailing list