summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/Inline
diff options
context:
space:
mode:
authorWei Mi <wmi@google.com>2018-12-13 21:51:42 +0000
committerWei Mi <wmi@google.com>2018-12-13 21:51:42 +0000
commit66c6c5abea94e3fcaef169f54b0c91e087ec15dc (patch)
treec10fea0e5612aab1501b3ce07614621d82e0c01f /llvm/test/Transforms/Inline
parent7b05666a19c1310d2d3b7e05d08313695b4eaa92 (diff)
downloadbcm5719-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.ll47
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}
OpenPOWER on IntegriCloud