summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/Inline/function-count-update-2.ll
diff options
context:
space:
mode:
authorEaswaran Raman <eraman@google.com>2016-03-03 18:26:33 +0000
committerEaswaran Raman <eraman@google.com>2016-03-03 18:26:33 +0000
commit3035719c86812d83e0bf9320ba5153a219f4635c (patch)
treedfe3444c2a1d041a5841fa8642cb5d76f76b4166 /llvm/test/Transforms/Inline/function-count-update-2.ll
parentabcee45b7ad3a07359ac92cc2954f4ef489367ae (diff)
downloadbcm5719-llvm-3035719c86812d83e0bf9320ba5153a219f4635c.tar.gz
bcm5719-llvm-3035719c86812d83e0bf9320ba5153a219f4635c.zip
Infrastructure for PGO enhancements in inliner
This patch provides the following infrastructure for PGO enhancements in inliner: Enable the use of block level profile information in inliner Incremental update of block frequency information during inlining Update the function entry counts of callees when they get inlined into callers. Differential Revision: http://reviews.llvm.org/D16381 llvm-svn: 262636
Diffstat (limited to 'llvm/test/Transforms/Inline/function-count-update-2.ll')
-rw-r--r--llvm/test/Transforms/Inline/function-count-update-2.ll27
1 files changed, 27 insertions, 0 deletions
diff --git a/llvm/test/Transforms/Inline/function-count-update-2.ll b/llvm/test/Transforms/Inline/function-count-update-2.ll
new file mode 100644
index 00000000000..e9a44592cdd
--- /dev/null
+++ b/llvm/test/Transforms/Inline/function-count-update-2.ll
@@ -0,0 +1,27 @@
+; RUN: opt < %s -inline -S | FileCheck %s
+
+; This tests that the function count of a callee gets correctly updated after it
+; has been inlined into a two callsites.
+
+; CHECK: @callee() !prof [[COUNT:![0-9]+]]
+define i32 @callee() !prof !1 {
+ ret i32 0
+}
+
+define i32 @caller1() !prof !2 {
+ %i = call i32 @callee()
+ ret i32 %i
+}
+
+define i32 @caller2() !prof !3 {
+ %i = call i32 @callee()
+ ret i32 %i
+}
+
+!llvm.module.flags = !{!0}
+; CHECK: [[COUNT]] = !{!"function_entry_count", i64 0}
+!0 = !{i32 1, !"MaxFunctionCount", i32 1000}
+!1 = !{!"function_entry_count", i64 1000}
+!2 = !{!"function_entry_count", i64 600}
+!3 = !{!"function_entry_count", i64 400}
+
OpenPOWER on IntegriCloud