]> granicus.if.org Git - clang/commit
[modules] Improve abbreviations for C++:
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 26 Jul 2014 06:37:51 +0000 (06:37 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 26 Jul 2014 06:37:51 +0000 (06:37 +0000)
commit82ab1c51c0cfeca6081667771771439a227919fe
treed9160b6137d1ba37390a45e475c140299f8f5512
parent9bca33e072f375f88ad54b0884b3a0674c6a0236
[modules] Improve abbreviations for C++:

 * Add abbreviation for CXXMethodDecl and for FunctionProtoType. These come up
   a *lot* in C++ modules.
 * Allow typedef declarations to use the abbreviation if they're class members,
   or if they're used.

In passing, add more record name records for Clang AST node kinds.

The downside is that we had already used up our allotment of 12 abbreviations,
so this pushes us to an extra bit on each record to support the extra abbrev
kinds, which increases file size by ~1%. This patch *barely* pays for that
through the other improvements, but we've got room for another 18 abbrevs,
so we should be able to make it much more profitable with future changes.

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