summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/PGOProfile/Inputs/func_entry.proftext17
-rw-r--r--llvm/test/Transforms/PGOProfile/func_entry.ll29
2 files changed, 46 insertions, 0 deletions
diff --git a/llvm/test/Transforms/PGOProfile/Inputs/func_entry.proftext b/llvm/test/Transforms/PGOProfile/Inputs/func_entry.proftext
new file mode 100644
index 00000000000..2dc2c2ec9f3
--- /dev/null
+++ b/llvm/test/Transforms/PGOProfile/Inputs/func_entry.proftext
@@ -0,0 +1,17 @@
+# IR level Instrumentation Flag
+:ir
+foo
+# Func Hash:
+12884901887
+# Num Counters:
+1
+# Counter Values:
+9999
+
+bar
+# Func Hash:
+12884901887
+# Num Counters:
+1
+# Counter Values:
+0
diff --git a/llvm/test/Transforms/PGOProfile/func_entry.ll b/llvm/test/Transforms/PGOProfile/func_entry.ll
new file mode 100644
index 00000000000..dac996e35cb
--- /dev/null
+++ b/llvm/test/Transforms/PGOProfile/func_entry.ll
@@ -0,0 +1,29 @@
+; RUN: llvm-profdata merge %S/Inputs/func_entry.proftext -o %t.profdata
+; RUN: opt < %s -passes=pgo-instr-use -pgo-test-profile-file=%t.profdata -S | FileCheck %s
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+@s = common dso_local local_unnamed_addr global i32 0, align 4
+
+define void @bar() {
+; CHECK-LABEL: @bar
+; CHECK-SAME: !prof ![[FUNC_ENTRY_COUNT_ZERO:[0-9]+]]
+
+entry:
+ store i32 1, i32* @s, align 4
+ ret void
+}
+
+define void @foo() {
+; CHECK-LABEL: @foo
+; CHECK-SAME: !prof ![[FUNC_ENTRY_COUNT_NON_ZERO:[0-9]+]]
+entry:
+ %0 = load i32, i32* @s, align 4
+ %add = add nsw i32 %0, 4
+ store i32 %add, i32* @s, align 4
+ ret void
+}
+
+; CHECK-DAG: ![[FUNC_ENTRY_COUNT_ZERO]] = !{!"function_entry_count", i64 0}
+; CHECK-DAG: ![[FUNC_ENTRY_COUNT_NON_ZERO]] = !{!"function_entry_count", i64 9999}
OpenPOWER on IntegriCloud