summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-01-18 02:57:21 +0000
committerChris Lattner <sabre@nondot.org>2009-01-18 02:57:21 +0000
commit144aacd19ef6dc25755c69048d4cb3a4a383ae8a (patch)
tree53378c65af6bd70714d5c885d5459a54c3a76011 /clang/lib/Lex
parentc57acbc3af0b982f9e29d305c10b933a3c1365eb (diff)
downloadbcm5719-llvm-144aacd19ef6dc25755c69048d4cb3a4a383ae8a.tar.gz
bcm5719-llvm-144aacd19ef6dc25755c69048d4cb3a4a383ae8a.zip
rearrange GetIdentifierInfo so that the fast path can be partially inlined into PTHLexer::Lex. This speeds up the user time of PTH -Eonly by another 2ms (4.4%)
llvm-svn: 62454
Diffstat (limited to 'clang/lib/Lex')
-rw-r--r--clang/lib/Lex/PTHLexer.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/clang/lib/Lex/PTHLexer.cpp b/clang/lib/Lex/PTHLexer.cpp
index a1d7f5735ea..7df8e35986e 100644
--- a/clang/lib/Lex/PTHLexer.cpp
+++ b/clang/lib/Lex/PTHLexer.cpp
@@ -596,15 +596,9 @@ PTHManager* PTHManager::Create(const std::string& file) {
return new PTHManager(File.take(), FL.take(), IData, PerIDCache,
SortedIdTable, NumIds);
}
-
-IdentifierInfo* PTHManager::GetIdentifierInfo(unsigned persistentID) {
-
- // Check if the IdentifierInfo has already been resolved.
- IdentifierInfo* II = PerIDCache[persistentID];
- if (II) return II;
-
+IdentifierInfo* PTHManager::LazilyCreateIdentifierInfo(unsigned PersistentID) {
// Look in the PTH file for the string data for the IdentifierInfo object.
- const unsigned char* TableEntry = IdDataTable + sizeof(uint32_t)*persistentID;
+ const unsigned char* TableEntry = IdDataTable + sizeof(uint32_t)*PersistentID;
const unsigned char* IDData =
(const unsigned char*)Buf->getBufferStart() + Read32(TableEntry);
assert(IDData < (const unsigned char*)Buf->getBufferEnd());
@@ -614,10 +608,10 @@ IdentifierInfo* PTHManager::GetIdentifierInfo(unsigned persistentID) {
Alloc.Allocate<std::pair<IdentifierInfo,const unsigned char*> >();
Mem->second = IDData;
- II = new ((void*) Mem) IdentifierInfo(true);
+ IdentifierInfo *II = new ((void*) Mem) IdentifierInfo(true);
// Store the new IdentifierInfo in the cache.
- PerIDCache[persistentID] = II;
+ PerIDCache[PersistentID] = II;
return II;
}
OpenPOWER on IntegriCloud