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 };