• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; REQUIRES: x86-registered-target
2; RUN: opt -hotcoldsplit -hotcoldsplit-threshold=0 -codegenprepare -S < %s | FileCheck %s
3
4; Test to ensure that split cold function gets 0 entry count profile
5; metadata when compiling with pgo.
6
7target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
8target triple = "x86_64-apple-macosx10.14.0"
9
10; CHECK: define {{.*}} @fun{{.*}} ![[HOTPROF:[0-9]+]] {{.*}}section_prefix ![[LIKELY:[0-9]+]]
11; CHECK: call void @fun.cold.1
12
13define void @fun() !prof !14 {
14entry:
15  br i1 undef, label %if.then, label %if.else
16
17if.then:
18  ret void
19
20if.else:
21  call void @sink()
22  ret void
23}
24
25declare void @sink() cold
26
27; CHECK: define {{.*}} @fun.cold.1{{.*}} ![[PROF:[0-9]+]] {{.*}}section_prefix ![[UNLIKELY:[0-9]+]]
28
29; CHECK: ![[HOTPROF]] = !{!"function_entry_count", i64 100}
30; CHECK: ![[LIKELY]] = !{!"function_section_prefix", !"hot"}
31; CHECK: ![[PROF]] = !{!"function_entry_count", i64 0}
32; CHECK: ![[UNLIKELY]] = !{!"function_section_prefix", !"unlikely"}
33
34!llvm.module.flags = !{!0}
35!0 = !{i32 1, !"ProfileSummary", !1}
36!1 = !{!2, !3, !4, !5, !6, !7, !8, !9}
37!2 = !{!"ProfileFormat", !"InstrProf"}
38!3 = !{!"TotalCount", i64 10000}
39!4 = !{!"MaxCount", i64 10}
40!5 = !{!"MaxInternalCount", i64 1}
41!6 = !{!"MaxFunctionCount", i64 1000}
42!7 = !{!"NumCounts", i64 3}
43!8 = !{!"NumFunctions", i64 3}
44!9 = !{!"DetailedSummary", !10}
45!10 = !{!11, !12, !13}
46!11 = !{i32 10000, i64 100, i32 1}
47!12 = !{i32 999000, i64 100, i32 1}
48!13 = !{i32 999999, i64 1, i32 2}
49!14 = !{!"function_entry_count", i64 100}
50!15 = !{!"function_section_prefix", !"hot"}
51!16 = !{!"function_entry_count", i64 0}
52!17 = !{!"function_section_prefix", !"unlikely"}
53