diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-18 00:32:02 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-18 00:32:02 +0000 |
commit | 37a93df3d589d2f590994e7978554ed299ee5a24 (patch) | |
tree | d1046abb93572cf42438ea9de21b76972839370a /clang/lib/Serialization/ModuleManager.cpp | |
parent | efc3fbf6a2015464d8f2773b7003f64190d17c31 (diff) | |
download | llvm-37a93df3d589d2f590994e7978554ed299ee5a24.zip llvm-37a93df3d589d2f590994e7978554ed299ee5a24.tar.gz llvm-37a93df3d589d2f590994e7978554ed299ee5a24.tar.bz2 |
[modules] Load the ModuleOffsetMap from the module header lazily.
If we never need to map any ID within the module to its global ID, we don't
need the module offset map. If a compilation transitively depends on lots of
unused module files, this can result in a modest performance improvement.
llvm-svn: 295517
Diffstat (limited to 'clang/lib/Serialization/ModuleManager.cpp')
-rw-r--r-- | clang/lib/Serialization/ModuleManager.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/Serialization/ModuleManager.cpp b/clang/lib/Serialization/ModuleManager.cpp index b7ee302..f0654fc 100644 --- a/clang/lib/Serialization/ModuleManager.cpp +++ b/clang/lib/Serialization/ModuleManager.cpp @@ -27,7 +27,7 @@ using namespace clang; using namespace serialization; -ModuleFile *ModuleManager::lookup(StringRef Name) { +ModuleFile *ModuleManager::lookup(StringRef Name) const { const FileEntry *Entry = FileMgr.getFile(Name, /*openFile=*/false, /*cacheFailure=*/false); if (Entry) @@ -36,9 +36,8 @@ ModuleFile *ModuleManager::lookup(StringRef Name) { return nullptr; } -ModuleFile *ModuleManager::lookup(const FileEntry *File) { - llvm::DenseMap<const FileEntry *, ModuleFile *>::iterator Known - = Modules.find(File); +ModuleFile *ModuleManager::lookup(const FileEntry *File) const { + auto Known = Modules.find(File); if (Known == Modules.end()) return nullptr; |