diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-01-06 16:59:53 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-01-06 16:59:53 +0000 |
commit | 781f713deb542cd35080233ac6d3e86a28969788 (patch) | |
tree | 9952b0a56523bc480f67a874518a2eea6aca5266 /clang/lib/Serialization | |
parent | a8105bc9cecb5936a4674f68ebf0e50669f41e0d (diff) | |
download | bcm5719-llvm-781f713deb542cd35080233ac6d3e86a28969788.tar.gz bcm5719-llvm-781f713deb542cd35080233ac6d3e86a28969788.zip |
Stash Decl's TopLevelDeclInObjCContainer and ModulePrivate bits
into the two unused lower bits of the NextDeclInContext link, dropping
the number of bits in Decl down to 32, and saving 8 bytes per
declaration on x86-64.
llvm-svn: 147660
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r-- | clang/lib/Serialization/ASTReaderDecl.cpp | 8 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriterDecl.cpp | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp index 6a88313f743..51a275ad070 100644 --- a/clang/lib/Serialization/ASTReaderDecl.cpp +++ b/clang/lib/Serialization/ASTReaderDecl.cpp @@ -360,17 +360,17 @@ void ASTDeclReader::VisitDecl(Decl *D) { D->setImplicit(Record[Idx++]); D->setUsed(Record[Idx++]); D->setReferenced(Record[Idx++]); - D->TopLevelDeclInObjCContainer = Record[Idx++]; + D->setTopLevelDeclInObjCContainer(Record[Idx++]); D->setAccess((AccessSpecifier)Record[Idx++]); D->FromASTFile = true; - D->ModulePrivate = Record[Idx++]; - D->Hidden = D->ModulePrivate; + D->setModulePrivate(Record[Idx++]); + D->Hidden = D->isModulePrivate(); // Determine whether this declaration is part of a (sub)module. If so, it // may not yet be visible. if (unsigned SubmoduleID = readSubmoduleID(Record, Idx)) { // Module-private declarations are never visible, so there is no work to do. - if (!D->ModulePrivate) { + if (!D->isModulePrivate()) { if (Module *Owner = Reader.getSubmodule(SubmoduleID)) { if (Owner->NameVisibility != Module::AllVisible) { // The owning module is not visible. Mark this declaration as hidden. diff --git a/clang/lib/Serialization/ASTWriterDecl.cpp b/clang/lib/Serialization/ASTWriterDecl.cpp index 19d8372a91f..7ff1d5aab06 100644 --- a/clang/lib/Serialization/ASTWriterDecl.cpp +++ b/clang/lib/Serialization/ASTWriterDecl.cpp @@ -154,9 +154,9 @@ void ASTDeclWriter::VisitDecl(Decl *D) { Record.push_back(D->isImplicit()); Record.push_back(D->isUsed(false)); Record.push_back(D->isReferenced()); - Record.push_back(D->TopLevelDeclInObjCContainer); + Record.push_back(D->isTopLevelDeclInObjCContainer()); Record.push_back(D->getAccess()); - Record.push_back(D->ModulePrivate); + Record.push_back(D->isModulePrivate()); Record.push_back(Writer.inferSubmoduleIDFromLocation(D->getLocation())); } |