aboutsummaryrefslogtreecommitdiff
path: root/Driver/CacheTokens.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-12-23 18:41:34 +0000
committerTed Kremenek <kremenek@apple.com>2008-12-23 18:41:34 +0000
commit18d9afb815bd8aff885dd64c5078760b3398d7be (patch)
treee9ce1d069e39caa5aab098b8c8c9805b940f3553 /Driver/CacheTokens.cpp
parent6b1c9708c8fca3786c766b6d1869721656b31322 (diff)
PTH: Use 3 bytes instead of 4 bytes to encode the persistent ID for a token.
- This reduces the PTH size for Cocoa.h by 7%. - The increases PTH -Eonly speed for Cocoa.h by 0.8%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61377 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Driver/CacheTokens.cpp')
-rw-r--r--Driver/CacheTokens.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/Driver/CacheTokens.cpp b/Driver/CacheTokens.cpp
index c97b2259d5..180dbcc365 100644
--- a/Driver/CacheTokens.cpp
+++ b/Driver/CacheTokens.cpp
@@ -47,6 +47,13 @@ static void Emit16(llvm::raw_ostream& Out, uint32_t V) {
assert((V >> 16) == 0);
}
+static void Emit24(llvm::raw_ostream& Out, uint32_t V) {
+ Out << (unsigned char)(V);
+ Out << (unsigned char)(V >> 8);
+ Out << (unsigned char)(V >> 16);
+ assert((V >> 24) == 0);
+}
+
static void EmitBuf(llvm::raw_ostream& Out, const char* I, const char* E) {
for ( ; I != E ; ++I) Out << *I;
}
@@ -73,7 +80,7 @@ static void EmitToken(llvm::raw_ostream& Out, const Token& T,
Emit8(Out, T.getKind());
Emit8(Out, T.getFlags());
- Emit32(Out, ResolveID(IM, idcount, T.getIdentifierInfo()));
+ Emit24(Out, ResolveID(IM, idcount, T.getIdentifierInfo()));
Emit32(Out, SMgr.getFullFilePos(T.getLocation()));
Emit16(Out, T.getLength());
}