diff options
author | Wei Mi <wmi@google.com> | 2018-12-13 21:51:42 +0000 |
---|---|---|
committer | Wei Mi <wmi@google.com> | 2018-12-13 21:51:42 +0000 |
commit | 66c6c5abea94e3fcaef169f54b0c91e087ec15dc (patch) | |
tree | c10fea0e5612aab1501b3ce07614621d82e0c01f /llvm/test/Transforms/Inline | |
parent | 7b05666a19c1310d2d3b7e05d08313695b4eaa92 (diff) | |
download | bcm5719-llvm-66c6c5abea94e3fcaef169f54b0c91e087ec15dc.tar.gz bcm5719-llvm-66c6c5abea94e3fcaef169f54b0c91e087ec15dc.zip |
[SampleFDO] handle ProfileSampleAccurate when initializing function entry count
ProfileSampleAccurate is used to indicate the profile has exact match to the
code to be optimized.
Previously ProfileSampleAccurate is handled in ProfileSummaryInfo::isColdCallSite
and ProfileSummaryInfo::isColdBlock. A better solution is to initialize function
entry count to 0 when ProfileSampleAccurate is true, so we don't have to handle
ProfileSampleAccurate in multiple places.
Differential Revision: https://reviews.llvm.org/D55660
llvm-svn: 349088
Diffstat (limited to 'llvm/test/Transforms/Inline')
-rw-r--r-- | llvm/test/Transforms/Inline/inline-cold-callsite-samplepgo.ll | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/llvm/test/Transforms/Inline/inline-cold-callsite-samplepgo.ll b/llvm/test/Transforms/Inline/inline-cold-callsite-samplepgo.ll deleted file mode 100644 index cf2e75757e7..00000000000 --- a/llvm/test/Transforms/Inline/inline-cold-callsite-samplepgo.ll +++ /dev/null @@ -1,47 +0,0 @@ -; For SamplePGO, if -profile-sample-accurate is specified, cold callsite -; heuristics should be honored if the caller has no profile. - -; RUN: opt < %s -inline -S -inline-cold-callsite-threshold=0 | FileCheck %s - -define i32 @callee(i32 %x) { - %x1 = add i32 %x, 1 - %x2 = add i32 %x1, 1 - %x3 = add i32 %x2, 1 - call void @extern() - call void @extern() - ret i32 %x3 -} - -define i32 @caller(i32 %y1) { -; CHECK-LABEL: @caller -; CHECK-NOT: call i32 @callee - %y2 = call i32 @callee(i32 %y1) - ret i32 %y2 -} - -define i32 @caller_accurate(i32 %y1) #0 { -; CHECK-LABEL: @caller_accurate -; CHECK: call i32 @callee - %y2 = call i32 @callee(i32 %y1) - ret i32 %y2 -} - -declare void @extern() - -attributes #0 = { "profile-sample-accurate" } - -!llvm.module.flags = !{!1} -!1 = !{i32 1, !"ProfileSummary", !2} -!2 = !{!3, !4, !5, !6, !7, !8, !9, !10} -!3 = !{!"ProfileFormat", !"SampleProfile"} -!4 = !{!"TotalCount", i64 10000} -!5 = !{!"MaxCount", i64 1000} -!6 = !{!"MaxInternalCount", i64 1} -!7 = !{!"MaxFunctionCount", i64 1000} -!8 = !{!"NumCounts", i64 3} -!9 = !{!"NumFunctions", i64 3} -!10 = !{!"DetailedSummary", !11} -!11 = !{!12, !13, !14} -!12 = !{i32 10000, i64 100, i32 1} -!13 = !{i32 999000, i64 100, i32 1} -!14 = !{i32 999999, i64 1, i32 2} |