clang: clang::GlobalModuleIndex Class Reference (original) (raw)

A global index for a set of module files, providing information about the identifiers within those module files. More...

#include "[clang/Serialization/GlobalModuleIndex.h](GlobalModuleIndex%5F8h%5Fsource.html)"

Public Member Functions
~GlobalModuleIndex ()
IdentifierIterator * createIdentifierIterator () const
Returns an iterator for identifiers stored in the index table.
void getModuleDependencies (ModuleFile *File, llvm::SmallVectorImpl< ModuleFile * > &Dependencies)
Retrieve the set of module files on which the given module file directly depends.
bool lookupIdentifier (llvm::StringRef Name, HitSet &Hits)
Look for all of the module files with information about the given identifier, e.g., a global function, variable, or type with that name.
bool loadedModuleFile (ModuleFile *File)
Note that the given module file has been loaded.
void printStats ()
Print statistics to standard error.
void dump ()
Print debugging view to standard error.
Static Public Member Functions
static std::pair< GlobalModuleIndex *, llvm::Error > readIndex (llvm::StringRef Path)
Read a global index file for the given directory.
static llvm::Error writeIndex (FileManager &FileMgr, const PCHContainerReader &PCHContainerRdr, llvm::StringRef Path)
Write a global index into the given.

A global index for a set of module files, providing information about the identifiers within those module files.

The global index is an aid for name lookup into modules, offering a central place where one can look for identifiers determine which module files contain any information about that identifier. This allows the client to restrict the search to only those module files known to have a information about that identifier, improving performance. Moreover, the global module index may know about module files that have not been imported, and can be queried to determine which modules the current translation could or should load to fix a problem.

Definition at line 54 of file GlobalModuleIndex.h.

HitSet

GlobalModuleIndex::~GlobalModuleIndex ( )

createIdentifierIterator()

Returns an iterator for identifiers stored in the index table.

The caller accepts ownership of the returned object.

Definition at line 938 of file GlobalModuleIndex.cpp.

dump()

LLVM_DUMP_METHOD void GlobalModuleIndex::dump ( )

getModuleDependencies()

loadedModuleFile()

lookupIdentifier()

bool GlobalModuleIndex::lookupIdentifier ( llvm::StringRef Name,
HitSet & Hits
)

Look for all of the module files with information about the given identifier, e.g., a global function, variable, or type with that name.

Parameters

Name The identifier to look for.
Hits Will be populated with the set of module files that have information about this name.

Returns

true if the identifier is known to the index, false otherwise.

Definition at line 301 of file GlobalModuleIndex.cpp.

References clang::File.

Referenced by clang::CompilerInstance::lookupMissingImports().

printStats()

void GlobalModuleIndex::printStats ( )

readIndex()

std::pair< GlobalModuleIndex *, llvm::Error > GlobalModuleIndex::readIndex ( llvm::StringRef Path) static

Read a global index file for the given directory.

Parameters

Path The path to the specific module cache where the module files for the intended configuration reside.

Returns

A pair containing the global module index (if it exists) and the error.

The main bitstream cursor for the main block.

Definition at line 252 of file GlobalModuleIndex.cpp.

References clang::C, IndexFileName, and Path.

Referenced by clang::ASTReader::loadGlobalIndex().

writeIndex()


The documentation for this class was generated from the following files: