aboutsummaryrefslogtreecommitdiff
path: root/lib/Frontend/PCHReader.cpp
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2010-08-04 21:22:45 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2010-08-04 21:22:45 +0000
commitfa78dec572259aca763457b435744f79d822c5d4 (patch)
tree2839cc78d6a9d07e890e44c1cf3ca6595bf1d184 /lib/Frontend/PCHReader.cpp
parent725cd9686a0f5bb6c994cb3e43f58b63567c6860 (diff)
Bring stats for the method pool back.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110247 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/PCHReader.cpp')
-rw-r--r--lib/Frontend/PCHReader.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp
index ffc12cc729..2252fd4729 100644
--- a/lib/Frontend/PCHReader.cpp
+++ b/lib/Frontend/PCHReader.cpp
@@ -421,8 +421,9 @@ PCHReader::PCHReader(Preprocessor &PP, ASTContext *Context,
Consumer(0), isysroot(isysroot), DisableValidation(DisableValidation),
NumStatHits(0), NumStatMisses(0), NumSLocEntriesRead(0),
TotalNumSLocEntries(0), NumStatementsRead(0), TotalNumStatements(0),
- NumMacrosRead(0), NumSelectorsRead(0), NumSelectorMisses(0),
- TotalNumMacros(0), NumLexicalDeclContextsRead(0),
+ NumMacrosRead(0), TotalNumMacros(0), NumSelectorsRead(0),
+ NumMethodPoolEntriesRead(0), NumMethodPoolMisses(0),
+ TotalNumMethodPoolEntries(0), NumLexicalDeclContextsRead(0),
TotalLexicalDeclContexts(0), NumVisibleDeclContextsRead(0),
TotalVisibleDeclContexts(0), NumCurrentElementsDeserializing(0) {
RelocatablePCH = false;
@@ -436,7 +437,8 @@ PCHReader::PCHReader(SourceManager &SourceMgr, FileManager &FileMgr,
isysroot(isysroot), DisableValidation(DisableValidation), NumStatHits(0),
NumStatMisses(0), NumSLocEntriesRead(0), TotalNumSLocEntries(0),
NumStatementsRead(0), TotalNumStatements(0), NumMacrosRead(0),
- NumSelectorsRead(0), NumSelectorMisses(0), TotalNumMacros(0),
+ TotalNumMacros(0), NumSelectorsRead(0), NumMethodPoolEntriesRead(0),
+ NumMethodPoolMisses(0), TotalNumMethodPoolEntries(0),
NumLexicalDeclContextsRead(0), TotalLexicalDeclContexts(0),
NumVisibleDeclContextsRead(0), TotalVisibleDeclContexts(0),
NumCurrentElementsDeserializing(0) {
@@ -1662,6 +1664,7 @@ PCHReader::ReadPCHBlock(PerFileData &F) {
F.SelectorLookupTableData + Record[0],
F.SelectorLookupTableData,
PCHSelectorLookupTrait(*this));
+ TotalNumMethodPoolEntries += Record[1];
break;
case pch::REFERENCED_SELECTOR_POOL: {
@@ -3092,15 +3095,13 @@ void PCHReader::PrintStats() {
NumVisibleDeclContextsRead, TotalVisibleDeclContexts,
((float)NumVisibleDeclContextsRead/TotalVisibleDeclContexts
* 100));
-#if 0
- if (TotalSelectorsInSelector) {
+ if (TotalNumMethodPoolEntries) {
std::fprintf(stderr, " %u/%u method pool entries read (%f%%)\n",
- NumSelectorSelectorsRead, TotalSelectorsInSelector,
- ((float)NumSelectorSelectorsRead/TotalSelectorsInSelector
+ NumMethodPoolEntriesRead, TotalNumMethodPoolEntries,
+ ((float)NumMethodPoolEntriesRead/TotalNumMethodPoolEntries
* 100));
- std::fprintf(stderr, " %u method pool misses\n", NumSelectorMisses);
+ std::fprintf(stderr, " %u method pool misses\n", NumMethodPoolMisses);
}
-#endif
std::fprintf(stderr, "\n");
}
@@ -3222,6 +3223,10 @@ PCHReader::ReadMethodPool(Selector Sel) {
PCHSelectorLookupTable::iterator Pos = PoolTable->find(Sel);
if (Pos != PoolTable->end()) {
++NumSelectorsRead;
+ // FIXME: Not quite happy with the statistics here. We probably should
+ // disable this tracking when called via LoadSelector.
+ // Also, should entries without methods count as misses?
+ ++NumMethodPoolEntriesRead;
PCHSelectorLookupTrait::data_type Data = *Pos;
if (DeserializationListener)
DeserializationListener->SelectorRead(Data.ID, Sel);
@@ -3229,7 +3234,7 @@ PCHReader::ReadMethodPool(Selector Sel) {
}
}
- ++NumSelectorMisses;
+ ++NumMethodPoolMisses;
return std::pair<ObjCMethodList, ObjCMethodList>();
}