clang 18.0.0git
|
A global index for a set of module files, providing information about the identifiers within those module files. More...
#include "clang/Serialization/GlobalModuleIndex.h"
Public Types | |
typedef llvm::SmallPtrSet< ModuleFile *, 4 > | HitSet |
A set of module files in which we found a result. | |
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.
typedef llvm::SmallPtrSet<ModuleFile *, 4> clang::GlobalModuleIndex::HitSet |
A set of module files in which we found a result.
Definition at line 145 of file GlobalModuleIndex.h.
GlobalModuleIndex::~GlobalModuleIndex | ( | ) |
Definition at line 251 of file GlobalModuleIndex.cpp.
IdentifierIterator * GlobalModuleIndex::createIdentifierIterator | ( | ) | const |
Returns an iterator for identifiers stored in the index table.
The caller accepts ownership of the returned object.
Definition at line 947 of file GlobalModuleIndex.cpp.
LLVM_DUMP_METHOD void GlobalModuleIndex::dump | ( | ) |
Print debugging view to standard error.
Definition at line 368 of file GlobalModuleIndex.cpp.
void GlobalModuleIndex::getModuleDependencies | ( | ModuleFile * | File, |
llvm::SmallVectorImpl< ModuleFile * > & | Dependencies | ||
) |
Retrieve the set of module files on which the given module file directly depends.
Definition at line 287 of file GlobalModuleIndex.cpp.
References clang::File.
bool GlobalModuleIndex::loadedModuleFile | ( | ModuleFile * | File | ) |
Note that the given module file has been loaded.
Definition at line 331 of file GlobalModuleIndex.cpp.
References clang::File.
Referenced by clang::serialization::ModuleManager::moduleFileAccepted(), and clang::serialization::ModuleManager::setGlobalIndex().
Look for all of the module files with information about the given identifier, e.g., a global function, variable, or type with that name.
Name | The identifier to look for. |
Hits | Will be populated with the set of module files that have information about this name. |
Definition at line 305 of file GlobalModuleIndex.cpp.
References clang::File.
Referenced by clang::CompilerInstance::lookupMissingImports().
void GlobalModuleIndex::printStats | ( | ) |
Print statistics to standard error.
Definition at line 358 of file GlobalModuleIndex.cpp.
|
static |
Read a global index file for the given directory.
Path | The path to the specific module cache where the module files for the intended configuration reside. |
The main bitstream cursor for the main block.
Definition at line 256 of file GlobalModuleIndex.cpp.
References clang::C, and IndexFileName.
Referenced by clang::ASTReader::loadGlobalIndex().
|
static |
Write a global index into the given.
FileMgr | The file manager to use to load module files. |
PCHContainerRdr | - The PCHContainerOperations to use for loading and creating modules. |
Path | The path to the directory containing module files, into which the global index will be written. |
Definition at line 852 of file GlobalModuleIndex.cpp.
References clang::FileManager::getOptionalFileRef(), and IndexFileName.
Referenced by clang::FrontendAction::Execute(), and clang::CompilerInstance::loadGlobalModuleIndex().