diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-01-19 23:13:15 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-01-19 23:13:15 +0000 |
commit | 7b78b7c6d96deb1e63f8d0655ee6fa53de0b65ef (patch) | |
tree | 2c58696d1cba81a09d6a61f8f1af035f5dbf2c74 /lib/Lex/PTHLexer.cpp | |
parent | 506010b2b6ea0e8f25bc0638a9aaca963eff3940 (diff) |
PTH: Emitted tokens now consist of 12 bytes that are loaded used 3 32-bit loads. This reduces user time but increases system time because of the slightly larger PTH file. Although there is no performance win on Cocoa.h and -Eonly, overall this seems like a good step.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62542 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Lex/PTHLexer.cpp')
-rw-r--r-- | lib/Lex/PTHLexer.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp index 7df8e35986..87eb255da1 100644 --- a/lib/Lex/PTHLexer.cpp +++ b/lib/Lex/PTHLexer.cpp @@ -25,7 +25,7 @@ #include "llvm/ADT/OwningPtr.h" using namespace clang; -#define DISK_TOKEN_SIZE (1+1+3+4+2) +#define DISK_TOKEN_SIZE (1+1+2+4+4) //===----------------------------------------------------------------------===// // Utility methods for reading from the mmap'ed PTH file. @@ -107,11 +107,14 @@ LexNextToken: const unsigned char *CurPtrShadow = CurPtr; // Read in the data for the token. - tok::TokenKind TKind = (tok::TokenKind) Read8(CurPtrShadow); - Token::TokenFlags TFlags = (Token::TokenFlags) Read8(CurPtrShadow); - uint32_t IdentifierID = Read24(CurPtrShadow); + unsigned Word0 = Read32(CurPtrShadow); + uint32_t IdentifierID = Read32(CurPtrShadow); uint32_t FileOffset = Read32(CurPtrShadow); - uint32_t Len = Read16(CurPtrShadow); + + tok::TokenKind TKind = (tok::TokenKind) (Word0 & 0xFF); + Token::TokenFlags TFlags = (Token::TokenFlags) ((Word0 >> 8) & 0xFF); + uint32_t Len = Word0 >> 16; + CurPtr = CurPtrShadow; //===--------------------------------------==// |