зеркало из https://github.com/microsoft/clang-1.git
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:
Родитель
00852e4126
Коммит
a126651270
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче