]> granicus.if.org Git - clang/commit
When we deserialize a declaration from a module file, allocate extra
authorDouglas Gregor <dgregor@apple.com>
Thu, 5 Jan 2012 22:27:05 +0000 (22:27 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 5 Jan 2012 22:27:05 +0000 (22:27 +0000)
commitb6b60c1521a2e65f60e93c5fd56c103cf027df63
tree3f7b845da88ecc38adcc50abba137f9ca97b83e8
parent1e68ecc4fcce12f683c4fd38acfd1a004001b04f
When we deserialize a declaration from a module file, allocate extra
storage for the global declaration ID. Declarations that are parsed
(rather than deserialized) are unaffected, so the number of
declarations that pay this cost tends to be relatively small (since
relatively few declarations are ever deserialized).

This replaces a largish DenseMap within the AST reader. It's not
strictly a win in terms of memory use---not every declaration was
added to that DenseMap in the first place---but it's cleaner to have
this information available for every deserialized declaration, so that
future clients can rely on it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147617 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/DeclBase.h
include/clang/Serialization/ASTReader.h
lib/AST/DeclBase.cpp
lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriter.cpp