From a0f31a01f34dbde84b331cf49685c04cf02c8250 Mon Sep 17 00:00:00 2001 From: Manman Ren Date: Fri, 29 Apr 2016 19:04:05 +0000 Subject: Method Pool in modules: we make sure that if a module contains an entry for a selector, the entry should be complete, containing everything introduced by that module and all modules it imports. Before writing out the method pool of a module, we sync up the out of date selectors by pulling in methods for the selectors, from all modules it imports. In ReadMethodPool, after pulling in the method pool entry for module A, this lets us skip the modules that module A imports. rdar://problem/25900131 llvm-svn: 268091 --- clang/lib/Sema/MultiplexExternalSemaSource.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/lib/Sema/MultiplexExternalSemaSource.cpp') diff --git a/clang/lib/Sema/MultiplexExternalSemaSource.cpp b/clang/lib/Sema/MultiplexExternalSemaSource.cpp index 89eec24..eee4c00 100644 --- a/clang/lib/Sema/MultiplexExternalSemaSource.cpp +++ b/clang/lib/Sema/MultiplexExternalSemaSource.cpp @@ -197,6 +197,11 @@ void MultiplexExternalSemaSource::ReadMethodPool(Selector Sel) { Sources[i]->ReadMethodPool(Sel); } +void MultiplexExternalSemaSource::updateOutOfDateSelector(Selector Sel) { + for(size_t i = 0; i < Sources.size(); ++i) + Sources[i]->updateOutOfDateSelector(Sel); +} + void MultiplexExternalSemaSource::ReadKnownNamespaces( SmallVectorImpl &Namespaces){ for(size_t i = 0; i < Sources.size(); ++i) -- cgit v1.1