mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-24 12:50:42 +00:00
Fix PR28219: Use profile summary from reader and not compute it
Differentiaal revision: http://reviews.llvm.org/D21546 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273301 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
11e2958f9b
commit
604d3935d1
@ -879,7 +879,6 @@ static bool annotateAllFunctions(
|
||||
|
||||
std::vector<Function *> HotFunctions;
|
||||
std::vector<Function *> ColdFunctions;
|
||||
InstrProfSummaryBuilder Builder(ProfileSummaryBuilder::DefaultCutoffs);
|
||||
for (auto &F : M) {
|
||||
if (F.isDeclaration())
|
||||
continue;
|
||||
@ -891,15 +890,13 @@ static bool annotateAllFunctions(
|
||||
Func.populateCounters();
|
||||
Func.setBranchWeights();
|
||||
Func.annotateIndirectCallSites();
|
||||
if (!Func.getProfileRecord().Counts.empty())
|
||||
Builder.addRecord(Func.getProfileRecord());
|
||||
PGOUseFunc::FuncFreqAttr FreqAttr = Func.getFuncFreqAttr();
|
||||
if (FreqAttr == PGOUseFunc::FFA_Cold)
|
||||
ColdFunctions.push_back(&F);
|
||||
else if (FreqAttr == PGOUseFunc::FFA_Hot)
|
||||
HotFunctions.push_back(&F);
|
||||
}
|
||||
M.setProfileSummary(Builder.getSummary()->getMD(M.getContext()));
|
||||
M.setProfileSummary(PGOReader->getSummary().getMD(M.getContext()));
|
||||
// Set function hotness attribute from the profile.
|
||||
// We have to apply these attributes at the end because their presence
|
||||
// can affect the BranchProbabilityInfo of any callers, resulting in an
|
||||
|
10
test/Transforms/PGOProfile/Inputs/PR28219.proftext
Normal file
10
test/Transforms/PGOProfile/Inputs/PR28219.proftext
Normal file
@ -0,0 +1,10 @@
|
||||
# :ir is the flag to indicate this is IR level profile.
|
||||
:ir
|
||||
@bar
|
||||
256
|
||||
1
|
||||
2
|
||||
@foo
|
||||
512
|
||||
1
|
||||
3
|
12
test/Transforms/PGOProfile/PR28219.ll
Normal file
12
test/Transforms/PGOProfile/PR28219.ll
Normal file
@ -0,0 +1,12 @@
|
||||
; Test that we annotate entire program's summary and not just this module's
|
||||
; RUN: llvm-profdata merge %S/Inputs/PR28219.proftext -o %t.profdata
|
||||
; RUN: opt < %s -pgo-instr-use -pgo-test-profile-file=%t.profdata -S | FileCheck %s
|
||||
|
||||
define i32 @bar() {
|
||||
entry:
|
||||
ret i32 1
|
||||
}
|
||||
; CHECK-DAG: {{![0-9]+}} = !{i32 1, !"ProfileSummary", {{![0-9]+}}}
|
||||
; CHECK-DAG: {{![0-9]+}} = !{!"NumFunctions", i64 2}
|
||||
; CHECK-DAG: {{![0-9]+}} = !{!"MaxFunctionCount", i64 3}
|
||||
|
Loading…
x
Reference in New Issue
Block a user