[FunctionAttrs] Add initial test for pass statistics.
authorFlorian Hahn <flo@fhahn.com>
Thu, 10 Mar 2022 21:02:41 +0000 (21:02 +0000)
committerFlorian Hahn <flo@fhahn.com>
Thu, 10 Mar 2022 21:02:41 +0000 (21:02 +0000)
llvm/test/Transforms/FunctionAttrs/stats.ll [new file with mode: 0644]

diff --git a/llvm/test/Transforms/FunctionAttrs/stats.ll b/llvm/test/Transforms/FunctionAttrs/stats.ll
new file mode 100644 (file)
index 0000000..4697495
--- /dev/null
@@ -0,0 +1,27 @@
+; RUN: opt -passes=function-attrs -stats -disable-output %s 2>&1 | FileCheck %s
+
+; REQUIRES: asserts
+
+@g = global i32 20
+
+define i32 @test_only_read_arg(i32* %ptr) {
+entry:
+  %l = load i32, i32* %ptr
+  ret i32 %l
+}
+
+define void @test_write_global() {
+entry:
+  store i32 0, i32* @g
+  ret void
+}
+
+; CHECK:      1 function-attrs - Number of arguments marked nocapture
+; CHECK-NEXT: 1 function-attrs - Number of functions marked as nofree
+; CHECK-NEXT: 2 function-attrs - Number of functions marked as norecurse
+; CHECK-NEXT: 2 function-attrs - Number of functions marked as nosync
+; CHECK-NEXT: 2 function-attrs - Number of functions marked as nounwind
+; CHECK-NEXT: 1 function-attrs - Number of functions marked readonly
+; CHECK-NEXT: 1 function-attrs - Number of arguments marked readonly
+; CHECK-NEXT: 2 function-attrs - Number of functions marked as willreturn
+; CHECK-NEXT: 1 function-attrs - Number of functions marked writeonly