[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