diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-01-18 02:57:21 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-01-18 02:57:21 +0000 | 
| commit | 144aacd19ef6dc25755c69048d4cb3a4a383ae8a (patch) | |
| tree | 53378c65af6bd70714d5c885d5459a54c3a76011 /clang/lib/Lex | |
| parent | c57acbc3af0b982f9e29d305c10b933a3c1365eb (diff) | |
| download | bcm5719-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.cpp | 14 | 
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;  }  | 

