[PATCH] D31154: Use ProfileSummary:getProfileCount to get ScaledCount for ModuleSummary
Dehao Chen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 20 15:39:31 PDT 2017
danielcdh created this revision.
Herald added a subscriber: mehdi_amini.
ModuleSummary should use the standard interface of ProfileSummary::getProfileCount.
https://reviews.llvm.org/D31154
Files:
lib/Analysis/ModuleSummaryAnalysis.cpp
test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
Index: test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
===================================================================
--- test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
+++ test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
@@ -10,7 +10,7 @@
; CHECK-NEXT: <VERSION
; See if the call to func is registered, using the expected callsite count
; and profile count, with value id matching the subsequent value symbol table.
-; CHECK-NEXT: <PERMODULE_PROFILE {{.*}} op4=[[HOT1:.*]] op5=3 op6=[[COLD:.*]] op7=1 op8=[[HOT2:.*]] op9=3 op10=[[NONE1:.*]] op11=2 op12=[[HOT3:.*]] op13=3 op14=[[NONE2:.*]] op15=2 op16=[[NONE3:.*]] op17=2 op18=[[LEGACY:.*]] op19=3/>
+; CHECK-NEXT: <PERMODULE_PROFILE {{.*}} op4=[[HOT1:.*]] op5=3 op6=[[COLD:.*]] op7=1 op8=[[HOT2:.*]] op9=3 op10=[[HOT4:.*]] op11=3 op12=[[NONE1:.*]] op13=2 op14=[[HOT3:.*]] op15=3 op16=[[NONE2:.*]] op17=2 op18=[[NONE3:.*]] op19=2 op20=[[LEGACY:.*]] op21=3/>
; CHECK-NEXT: </GLOBALVAL_SUMMARY_BLOCK>
; CHECK-LABEL: <VALUE_SYMTAB
; CHECK-NEXT: <FNENTRY {{.*}} record string = 'hot_function
@@ -21,6 +21,7 @@
; CHECK-DAG: <ENTRY abbrevid=6 op0=[[HOT1]] {{.*}} record string = 'hot1'
; CHECK-DAG: <ENTRY abbrevid=6 op0=[[HOT2]] {{.*}} record string = 'hot2'
; CHECK-DAG: <ENTRY abbrevid=6 op0=[[HOT3]] {{.*}} record string = 'hot3'
+; CHECK-DAG: <ENTRY abbrevid=6 op0=[[HOT4]] {{.*}} record string = 'hot4'
; CHECK-DAG: <COMBINED_ENTRY abbrevid=11 op0=[[LEGACY]] op1=123/>
; CHECK-LABEL: </VALUE_SYMTAB>
@@ -49,6 +50,7 @@
Cold: ; 1/1000 goes here
call void @cold()
call void @hot2()
+ call void @hot4(), !prof !15
call void @none1()
br label %exit
Hot: ; 999/1000 goes here
@@ -69,6 +71,7 @@
declare void @hot1() #1
declare void @hot2() #1
declare void @hot3() #1
+declare void @hot4() #1
declare void @cold() #1
declare void @none1() #1
declare void @none2() #1
@@ -97,3 +100,4 @@
!12 = !{i32 10000, i64 100, i32 1}
!13 = !{i32 999000, i64 100, i32 1}
!14 = !{i32 999999, i64 1, i32 2}
+!15 = !{!"branch_weights", i32 100}
Index: lib/Analysis/ModuleSummaryAnalysis.cpp
===================================================================
--- lib/Analysis/ModuleSummaryAnalysis.cpp
+++ lib/Analysis/ModuleSummaryAnalysis.cpp
@@ -231,7 +231,8 @@
}
// We should have named any anonymous globals
assert(CalledFunction->hasName());
- auto ScaledCount = BFI ? BFI->getBlockProfileCount(&BB) : None;
+ auto ScaledCount =
+ ProfileSummaryInfo::getProfileCount(CS.getInstruction(), BFI);
auto Hotness = ScaledCount ? getHotness(ScaledCount.getValue(), PSI)
: CalleeInfo::HotnessType::Unknown;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31154.92389.patch
Type: text/x-patch
Size: 2803 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170320/0ae502ae/attachment.bin>
More information about the llvm-commits
mailing list