From 5c0d3d66bf06213009802876a14e6298efc1e0b0 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Tue, 9 Aug 2011 16:24:26 +0000 Subject: [PATCH] Don't serialize the block descriptor or block extended descriptor types to AST files; they're only used by debug info generation anyway, and shouldn't ever exist in the AST anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137122 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/ASTContext.h | 25 ++++++----------------- include/clang/Serialization/ASTBitCodes.h | 8 ++------ lib/AST/ASTContext.cpp | 12 ----------- lib/Serialization/ASTReader.cpp | 5 ----- lib/Serialization/ASTWriter.cpp | 2 -- 5 files changed, 8 insertions(+), 44 deletions(-) diff --git a/include/clang/AST/ASTContext.h b/include/clang/AST/ASTContext.h index 025bb41242..882e0a6aa8 100644 --- a/include/clang/AST/ASTContext.h +++ b/include/clang/AST/ASTContext.h @@ -210,9 +210,15 @@ class ASTContext : public llvm::RefCountedBase { TypeDecl *sigjmp_bufDecl; /// \brief Type for the Block descriptor for Blocks CodeGen. + /// + /// Since this is only used for generation of debug info, it is not + /// serialized. mutable RecordDecl *BlockDescriptorType; /// \brief Type for the Block descriptor for Blocks CodeGen. + /// + /// Since this is only used for generation of debug info, it is not + /// serialized. mutable RecordDecl *BlockDescriptorExtendedType; /// \brief Declaration for the CUDA cudaConfigureCall function. @@ -565,29 +571,10 @@ public: /// blocks. QualType getBlockDescriptorType() const; - // Set the type for a Block descriptor type. - void setBlockDescriptorType(QualType T); - /// Get the BlockDescriptorType type, or NULL if it hasn't yet been built. - QualType getRawBlockdescriptorType() { - if (BlockDescriptorType) - return getTagDeclType(BlockDescriptorType); - return QualType(); - } - /// This gets the struct used to keep track of the extended descriptor for /// pointer to blocks. QualType getBlockDescriptorExtendedType() const; - // Set the type for a Block descriptor extended type. - void setBlockDescriptorExtendedType(QualType T); - /// Get the BlockDescriptorExtendedType type, or NULL if it hasn't yet been - /// built. - QualType getRawBlockdescriptorExtendedType() const { - if (BlockDescriptorExtendedType) - return getTagDeclType(BlockDescriptorExtendedType); - return QualType(); - } - void setcudaConfigureCallDecl(FunctionDecl *FD) { cudaConfigureCallDecl = FD; } diff --git a/include/clang/Serialization/ASTBitCodes.h b/include/clang/Serialization/ASTBitCodes.h index aa1d9b99bf..b6c5a24254 100644 --- a/include/clang/Serialization/ASTBitCodes.h +++ b/include/clang/Serialization/ASTBitCodes.h @@ -662,14 +662,10 @@ namespace clang { SPECIAL_TYPE_OBJC_ID_REDEFINITION = 10, /// \brief Objective-C "Class" redefinition type SPECIAL_TYPE_OBJC_CLASS_REDEFINITION = 11, - /// \brief Block descriptor type for Blocks CodeGen - SPECIAL_TYPE_BLOCK_DESCRIPTOR = 12, - /// \brief Block extedned descriptor type for Blocks CodeGen - SPECIAL_TYPE_BLOCK_EXTENDED_DESCRIPTOR = 13, /// \brief Objective-C "SEL" redefinition type - SPECIAL_TYPE_OBJC_SEL_REDEFINITION = 14, + SPECIAL_TYPE_OBJC_SEL_REDEFINITION = 12, /// \brief Whether __[u]int128_t identifier is installed. - SPECIAL_TYPE_INT128_INSTALLED = 15 + SPECIAL_TYPE_INT128_INSTALLED = 13 }; /// \brief Predefined declaration IDs. diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 3f8cf37a68..b3fab6f0e3 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -3712,12 +3712,6 @@ QualType ASTContext::getBlockDescriptorType() const { return getTagDeclType(BlockDescriptorType); } -void ASTContext::setBlockDescriptorType(QualType T) { - const RecordType *Rec = T->getAs(); - assert(Rec && "Invalid BlockDescriptorType"); - BlockDescriptorType = Rec->getDecl(); -} - QualType ASTContext::getBlockDescriptorExtendedType() const { if (BlockDescriptorExtendedType) return getTagDeclType(BlockDescriptorExtendedType); @@ -3761,12 +3755,6 @@ QualType ASTContext::getBlockDescriptorExtendedType() const { return getTagDeclType(BlockDescriptorExtendedType); } -void ASTContext::setBlockDescriptorExtendedType(QualType T) { - const RecordType *Rec = T->getAs(); - assert(Rec && "Invalid BlockDescriptorType"); - BlockDescriptorExtendedType = Rec->getDecl(); -} - bool ASTContext::BlockRequiresCopying(QualType Ty) const { if (Ty->isObjCRetainableType()) return true; diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index d5cb6a6ced..9ca5211d9f 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -3033,11 +3033,6 @@ void ASTReader::InitializeContext(ASTContext &Ctx) { if (unsigned ObjCClassRedef = SpecialTypes[SPECIAL_TYPE_OBJC_CLASS_REDEFINITION]) Context->ObjCClassRedefinitionType = GetType(ObjCClassRedef); - if (unsigned String = SpecialTypes[SPECIAL_TYPE_BLOCK_DESCRIPTOR]) - Context->setBlockDescriptorType(GetType(String)); - if (unsigned String - = SpecialTypes[SPECIAL_TYPE_BLOCK_EXTENDED_DESCRIPTOR]) - Context->setBlockDescriptorExtendedType(GetType(String)); if (unsigned ObjCSelRedef = SpecialTypes[SPECIAL_TYPE_OBJC_SEL_REDEFINITION]) Context->ObjCSelRedefinitionType = GetType(ObjCSelRedef); diff --git a/lib/Serialization/ASTWriter.cpp b/lib/Serialization/ASTWriter.cpp index 6cdd6cad60..1c4a5f63e7 100644 --- a/lib/Serialization/ASTWriter.cpp +++ b/lib/Serialization/ASTWriter.cpp @@ -2940,8 +2940,6 @@ void ASTWriter::WriteASTCore(Sema &SemaRef, MemorizeStatCalls *StatCalls, AddTypeRef(Context.getsigjmp_bufType(), SpecialTypes); AddTypeRef(Context.ObjCIdRedefinitionType, SpecialTypes); AddTypeRef(Context.ObjCClassRedefinitionType, SpecialTypes); - AddTypeRef(Context.getRawBlockdescriptorType(), SpecialTypes); - AddTypeRef(Context.getRawBlockdescriptorExtendedType(), SpecialTypes); AddTypeRef(Context.ObjCSelRedefinitionType, SpecialTypes); SpecialTypes.push_back(Context.isInt128Installed()); -- 2.40.0