13 #ifndef LLVM_CLANG_LIB_SERIALIZATION_ASTREADERINTERNALS_H
14 #define LLVM_CLANG_LIB_SERIALIZATION_ASTREADERINTERNALS_H
18 #include "llvm/Support/Endian.h"
19 #include "llvm/Support/OnDiskHashTable.h"
26 struct HeaderFileInfo;
29 namespace serialization {
47 typedef std::pair<LE32DeclID *, LE32DeclID *>
data_type;
64 : Reader(Reader), F(F) { }
74 static std::pair<unsigned, unsigned>
105 static std::pair<unsigned, unsigned>
134 : Reader(Reader), F(F), KnownII(II) { }
137 const unsigned char* d,
171 : Reader(Reader), F(F) { }
183 static std::pair<unsigned, unsigned>
207 const char *FrameworkStrings;
225 const char *FrameworkStrings)
226 : Reader(Reader), M(M), HS(HS), FrameworkStrings(FrameworkStrings) { }
232 static std::pair<unsigned, unsigned>
235 static internal_key_type
ReadKey(
const unsigned char *d,
unsigned);
std::pair< LE32DeclID *, LE32DeclID * > data_type
Smart pointer class that efficiently represents Objective-C method names.
static hash_value_type ComputeHash(Selector Sel)
data_type ReadData(internal_key_type, const unsigned char *d, unsigned DataLen)
NameKind
NameKind - The kind of name this object contains.
DeclNameKey internal_key_type
static bool EqualKey(const internal_key_type &a, const internal_key_type &b)
static std::pair< unsigned, unsigned > ReadKeyDataLength(const unsigned char *&d)
StringRef external_key_type
Class that performs name lookup into a DeclContext stored in an AST file.
static hash_value_type ComputeHash(const DeclNameKey &Key)
SmallVector< ObjCMethodDecl *, 2 > Instance
ASTReader & getReader() const
data_type ReadData(Selector, const unsigned char *d, unsigned DataLen)
static const external_key_type & GetExternalKey(const internal_key_type &x)
static const internal_key_type & GetInternalKey(const external_key_type &x)
DeclarationName::NameKind Kind
StringRef internal_key_type
internal_key_type ReadKey(const unsigned char *d, unsigned)
IdentifierInfo * data_type
static internal_key_type ReadKey(const unsigned char *d, unsigned n)
DeclarationName external_key_type
Selector external_key_type
llvm::support::ulittle32_t LE32DeclID
Pair of begin/end iterators for DeclIDs.
Base class for the trait describing the on-disk hash table for the identifiers in an AST file...
Information about a module that has been loaded by the ASTReader.
ASTDeclContextNameLookupTrait(ASTReader &Reader, ModuleFile &F)
SmallVector< ObjCMethodDecl *, 2 > Factory
static bool EqualKey(const internal_key_type &a, const internal_key_type &b)
Special internal key for declaration names. The hash table creates keys for comparison; we do not cre...
static bool EqualKey(const internal_key_type &a, const internal_key_type &b)
Cached information about one file (either on disk or in the virtual file system). ...
Class that performs lookup for a selector's entries in the global method pool stored in an AST file...
Reads an AST files chain containing the contents of a translation unit.
Class that performs lookup for an identifier stored in an AST file.
static std::pair< unsigned, unsigned > ReadKeyDataLength(const unsigned char *&d)
llvm::OnDiskChainedHashTable< HeaderFileInfoTrait > HeaderFileInfoLookupTable
The on-disk hash table used for known header files.
bool InstanceHasMoreThanOneDecl
bool FactoryHasMoreThanOneDecl
static std::pair< unsigned, unsigned > ReadKeyDataLength(const unsigned char *&d)
ASTSelectorLookupTrait(ASTReader &Reader, ModuleFile &F)
uint32_t SelectorID
An ID number that refers to an ObjC selector in an AST file.
static internal_key_type GetInternalKey(const external_key_type &Name)
llvm::OnDiskChainedHashTable< ASTSelectorLookupTrait > ASTSelectorLookupTable
The on-disk hash table used for the global method pool.
static hash_value_type ComputeHash(const internal_key_type &a)
external_key_type internal_key_type
data_type ReadData(const internal_key_type &k, const unsigned char *d, unsigned DataLen)
ASTIdentifierLookupTrait(ASTReader &Reader, ModuleFile &F, IdentifierInfo *II=nullptr)
internal_key_type ReadKey(const unsigned char *d, unsigned)
static const internal_key_type & GetInternalKey(const external_key_type &x)
llvm::OnDiskIterableChainedHashTable< ASTIdentifierLookupTrait > ASTIdentifierLookupTable
The on-disk hash table used to contain information about all of the identifiers in the program...