diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-11-15 23:00:34 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-11-15 23:00:34 +0000 |
commit | c65929299dcd4c67887d5fbc1a8061251bff0cb1 (patch) | |
tree | f2475bbaaeb551433e2a8b797dd4536a0bf26b9c /clang/lib/Frontend/ASTUnit.cpp | |
parent | 18fb1665bfcb033f01d69836abf99f393866a53c (diff) | |
download | bcm5719-llvm-c65929299dcd4c67887d5fbc1a8061251bff0cb1.tar.gz bcm5719-llvm-c65929299dcd4c67887d5fbc1a8061251bff0cb1.zip |
Tweak libclang's heuristics for building precompiled preambles and
caching global code-completion results. In particular, don't perform
either operation the first time we parse, but do both after the first
reparse.
llvm-svn: 119285
Diffstat (limited to 'clang/lib/Frontend/ASTUnit.cpp')
-rw-r--r-- | clang/lib/Frontend/ASTUnit.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index ff05f45b14d..5c7b770a355 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -326,7 +326,6 @@ void ASTUnit::CacheCodeCompletionResults() { // Make a note of the state when we performed this caching. NumTopLevelDeclsAtLastCompletionCache = top_level_size(); - CacheCodeCompletionCoolDown = 15; } void ASTUnit::ClearCachedCompletionResults() { @@ -824,12 +823,6 @@ bool ASTUnit::Parse(llvm::MemoryBuffer *OverrideMainBuffer) { } Invocation.reset(Clang.takeInvocation()); - - // If we were asked to cache code-completion results and don't have any - // results yet, do so now. - if (ShouldCacheCodeCompletionResults && CachedCompletionResults.empty()) - CacheCodeCompletionResults(); - return false; error: @@ -1350,7 +1343,7 @@ bool ASTUnit::LoadFromCompilerInvocation(bool PrecompilePreamble) { llvm::MemoryBuffer *OverrideMainBuffer = 0; if (PrecompilePreamble) { - PreambleRebuildCounter = 1; + PreambleRebuildCounter = 2; OverrideMainBuffer = getMainBufferWithPrecompiledPreamble(*Invocation); } @@ -1377,6 +1370,7 @@ ASTUnit *ASTUnit::LoadFromCompilerInvocation(CompilerInvocation *CI, AST->CaptureDiagnostics = CaptureDiagnostics; AST->CompleteTranslationUnit = CompleteTranslationUnit; AST->ShouldCacheCodeCompletionResults = CacheCodeCompletionResults; + AST->CacheCodeCompletionCoolDown = 1; AST->Invocation.reset(CI); return AST->LoadFromCompilerInvocation(PrecompilePreamble)? 0 : AST.take(); @@ -1481,6 +1475,7 @@ ASTUnit *ASTUnit::LoadFromCommandLine(const char **ArgBegin, AST->CaptureDiagnostics = CaptureDiagnostics; AST->CompleteTranslationUnit = CompleteTranslationUnit; AST->ShouldCacheCodeCompletionResults = CacheCodeCompletionResults; + AST->CacheCodeCompletionCoolDown = 1; AST->NumStoredDiagnosticsFromDriver = StoredDiagnostics.size(); AST->NumStoredDiagnosticsInPreamble = StoredDiagnostics.size(); AST->StoredDiagnostics.swap(StoredDiagnostics); |