diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-07-07 16:35:42 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-07-07 16:35:42 +0000 |
commit | 27821cee822d9ac84efb9314e0c23c48af44536c (patch) | |
tree | 648b2499080b40e690241773a194aeb7e303980d /clang/lib/Frontend/PCHWriter.cpp | |
parent | 4f3675ca73231a14ec84539dc408a6848ce9f6a3 (diff) | |
download | bcm5719-llvm-27821cee822d9ac84efb9314e0c23c48af44536c.tar.gz bcm5719-llvm-27821cee822d9ac84efb9314e0c23c48af44536c.zip |
Make ASTContext explicitly keep track of the declaration for the C
FILE type, rather than using name lookup to find FILE within the
translation unit. Within precompiled headers, FILE is treated as yet
another "special type" (like __builtin_va_list).
This change should provide a performance improvement (not verified),
since the lookup into the translation unit declaration
forces the (otherwise unneeded) construction of a large hash table.
More importantly, with precompiled headers, the construction
of that table requires deserializing most of the top-level
declarations from the precompiled header, which are then unused.
Fixes PR 4509.
llvm-svn: 74911
Diffstat (limited to 'clang/lib/Frontend/PCHWriter.cpp')
-rw-r--r-- | clang/lib/Frontend/PCHWriter.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/Frontend/PCHWriter.cpp b/clang/lib/Frontend/PCHWriter.cpp index 566df350f61..0362e8a4903 100644 --- a/clang/lib/Frontend/PCHWriter.cpp +++ b/clang/lib/Frontend/PCHWriter.cpp @@ -1892,6 +1892,7 @@ void PCHWriter::WritePCH(Sema &SemaRef, MemorizeStatCalls *StatCalls, AddTypeRef(Context.getObjCClassType(), Record); AddTypeRef(Context.getRawCFConstantStringType(), Record); AddTypeRef(Context.getRawObjCFastEnumerationStateType(), Record); + AddTypeRef(Context.getFILEType(), Record); Stream.EmitRecord(pch::SPECIAL_TYPES, Record); // Write the record containing external, unnamed definitions. |