Index: llvm/lib/CodeGen/CodeGenPrepare.cpp =================================================================== --- llvm/lib/CodeGen/CodeGenPrepare.cpp +++ llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -433,6 +433,7 @@ ProfileSummaryInfo *PSI = &getAnalysis().getPSI(); + if (ProfileGuidedSectionPrefix) { if (PSI->isFunctionHotInCallGraph(&F, *BFI)) F.setSectionPrefix(".hot"); Index: llvm/test/Transforms/HotColdSplit/coldentrycount.ll =================================================================== --- llvm/test/Transforms/HotColdSplit/coldentrycount.ll +++ llvm/test/Transforms/HotColdSplit/coldentrycount.ll @@ -1,7 +1,7 @@ ; Test to ensure that split cold function gets 0 entry count profile ; metadata when compiling with pgo. -; RUN: opt -hotcoldsplit -hotcoldsplit-threshold=0 -S < %s | FileCheck %s +; RUN: opt -hotcoldsplit -hotcoldsplit-threshold=0 -codegenprepare -S < %s | FileCheck %s target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-apple-macosx10.14.0" @@ -22,8 +22,9 @@ declare void @sink() cold -; CHECK: define {{.*}} @fun.cold.1{{.*}} ![[PROF:[0-9]+]] +; CHECK: define {{.*}} @fun.cold.1{{.*}} ![[PROF:[0-9]+]] {{.*}}section_prefix ![[UNLIKELY:[0-9]+]] ; CHECK: ![[PROF]] = !{!"function_entry_count", i64 0} +; CHECK: ![[UNLIKELY]] = !{!"function_section_prefix", !".unlikely"} !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} @@ -41,3 +42,6 @@ !12 = !{i32 999000, i64 100, i32 1} !13 = !{i32 999999, i64 1, i32 2} !14 = !{!"function_entry_count", i64 100} +!15 = !{!"function_section_prefix", !".hot"} +!16 = !{!"function_entry_count", i64 0} +!17 = !{!"function_section_prefix", !".unlikely"}