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