forked from OSchip/llvm-project
[Profile] dump ic value profile value/site-count histogram
Differential Revision: http://reviews.google.com/D24783 llvm-svn: 282017
This commit is contained in:
parent
145569df64
commit
deda33cdbd
|
@ -66,4 +66,7 @@ foo2:20000
|
|||
#ICSUM: Total Number of Indirect Call Sites : 3
|
||||
#ICSUM: Total Number of Sites With Values : 2
|
||||
#ICSUM: Total Number of Profiled Values : 3
|
||||
#ICSUM: NumTargets, SiteCount
|
||||
#ICSUM 1, 1
|
||||
#ICSUM 2, 1
|
||||
|
||||
|
|
|
@ -463,6 +463,7 @@ static int showInstrProfile(const std::string &Filename, bool ShowCounts,
|
|||
uint64_t TotalNumValueSites = 0;
|
||||
uint64_t TotalNumValueSitesWithValueProfile = 0;
|
||||
uint64_t TotalNumValues = 0;
|
||||
std::vector<unsigned> ICHistogram;
|
||||
for (const auto &Func : *Reader) {
|
||||
bool Show =
|
||||
ShowAllFunctions || (!ShowFunction.empty() &&
|
||||
|
@ -515,8 +516,12 @@ static int showInstrProfile(const std::string &Filename, bool ShowCounts,
|
|||
std::unique_ptr<InstrProfValueData[]> VD =
|
||||
Func.getValueForSite(IPVK_IndirectCallTarget, I);
|
||||
TotalNumValues += NV;
|
||||
if (NV)
|
||||
if (NV) {
|
||||
TotalNumValueSitesWithValueProfile++;
|
||||
if (NV > ICHistogram.size())
|
||||
ICHistogram.resize(NV, 0);
|
||||
ICHistogram[NV - 1]++;
|
||||
}
|
||||
for (uint32_t V = 0; V < NV; V++) {
|
||||
OS << "\t[ " << I << ", ";
|
||||
OS << Symtab.getFuncName(VD[V].Value) << ", " << VD[V].Count
|
||||
|
@ -543,6 +548,11 @@ static int showInstrProfile(const std::string &Filename, bool ShowCounts,
|
|||
OS << "Total Number of Sites With Values : "
|
||||
<< TotalNumValueSitesWithValueProfile << "\n";
|
||||
OS << "Total Number of Profiled Values : " << TotalNumValues << "\n";
|
||||
|
||||
OS << "IC Value histogram : \n\tNumTargets, SiteCount\n";
|
||||
for (unsigned I = 0; I < ICHistogram.size(); I++) {
|
||||
OS << "\t" << I + 1 << ", " << ICHistogram[I] << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (ShowDetailedSummary) {
|
||||
|
|
Loading…
Reference in New Issue