r266269 - [modules] Store the location of the lexical update record in a decl update as
Richard Smith via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 13 17:50:19 PDT 2016
Author: rsmith
Date: Wed Apr 13 19:50:18 2016
New Revision: 266269
URL: http://llvm.org/viewvc/llvm-project?rev=266269&view=rev
Log:
[modules] Store the location of the lexical update record in a decl update as
an offset from the current record rather than as an absolute bit number. This
gives a minor .pcm file size reduction.
Modified:
cfe/trunk/lib/Serialization/ASTReaderDecl.cpp
cfe/trunk/lib/Serialization/ASTWriter.cpp
Modified: cfe/trunk/lib/Serialization/ASTReaderDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReaderDecl.cpp?rev=266269&r1=266268&r2=266269&view=diff
==============================================================================
--- cfe/trunk/lib/Serialization/ASTReaderDecl.cpp (original)
+++ cfe/trunk/lib/Serialization/ASTReaderDecl.cpp Wed Apr 13 19:50:18 2016
@@ -3767,7 +3767,7 @@ void ASTDeclReader::UpdateDecl(Decl *D,
ReadCXXRecordDefinition(RD, /*Update*/true);
// Visible update is handled separately.
- uint64_t LexicalOffset = Record[Idx++];
+ uint64_t LexicalOffset = ReadLocalOffset(Record, Idx);
if (!HadRealDefinition && LexicalOffset) {
Reader.ReadLexicalDeclContextStorage(ModuleFile, ModuleFile.DeclsCursor,
LexicalOffset, RD);
Modified: cfe/trunk/lib/Serialization/ASTWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=266269&r1=266268&r2=266269&view=diff
==============================================================================
--- cfe/trunk/lib/Serialization/ASTWriter.cpp (original)
+++ cfe/trunk/lib/Serialization/ASTWriter.cpp Wed Apr 13 19:50:18 2016
@@ -4661,8 +4661,7 @@ void ASTWriter::WriteDeclUpdatesBlocks(R
auto *RD = cast<CXXRecordDecl>(D);
UpdatedDeclContexts.insert(RD->getPrimaryContext());
Record.AddCXXDefinitionData(RD);
- // FIXME: Use AddOffset here.
- Record.push_back(WriteDeclContextLexicalBlock(
+ Record.AddOffset(WriteDeclContextLexicalBlock(
*Context, const_cast<CXXRecordDecl *>(RD)));
// This state is sometimes updated by template instantiation, when we
More information about the cfe-commits
mailing list