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
diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp
index 7df8e35..87eb255 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 @@
   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;
   
   //===--------------------------------------==//