[PATCH] D41495: [clangd] Skip function bodies when building the preamble
Phabricator via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 28 05:11:27 PST 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL321521: [clangd] Skip function bodies when building the preamble (authored by ibiryukov, committed by ).
Repository:
rL LLVM
https://reviews.llvm.org/D41495
Files:
clang-tools-extra/trunk/clangd/ClangdUnit.cpp
Index: clang-tools-extra/trunk/clangd/ClangdUnit.cpp
===================================================================
--- clang-tools-extra/trunk/clangd/ClangdUnit.cpp
+++ clang-tools-extra/trunk/clangd/ClangdUnit.cpp
@@ -529,12 +529,22 @@
IntrusiveRefCntPtr<DiagnosticsEngine> PreambleDiagsEngine =
CompilerInstance::createDiagnostics(
&CI->getDiagnosticOpts(), &PreambleDiagnosticsConsumer, false);
+
+ // Skip function bodies when building the preamble to speed up building
+ // the preamble and make it smaller.
+ assert(!CI->getFrontendOpts().SkipFunctionBodies);
+ CI->getFrontendOpts().SkipFunctionBodies = true;
+
CppFilePreambleCallbacks SerializedDeclsCollector;
auto BuiltPreamble = PrecompiledPreamble::Build(
*CI, ContentsBuffer.get(), Bounds, *PreambleDiagsEngine, VFS, PCHs,
/*StoreInMemory=*/That->StorePreamblesInMemory,
SerializedDeclsCollector);
+ // When building the AST for the main file, we do want the function
+ // bodies.
+ CI->getFrontendOpts().SkipFunctionBodies = false;
+
if (BuiltPreamble) {
log(Ctx, "Built preamble of size " + Twine(BuiltPreamble->getSize()) +
" for file " + Twine(That->FileName));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41495.128292.patch
Type: text/x-patch
Size: 1291 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171228/09f7a17b/attachment-0001.bin>
More information about the cfe-commits
mailing list