15 #ifndef LLVM_CLANG_SERIALIZATION_GLOBALMODULEINDEX_H 16 #define LLVM_CLANG_SERIALIZATION_GLOBALMODULEINDEX_H 18 #include "llvm/ADT/DenseMap.h" 19 #include "llvm/ADT/SmallPtrSet.h" 20 #include "llvm/ADT/SmallVector.h" 21 #include "llvm/ADT/StringMap.h" 22 #include "llvm/ADT/StringRef.h" 23 #include "llvm/Support/Error.h" 28 class BitstreamCursor;
37 class IdentifierIterator;
38 class PCHContainerOperations;
39 class PCHContainerReader;
41 namespace serialization {
61 std::unique_ptr<llvm::MemoryBuffer> Buffer;
68 void *IdentifierIndex;
72 ModuleInfo() : File(), Size(), ModTime() { }
101 llvm::DenseMap<ModuleFile *, unsigned> ModulesByFile;
107 llvm::StringMap<unsigned> UnresolvedModules;
110 unsigned NumIdentifierLookups;
114 unsigned NumIdentifierLookupHits;
118 llvm::BitstreamCursor
Cursor);
133 static std::pair<GlobalModuleIndex *, llvm::Error>
134 readIndex(llvm::StringRef Path);
153 typedef llvm::SmallPtrSet<ModuleFile *, 4>
HitSet;
164 bool lookupIdentifier(llvm::StringRef Name, HitSet &Hits);
185 static llvm::Error writeIndex(
FileManager &FileMgr,
187 llvm::StringRef Path);
Implements support for file system lookup, file system caching, and directory search management...
Specialize PointerLikeTypeTraits to allow LazyGenerationalUpdatePtr to be placed into a PointerUnion...
llvm::SmallPtrSet< ModuleFile *, 4 > HitSet
A set of module files in which we found a result.
static void dump(llvm::raw_ostream &OS, StringRef FunctionName, ArrayRef< CounterExpression > Expressions, ArrayRef< CounterMappingRegion > Regions)
This abstract interface provides operations for unwrapping containers for serialized ASTs (precompile...
Information about a module that has been loaded by the ASTReader.
An iterator that walks over all of the known identifiers in the lookup table.
A global index for a set of module files, providing information about the identifiers within those mo...
Dataflow Directional Tag Classes.