[PATCH] D69384: Add unlikely attribute to outlined function
Ruijie Fang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 30 23:07:50 PDT 2020
rjf added a comment.
@hiraditya The testcase is passing. This should be ready to be merged.
---
FYI, ` opt -hotcoldsplit -hotcoldsplit-threshold=0 -codegenprepare -S < coldentrycount.ll` produces the following output:
; ModuleID = '<stdin>'
source_filename = "<stdin>"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.14.0"
define void @fun() !prof !14 !section_prefix !15 {
entry:
br i1 undef, label %if.then, label %codeRepl
if.then: ; preds = %entry
ret void
codeRepl: ; preds = %entry
call void @fun.cold.1() #2
br label %if.else.ret
if.else.ret: ; preds = %codeRepl
ret void
}
; Function Attrs: cold
declare void @sink() #0
; Function Attrs: cold minsize
define internal void @fun.cold.1() #1 !prof !16 !section_prefix !17 {
newFuncRoot:
br label %if.else
if.else.ret.exitStub: ; preds = %if.else
ret void
if.else: ; preds = %newFuncRoot
call void @sink()
br label %if.else.ret.exitStub
}
attributes #0 = { cold }
attributes #1 = { cold minsize }
attributes #2 = { noinline }
!llvm.module.flags = !{!0}
!0 = !{i32 1, !"ProfileSummary", !1}
!1 = !{!2, !3, !4, !5, !6, !7, !8, !9}
!2 = !{!"ProfileFormat", !"InstrProf"}
!3 = !{!"TotalCount", i64 10000}
!4 = !{!"MaxCount", i64 10}
!5 = !{!"MaxInternalCount", i64 1}
!6 = !{!"MaxFunctionCount", i64 1000}
!7 = !{!"NumCounts", i64 3}
!8 = !{!"NumFunctions", i64 3}
!9 = !{!"DetailedSummary", !10}
!10 = !{!11, !12, !13}
!11 = !{i32 10000, i64 100, i32 1}
!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"}
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69384/new/
https://reviews.llvm.org/D69384
More information about the llvm-commits
mailing list