aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Serialization/ModuleManager.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2012-01-18 20:56:22 +0000
committerDouglas Gregor <dgregor@apple.com>2012-01-18 20:56:22 +0000
commit057df20b3107cef764052d271c89b8591b98b3ce (patch)
tree656d5b6add01e885f09487b746d302e7794f7a9b /include/clang/Serialization/ModuleManager.h
parentc2a8d6cee01fc4845f5409bf5c021a64616ac8c3 (diff)
Optimize unqualified/global name lookup in modules by introducing a
generational scheme for identifiers that avoids searching the hash tables of a given module more than once for a given identifier. Previously, loading any new module invalidated all of the previous lookup results for all identifiers, causing us to perform the lookups repeatedly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148412 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Serialization/ModuleManager.h')
-rw-r--r--include/clang/Serialization/ModuleManager.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/clang/Serialization/ModuleManager.h b/include/clang/Serialization/ModuleManager.h
index ac9483894d..6ff0640b64 100644
--- a/include/clang/Serialization/ModuleManager.h
+++ b/include/clang/Serialization/ModuleManager.h
@@ -95,6 +95,8 @@ public:
/// \param ImportedBy The module that is importing this module, or NULL if
/// this module is imported directly by the user.
///
+ /// \param Generation The generation in which this module was loaded.
+ ///
/// \param ErrorStr Will be set to a non-empty string if any errors occurred
/// while trying to load the module.
///
@@ -102,7 +104,7 @@ public:
/// and a boolean indicating whether the module was newly added.
std::pair<ModuleFile *, bool>
addModule(StringRef FileName, ModuleKind Type, ModuleFile *ImportedBy,
- std::string &ErrorStr);
+ unsigned Generation, std::string &ErrorStr);
/// \brief Add an in-memory buffer the list of known buffers
void addInMemoryBuffer(StringRef FileName, llvm::MemoryBuffer *Buffer);