[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