[lldb][NFC] Replace ClangASTImporter's use of map/set with SmallPtrSet and DenseMap

We have several pointer->pointer mappings in the ClangASTImporter implemented using
STL data structures. This moves these variables to the appropriate LLVM data structures
that are intended for mapping pointers.
This commit is contained in:
Raphael Isemann 2019-12-16 08:16:56 +01:00
parent bc633a42dd
commit e2d47614a8
2 changed files with 8 additions and 10 deletions

View File

@ -182,7 +182,7 @@ public:
clang::Decl *decl;
};
typedef std::map<const clang::Decl *, DeclOrigin> OriginMap;
typedef llvm::DenseMap<const clang::Decl *, DeclOrigin> OriginMap;
/// Listener interface used by the ASTImporterDelegate to inform other code
/// about decls that have been imported the first time.
@ -262,7 +262,7 @@ public:
/// ASTContext. Used by the CxxModuleHandler to mark declarations that
/// were created from the 'std' C++ module to prevent that the Importer
/// tries to sync them with the broken equivalent in the debug info AST.
std::set<clang::Decl *> m_decls_to_ignore;
llvm::SmallPtrSet<clang::Decl *, 16> m_decls_to_ignore;
ClangASTImporter &m_master;
clang::ASTContext *m_source_ctx;
CxxModuleHandler *m_std_handler = nullptr;
@ -271,8 +271,8 @@ public:
};
typedef std::shared_ptr<ASTImporterDelegate> ImporterDelegateSP;
typedef std::map<clang::ASTContext *, ImporterDelegateSP> DelegateMap;
typedef std::map<const clang::NamespaceDecl *, NamespaceMapSP>
typedef llvm::DenseMap<clang::ASTContext *, ImporterDelegateSP> DelegateMap;
typedef llvm::DenseMap<const clang::NamespaceDecl *, NamespaceMapSP>
NamespaceMetaMap;
struct ASTContextMetadata {
@ -289,7 +289,7 @@ public:
};
typedef std::shared_ptr<ASTContextMetadata> ASTContextMetadataSP;
typedef std::map<const clang::ASTContext *, ASTContextMetadataSP>
typedef llvm::DenseMap<const clang::ASTContext *, ASTContextMetadataSP>
ContextMetadataMap;
ContextMetadataMap m_metadata_map;

View File

@ -121,7 +121,7 @@ private:
clang::DeclContext *lexical_decl_context;
};
std::map<clang::Decl *, Backup> m_backups;
llvm::DenseMap<clang::Decl *, Backup> m_backups;
void OverrideOne(clang::Decl *decl) {
if (m_backups.find(decl) != m_backups.end()) {
@ -228,10 +228,8 @@ namespace {
/// imported while completing the original Decls).
class CompleteTagDeclsScope : public ClangASTImporter::NewDeclListener {
ClangASTImporter::ImporterDelegateSP m_delegate;
// FIXME: Investigate how many decls we usually have in these sets and
// see if we can use SmallPtrSet instead here.
std::set<NamedDecl *> m_decls_to_complete;
std::set<NamedDecl *> m_decls_already_completed;
llvm::SmallPtrSet<NamedDecl *, 32> m_decls_to_complete;
llvm::SmallPtrSet<NamedDecl *, 32> m_decls_already_completed;
clang::ASTContext *m_dst_ctx;
clang::ASTContext *m_src_ctx;
ClangASTImporter &importer;