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
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user