Report memory usage for global code completion results in CXTUMemoryUsage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129733 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 2ac57bf..0d0f08f 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -5202,6 +5202,8 @@
break;
case CXTUMemoryUsage_Selectors:
str = "ASTContext: selectors";
+ case CXTUMemoryUsage_GlobalCompletionResults:
+ str = "Code completion: cached global results";
}
return str;
}
@@ -5228,6 +5230,16 @@
createCXTUMemoryUsageEntry(*entries, CXTUMemoryUsage_Selectors,
(unsigned long) astContext.Selectors.getTotalMemory());
+ // How much memory is used for caching global code completion results?
+ unsigned long completionBytes = 0;
+ if (GlobalCodeCompletionAllocator *completionAllocator =
+ astUnit->getCachedCompletionAllocator().getPtr()) {
+ completionBytes = completionAllocator-> getTotalMemory();
+ }
+ createCXTUMemoryUsageEntry(*entries, CXTUMemoryUsage_GlobalCompletionResults,
+ completionBytes);
+
+
CXTUMemoryUsage usage = { (void*) entries.get(),
(unsigned) entries->size(),
entries->size() ? &(*entries)[0] : 0 };