Eliminate the first->last redeclaration map from the AST file

format. It's no longer being used, now that we have a new
implementation of redeclaration chains.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146905 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Douglas Gregor 2011-12-19 21:09:25 +00:00
Родитель 00852e4126
Коммит a126651270
4 изменённых файлов: 12 добавлений и 43 удалений

Просмотреть файл

@ -367,9 +367,9 @@ namespace clang {
/// declarations.
TU_UPDATE_LEXICAL = 28,
/// \brief Record code for an update to first decls pointing to the
/// latest redeclarations.
REDECLS_UPDATE_LATEST = 29,
/// \brief Record code for the array describing the first/last local
/// redeclarations of each entity.
LOCAL_REDECLARATIONS = 29,
/// \brief Record code for declarations that Sema keeps references of.
SEMA_DECL_REFS = 30,
@ -445,18 +445,14 @@ namespace clang {
/// \brief Record code for ObjC categories in a module that are chained to
/// an interface.
OBJC_CHAINED_CATEGORIES,
OBJC_CHAINED_CATEGORIES = 49,
/// \brief Record code for a file sorted array of DeclIDs in a module.
FILE_SORTED_DECLS,
FILE_SORTED_DECLS = 50,
/// \brief Record code for an array of all of the (sub)modules that were
/// imported by the AST file.
IMPORTED_MODULES,
/// \brief Record code for the array describing the first/last local
/// redeclarations of each entity.
LOCAL_REDECLARATIONS
IMPORTED_MODULES = 51
};
/// \brief Record types used within a source manager block.

Просмотреть файл

@ -333,12 +333,6 @@ private:
/// declarations that have not yet been linked to their definitions.
llvm::SmallPtrSet<Decl *, 4> PendingDefinitions;
typedef llvm::DenseMap<serialization::DeclID, serialization::DeclID>
FirstLatestDeclIDMap;
/// \brief Map of first declarations from a chained PCH that point to the
/// most recent declarations in another AST file.
FirstLatestDeclIDMap FirstLatestDeclIDs;
/// \brief Set of ObjC interfaces that have categories chained to them in
/// other modules.
llvm::DenseSet<serialization::GlobalDeclID> ObjCChainedCategoriesInterfaces;

Просмотреть файл

@ -1882,16 +1882,6 @@ ASTReader::ReadASTBlock(ModuleFile &F) {
break;
}
case REDECLS_UPDATE_LATEST: {
assert(Record.size() % 2 == 0 && "Expected pairs of DeclIDs");
for (unsigned i = 0, e = Record.size(); i < e; /* in loop */) {
DeclID First = ReadDeclID(F, Record, i);
DeclID Latest = ReadDeclID(F, Record, i);
FirstLatestDeclIDs[First] = Latest;
}
break;
}
case LANGUAGE_OPTIONS:
if (ParseLanguageOptions(Record) && !DisableValidation)
return IgnorePCH;

Просмотреть файл

@ -778,7 +778,7 @@ void ASTWriter::WriteBlockInfoBlock() {
RECORD(IMPORTS);
RECORD(REFERENCED_SELECTOR_POOL);
RECORD(TU_UPDATE_LEXICAL);
RECORD(REDECLS_UPDATE_LATEST);
RECORD(LOCAL_REDECLARATIONS);
RECORD(SEMA_DECL_REFS);
RECORD(WEAK_UNDECLARED_IDENTIFIERS);
RECORD(PENDING_IMPLICIT_INSTANTIATIONS);
@ -798,7 +798,9 @@ void ASTWriter::WriteBlockInfoBlock() {
RECORD(KNOWN_NAMESPACES);
RECORD(MODULE_OFFSET_MAP);
RECORD(SOURCE_MANAGER_LINE_TABLE);
RECORD(LOCAL_REDECLARATIONS);
RECORD(OBJC_CHAINED_CATEGORIES);
RECORD(FILE_SORTED_DECLS);
RECORD(IMPORTED_MODULES);
// SourceManager Block.
BLOCK(SOURCE_MANAGER_BLOCK);
@ -3313,19 +3315,6 @@ void ASTWriter::WriteASTCore(Sema &SemaRef, MemorizeStatCalls *StatCalls,
Stream.EmitRecord(SPECIAL_TYPES, SpecialTypes);
/// Build a record containing first declarations from a chained PCH and the
/// most recent declarations in this AST that they point to.
RecordData FirstLatestDeclIDs;
for (FirstLatestDeclMap::iterator I = FirstLatestDecls.begin(),
E = FirstLatestDecls.end();
I != E; ++I) {
AddDeclRef(I->first, FirstLatestDeclIDs);
AddDeclRef(I->second, FirstLatestDeclIDs);
}
if (!FirstLatestDeclIDs.empty())
Stream.EmitRecord(REDECLS_UPDATE_LATEST, FirstLatestDeclIDs);
// Write the record containing external, unnamed definitions.
if (!ExternalDefinitions.empty())
Stream.EmitRecord(EXTERNAL_DEFINITIONS, ExternalDefinitions);