зеркало из https://github.com/microsoft/clang.git
- Encode the token length with 2 bytes instead of 4. - This reduces the size of the .pth file for Cocoa.h by 12%. - This speeds up PTH time (-Eonly) on Cocoa.h by 1.6%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61364 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
866bdf7454
Коммит
8f174e173c
|
@ -30,6 +30,10 @@ typedef uint32_t Offset;
|
|||
typedef llvm::DenseMap<const FileEntry*,std::pair<Offset,Offset> > PCHMap;
|
||||
typedef llvm::DenseMap<const IdentifierInfo*,uint32_t> IDMap;
|
||||
|
||||
static void Emit8(llvm::raw_ostream& Out, uint32_t V) {
|
||||
Out << (unsigned char)(V);
|
||||
}
|
||||
|
||||
static void Emit32(llvm::raw_ostream& Out, uint32_t V) {
|
||||
Out << (unsigned char)(V);
|
||||
Out << (unsigned char)(V >> 8);
|
||||
|
@ -37,8 +41,10 @@ static void Emit32(llvm::raw_ostream& Out, uint32_t V) {
|
|||
Out << (unsigned char)(V >> 24);
|
||||
}
|
||||
|
||||
static void Emit8(llvm::raw_ostream& Out, uint32_t V) {
|
||||
static void Emit16(llvm::raw_ostream& Out, uint32_t V) {
|
||||
Out << (unsigned char)(V);
|
||||
Out << (unsigned char)(V >> 8);
|
||||
assert((V >> 16) == 0);
|
||||
}
|
||||
|
||||
static void EmitBuf(llvm::raw_ostream& Out, const char* I, const char* E) {
|
||||
|
@ -69,7 +75,7 @@ static void EmitToken(llvm::raw_ostream& Out, const Token& T,
|
|||
Emit8(Out, T.getFlags());
|
||||
Emit32(Out, ResolveID(IM, idcount, T.getIdentifierInfo()));
|
||||
Emit32(Out, SMgr.getFullFilePos(T.getLocation()));
|
||||
Emit32(Out, T.getLength());
|
||||
Emit16(Out, T.getLength());
|
||||
}
|
||||
|
||||
struct IDData {
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
using namespace clang;
|
||||
|
||||
#define DISK_TOKEN_SIZE (2+3*4)
|
||||
#define DISK_TOKEN_SIZE (2+4+4+2)
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Utility methods for reading from the mmap'ed PTH file.
|
||||
|
@ -79,9 +79,7 @@ LexNextToken:
|
|||
| (((uint32_t) CurPtrShadow[9]) << 24);
|
||||
|
||||
uint32_t Len = ((uint32_t) CurPtrShadow[10])
|
||||
| (((uint32_t) CurPtrShadow[11]) << 8)
|
||||
| (((uint32_t) CurPtrShadow[12]) << 16)
|
||||
| (((uint32_t) CurPtrShadow[13]) << 24);
|
||||
| (((uint32_t) CurPtrShadow[11]) << 8);
|
||||
|
||||
CurPtr = (const char*) (CurPtrShadow + DISK_TOKEN_SIZE);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче