16 #ifndef LLVM_CLANG_SERIALIZATION_GLOBALMODULEINDEX_H 17 #define LLVM_CLANG_SERIALIZATION_GLOBALMODULEINDEX_H 19 #include "llvm/ADT/DenseMap.h" 20 #include "llvm/ADT/SmallPtrSet.h" 21 #include "llvm/ADT/SmallVector.h" 22 #include "llvm/ADT/StringMap.h" 23 #include "llvm/ADT/StringRef.h" 28 class BitstreamCursor;
37 class IdentifierIterator;
38 class PCHContainerOperations;
39 class PCHContainerReader;
41 namespace serialization {
47 using llvm::StringRef;
48 using serialization::ModuleFile;
64 std::unique_ptr<llvm::MemoryBuffer> Buffer;
71 void *IdentifierIndex;
75 ModuleInfo() : File(), Size(), ModTime() { }
104 llvm::DenseMap<ModuleFile *, unsigned> ModulesByFile;
110 llvm::StringMap<unsigned> UnresolvedModules;
113 unsigned NumIdentifierLookups;
117 unsigned NumIdentifierLookupHits;
121 llvm::BitstreamCursor
Cursor);
149 static std::pair<GlobalModuleIndex *, ErrorCode>
150 readIndex(StringRef Path);
169 typedef llvm::SmallPtrSet<ModuleFile *, 4>
HitSet;
180 bool lookupIdentifier(StringRef Name, HitSet &Hits);
Implements support for file system lookup, file system caching, and directory search management...
DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterat...
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)
ErrorCode
An error code returned when trying to read an index.
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.
Some other process is currently building the index; it is not available yet.