diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-04-25 23:30:02 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-04-25 23:30:02 +0000 |
commit | 8c5a760b82e73ed90b560090772db97e2ae27b09 (patch) | |
tree | ef93a4503bf57c6f71ad8a6b8fe55a9532afefd8 /lib/Frontend/PCHReader.cpp | |
parent | 71238f67c5df13eef19450d66b7a7ab28377192a (diff) |
Lazily load the controlling macros for all of the headers known in the
PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes
us from reading 503 identifiers down to 37 and from 470 macros down to
4. It also results in an 8% performance improvement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70094 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/PCHReader.cpp')
-rw-r--r-- | lib/Frontend/PCHReader.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp index 40e5c0d603..c351a24118 100644 --- a/lib/Frontend/PCHReader.cpp +++ b/lib/Frontend/PCHReader.cpp @@ -1717,7 +1717,7 @@ bool PCHReader::ReadPreprocessorBlock() { HFI.isImport = Record[0]; HFI.DirInfo = Record[1]; HFI.NumIncludes = Record[2]; - HFI.ControllingMacro = DecodeIdentifierInfo(Record[3]); + HFI.ControllingMacroID = Record[3]; PP.getHeaderSearchInfo().setHeaderFileInfoForUID(HFI, NumHeaderInfos++); break; } @@ -1854,6 +1854,7 @@ PCHReader::ReadPCHBlock(uint64_t &PreprocessorBlockOffset) { } IdentifierOffsets = (const uint32_t *)BlobStart; IdentifiersLoaded.resize(Record[0]); + PP.getHeaderSearchInfo().SetExternalLookup(this); break; case pch::EXTERNAL_DEFINITIONS: |