]> granicus.if.org Git - clang/commit
<rdar://problem/13479539> Simplify ModuleManager/GlobalModuleIndex interaction to...
authorDouglas Gregor <dgregor@apple.com>
Fri, 22 Mar 2013 18:50:14 +0000 (18:50 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 22 Mar 2013 18:50:14 +0000 (18:50 +0000)
commitfa69fc19121da3fc5673ccc00d4e8afa5b540a4f
treec31c1dbf88a4ea5bc0615fe6e3c6930468b9b940
parentc02ddb23c0a27ff95859b3eacab134613b0b1d1d
<rdar://problem/13479539> Simplify ModuleManager/GlobalModuleIndex interaction to eliminate a pile of extraneous stats().

The refactoring in r177367 introduced a serious performance bug where
the "lazy" resolution of module file names in the global module index
to actual module file entries in the module manager would perform
repeated negative stats(). The new interaction requires the module
manager to inform the global module index when a module file has been
loaded, eliminating the extraneous stat()s and a bunch of bookkeeping
on both sides.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177750 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Serialization/GlobalModuleIndex.h
include/clang/Serialization/ModuleManager.h
lib/Serialization/ASTReader.cpp
lib/Serialization/GlobalModuleIndex.cpp
lib/Serialization/ModuleManager.cpp