[cfe-commits] r119285 - in /cfe/trunk: lib/Frontend/ASTUnit.cpp tools/c-index-test/c-index-test.c

Manuel Klimek via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 18 08:19:46 PST 2015


(now with the right list)

On Tue, Nov 16, 2010 at 12:03 AM Douglas Gregor <dgregor at apple.com> wrote:

> Author: dgregor
> Date: Mon Nov 15 17:00:34 2010
> New Revision: 119285
>
> URL: http://llvm.org/viewvc/llvm-project?rev=119285&view=rev
> Log:
> 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.
>

Do you remember the reason behind not building the preamble on the first
parse? For really large TUs having to parse 2 times before we get a
preamble is rather painful.

Cheers,
/Manuel


> Modified:
>     cfe/trunk/lib/Frontend/ASTUnit.cpp
>     cfe/trunk/tools/c-index-test/c-index-test.c
>
> Modified: cfe/trunk/lib/Frontend/ASTUnit.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=119285&r1=119284&r2=119285&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Frontend/ASTUnit.cpp (original)
> +++ cfe/trunk/lib/Frontend/ASTUnit.cpp Mon Nov 15 17:00:34 2010
> @@ -326,7 +326,6 @@
>
>    // Make a note of the state when we performed this caching.
>    NumTopLevelDeclsAtLastCompletionCache = top_level_size();
> -  CacheCodeCompletionCoolDown = 15;
>  }
>
>  void ASTUnit::ClearCachedCompletionResults() {
> @@ -824,12 +823,6 @@
>    }
>
>    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 @@
>
>    llvm::MemoryBuffer *OverrideMainBuffer = 0;
>    if (PrecompilePreamble) {
> -    PreambleRebuildCounter = 1;
> +    PreambleRebuildCounter = 2;
>      OverrideMainBuffer
>        = getMainBufferWithPrecompiledPreamble(*Invocation);
>    }
> @@ -1377,6 +1370,7 @@
>    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 @@
>    AST->CaptureDiagnostics = CaptureDiagnostics;
>    AST->CompleteTranslationUnit = CompleteTranslationUnit;
>    AST->ShouldCacheCodeCompletionResults = CacheCodeCompletionResults;
> +  AST->CacheCodeCompletionCoolDown = 1;
>    AST->NumStoredDiagnosticsFromDriver = StoredDiagnostics.size();
>    AST->NumStoredDiagnosticsInPreamble = StoredDiagnostics.size();
>    AST->StoredDiagnostics.swap(StoredDiagnostics);
>
> Modified: cfe/trunk/tools/c-index-test/c-index-test.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/c-index-test/c-index-test.c?rev=119285&r1=119284&r2=119285&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/c-index-test/c-index-test.c (original)
> +++ cfe/trunk/tools/c-index-test/c-index-test.c Mon Nov 15 17:00:34 2010
> @@ -1040,6 +1040,11 @@
>      fprintf(stderr, "Unable to load translation unit!\n");
>      return 1;
>    }
> +
> +  if (clang_reparseTranslationUnit(TU, 0, 0,
> clang_defaultReparseOptions(TU))) {
> +    fprintf(stderr, "Unable to reparse translation init!\n");
> +    return 1;
> +  }
>
>    for (I = 0; I != Repeats; ++I) {
>      results = clang_codeCompleteAt(TU, filename, line, column,
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151118/bc5f2361/attachment-0001.html>


More information about the cfe-commits mailing list