diff options
author | Easwaran Raman <eraman@google.com> | 2016-03-03 18:26:33 +0000 |
---|---|---|
committer | Easwaran Raman <eraman@google.com> | 2016-03-03 18:26:33 +0000 |
commit | 3035719c86812d83e0bf9320ba5153a219f4635c (patch) | |
tree | dfe3444c2a1d041a5841fa8642cb5d76f76b4166 /llvm/test/Transforms/Inline/function-count-update-2.ll | |
parent | abcee45b7ad3a07359ac92cc2954f4ef489367ae (diff) | |
download | bcm5719-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.ll | 27 |
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} + |