From ee8f776386366b2fcab609acd3c51a0011f1ef33 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 18 Apr 2016 21:54:58 +0000 Subject: [PATCH] [modules] Remove some more unnecessary forwarding functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266687 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Serialization/ASTWriter.h | 45 +++------------- lib/Serialization/ASTWriter.cpp | 72 ++++++++++++------------- 2 files changed, 43 insertions(+), 74 deletions(-) diff --git a/include/clang/Serialization/ASTWriter.h b/include/clang/Serialization/ASTWriter.h index c1ec38c889..72af48c272 100644 --- a/include/clang/Serialization/ASTWriter.h +++ b/include/clang/Serialization/ASTWriter.h @@ -538,12 +538,6 @@ public: /// \brief Emit a reference to an identifier. void AddIdentifierRef(const IdentifierInfo *II, RecordDataImpl &Record); - /// \brief Emit a Selector (which is a smart pointer reference). - void AddSelectorRef(Selector, RecordDataImpl &Record); - - /// \brief Emit a CXXTemporary. - void AddCXXTemporary(const CXXTemporary *Temp, RecordDataImpl &Record); - /// \brief Get the unique number used to refer to the given selector. serialization::SelectorID getSelectorRef(Selector Sel); @@ -582,21 +576,8 @@ public: /// declaration. serialization::DeclID getDeclID(const Decl *D); - /// \brief Emit a declaration name. - void AddDeclarationName(DeclarationName Name, RecordDataImpl &Record); - unsigned getAnonymousDeclarationNumber(const NamedDecl *D); - /// \brief Emit a nested name specifier. - void AddNestedNameSpecifier(NestedNameSpecifier *NNS, RecordDataImpl &Record); - - /// \brief Emit a template parameter list. - void AddTemplateParameterList(const TemplateParameterList *TemplateParams, - RecordDataImpl &Record); - - /// \brief Emit a UnresolvedSet structure. - void AddUnresolvedSet(const ASTUnresolvedSet &Set, RecordDataImpl &Record); - /// \brief Add a string to the given record. void AddString(StringRef Str, RecordDataImpl &Record); @@ -663,6 +644,7 @@ public: bool hasChain() const { return Chain; } ASTReader *getChain() const { return Chain; } +private: // ASTDeserializationListener implementation void ReaderInitialized(ASTReader *Reader) override; void IdentifierRead(serialization::IdentID ID, IdentifierInfo *II) override; @@ -820,14 +802,10 @@ public: } /// \brief Emit a Selector (which is a smart pointer reference). - void AddSelectorRef(Selector S) { - return Writer->AddSelectorRef(S, *Record); - } + void AddSelectorRef(Selector S); /// \brief Emit a CXXTemporary. - void AddCXXTemporary(const CXXTemporary *Temp) { - return Writer->AddCXXTemporary(Temp, *Record); - } + void AddCXXTemporary(const CXXTemporary *Temp); /// \brief Emit a C++ base specifier. void AddCXXBaseSpecifier(const CXXBaseSpecifier &Base); @@ -862,9 +840,8 @@ public: return Writer->AddDeclRef(D, *Record); } - void AddDeclarationName(DeclarationName Name) { - return Writer->AddDeclarationName(Name, *Record); - } + /// \brief Emit a declaration name. + void AddDeclarationName(DeclarationName Name); void AddDeclarationNameLoc(const DeclarationNameLoc &DNLoc, DeclarationName Name); @@ -873,9 +850,7 @@ public: void AddQualifierInfo(const QualifierInfo &Info); /// \brief Emit a nested name specifier. - void AddNestedNameSpecifier(NestedNameSpecifier *NNS) { - return Writer->AddNestedNameSpecifier(NNS, *Record); - } + void AddNestedNameSpecifier(NestedNameSpecifier *NNS); /// \brief Emit a nested name specifier with source-location information. void AddNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS); @@ -887,17 +862,13 @@ public: void AddTemplateArgument(const TemplateArgument &Arg); /// \brief Emit a template parameter list. - void AddTemplateParameterList(const TemplateParameterList *TemplateParams) { - return Writer->AddTemplateParameterList(TemplateParams, *Record); - } + void AddTemplateParameterList(const TemplateParameterList *TemplateParams); /// \brief Emit a template argument list. void AddTemplateArgumentList(const TemplateArgumentList *TemplateArgs); /// \brief Emit a UnresolvedSet structure. - void AddUnresolvedSet(const ASTUnresolvedSet &Set) { - return Writer->AddUnresolvedSet(Set, *Record); - } + void AddUnresolvedSet(const ASTUnresolvedSet &Set); /// \brief Emit a CXXCtorInitializer array. void AddCXXCtorInitializers(ArrayRef CtorInits); diff --git a/lib/Serialization/ASTWriter.cpp b/lib/Serialization/ASTWriter.cpp index 5b5ecb177d..e99beb360d 100644 --- a/lib/Serialization/ASTWriter.cpp +++ b/lib/Serialization/ASTWriter.cpp @@ -3076,6 +3076,7 @@ void ASTWriter::WriteReferencedSelectorsPool(Sema &SemaRef) { return; RecordData Record; + ASTRecordWriter Writer(*this, Record); // Note: this writes out all references even for a dependent AST. But it is // very tricky to fix, and given that @selector shouldn't really appear in @@ -3083,10 +3084,10 @@ void ASTWriter::WriteReferencedSelectorsPool(Sema &SemaRef) { for (auto &SelectorAndLocation : SemaRef.ReferencedSelectors) { Selector Sel = SelectorAndLocation.first; SourceLocation Loc = SelectorAndLocation.second; - AddSelectorRef(Sel, Record); - AddSourceLocation(Loc, Record); + Writer.AddSelectorRef(Sel); + Writer.AddSourceLocation(Loc); } - Stream.EmitRecord(REFERENCED_SELECTOR_POOL, Record); + Writer.Emit(REFERENCED_SELECTOR_POOL); } //===----------------------------------------------------------------------===// @@ -4824,8 +4825,8 @@ uint64_t ASTWriter::getMacroDirectivesOffset(const IdentifierInfo *Name) { return IdentMacroDirectivesOffsetMap.lookup(Name); } -void ASTWriter::AddSelectorRef(const Selector SelRef, RecordDataImpl &Record) { - Record.push_back(getSelectorRef(SelRef)); +void ASTRecordWriter::AddSelectorRef(const Selector SelRef) { + Record->push_back(Writer->getSelectorRef(SelRef)); } SelectorID ASTWriter::getSelectorRef(Selector Sel) { @@ -4847,8 +4848,8 @@ SelectorID ASTWriter::getSelectorRef(Selector Sel) { return SID; } -void ASTWriter::AddCXXTemporary(const CXXTemporary *Temp, RecordDataImpl &Record) { - AddDeclRef(Temp->getDestructor(), Record); +void ASTRecordWriter::AddCXXTemporary(const CXXTemporary *Temp) { + AddDeclRef(Temp->getDestructor()); } void ASTRecordWriter::AddTemplateArgumentLocInfo( @@ -5039,32 +5040,32 @@ void ASTWriter::associateDeclWithFile(const Decl *D, DeclID ID) { Decls.insert(I, LocDecl); } -void ASTWriter::AddDeclarationName(DeclarationName Name, RecordDataImpl &Record) { +void ASTRecordWriter::AddDeclarationName(DeclarationName Name) { // FIXME: Emit a stable enum for NameKind. 0 = Identifier etc. - Record.push_back(Name.getNameKind()); + Record->push_back(Name.getNameKind()); switch (Name.getNameKind()) { case DeclarationName::Identifier: - AddIdentifierRef(Name.getAsIdentifierInfo(), Record); + AddIdentifierRef(Name.getAsIdentifierInfo()); break; case DeclarationName::ObjCZeroArgSelector: case DeclarationName::ObjCOneArgSelector: case DeclarationName::ObjCMultiArgSelector: - AddSelectorRef(Name.getObjCSelector(), Record); + AddSelectorRef(Name.getObjCSelector()); break; case DeclarationName::CXXConstructorName: case DeclarationName::CXXDestructorName: case DeclarationName::CXXConversionFunctionName: - AddTypeRef(Name.getCXXNameType(), Record); + AddTypeRef(Name.getCXXNameType()); break; case DeclarationName::CXXOperatorName: - Record.push_back(Name.getCXXOverloadedOperator()); + Record->push_back(Name.getCXXOverloadedOperator()); break; case DeclarationName::CXXLiteralOperatorName: - AddIdentifierRef(Name.getCXXLiteralIdentifier(), Record); + AddIdentifierRef(Name.getCXXLiteralIdentifier()); break; case DeclarationName::CXXUsingDirective: @@ -5138,8 +5139,7 @@ void ASTRecordWriter::AddQualifierInfo(const QualifierInfo &Info) { AddTemplateParameterList(Info.TemplParamLists[i]); } -void ASTWriter::AddNestedNameSpecifier(NestedNameSpecifier *NNS, - RecordDataImpl &Record) { +void ASTRecordWriter::AddNestedNameSpecifier(NestedNameSpecifier *NNS) { // Nested name specifiers usually aren't too long. I think that 8 would // typically accommodate the vast majority. SmallVector NestedNames; @@ -5150,28 +5150,28 @@ void ASTWriter::AddNestedNameSpecifier(NestedNameSpecifier *NNS, NNS = NNS->getPrefix(); } - Record.push_back(NestedNames.size()); + Record->push_back(NestedNames.size()); while(!NestedNames.empty()) { NNS = NestedNames.pop_back_val(); NestedNameSpecifier::SpecifierKind Kind = NNS->getKind(); - Record.push_back(Kind); + Record->push_back(Kind); switch (Kind) { case NestedNameSpecifier::Identifier: - AddIdentifierRef(NNS->getAsIdentifier(), Record); + AddIdentifierRef(NNS->getAsIdentifier()); break; case NestedNameSpecifier::Namespace: - AddDeclRef(NNS->getAsNamespace(), Record); + AddDeclRef(NNS->getAsNamespace()); break; case NestedNameSpecifier::NamespaceAlias: - AddDeclRef(NNS->getAsNamespaceAlias(), Record); + AddDeclRef(NNS->getAsNamespaceAlias()); break; case NestedNameSpecifier::TypeSpec: case NestedNameSpecifier::TypeSpecWithTemplate: - AddTypeRef(QualType(NNS->getAsType(), 0), Record); - Record.push_back(Kind == NestedNameSpecifier::TypeSpecWithTemplate); + AddTypeRef(QualType(NNS->getAsType(), 0)); + Record->push_back(Kind == NestedNameSpecifier::TypeSpecWithTemplate); break; case NestedNameSpecifier::Global: @@ -5179,7 +5179,7 @@ void ASTWriter::AddNestedNameSpecifier(NestedNameSpecifier *NNS, break; case NestedNameSpecifier::Super: - AddDeclRef(NNS->getAsRecordDecl(), Record); + AddDeclRef(NNS->getAsRecordDecl()); break; } } @@ -5331,16 +5331,15 @@ void ASTRecordWriter::AddTemplateArgument(const TemplateArgument &Arg) { } } -void -ASTWriter::AddTemplateParameterList(const TemplateParameterList *TemplateParams, - RecordDataImpl &Record) { +void ASTRecordWriter::AddTemplateParameterList( + const TemplateParameterList *TemplateParams) { assert(TemplateParams && "No TemplateParams!"); - AddSourceLocation(TemplateParams->getTemplateLoc(), Record); - AddSourceLocation(TemplateParams->getLAngleLoc(), Record); - AddSourceLocation(TemplateParams->getRAngleLoc(), Record); - Record.push_back(TemplateParams->size()); + AddSourceLocation(TemplateParams->getTemplateLoc()); + AddSourceLocation(TemplateParams->getLAngleLoc()); + AddSourceLocation(TemplateParams->getRAngleLoc()); + Record->push_back(TemplateParams->size()); for (const auto &P : *TemplateParams) - AddDeclRef(P, Record); + AddDeclRef(P); } /// \brief Emit a template argument list. @@ -5363,13 +5362,12 @@ void ASTRecordWriter::AddASTTemplateArgumentListInfo( AddTemplateArgumentLoc(TemplArgs[i]); } -void -ASTWriter::AddUnresolvedSet(const ASTUnresolvedSet &Set, RecordDataImpl &Record) { - Record.push_back(Set.size()); +void ASTRecordWriter::AddUnresolvedSet(const ASTUnresolvedSet &Set) { + Record->push_back(Set.size()); for (ASTUnresolvedSet::const_iterator I = Set.begin(), E = Set.end(); I != E; ++I) { - AddDeclRef(I.getDecl(), Record); - Record.push_back(I.getAccess()); + AddDeclRef(I.getDecl()); + Record->push_back(I.getAccess()); } } -- 2.40.0