diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-04-28 20:36:42 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-04-28 20:36:42 +0000 |
commit | f61b831d7f6a15676b07647f507de80324cb7056 (patch) | |
tree | 06bfdf98a2b587abac0d673384021cda06f40c7a /include/clang/Basic/SourceManager.h | |
parent | 4962153cd2e48a67b7834b9cf5c8c6327f2b385a (diff) |
Enhance clang_getCXTUResourceUsage() to report how much memory is used by SourceManager's memory buffers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130433 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/SourceManager.h')
-rw-r--r-- | include/clang/Basic/SourceManager.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h index 1907ed5cc6..c121bbb34f 100644 --- a/include/clang/Basic/SourceManager.h +++ b/include/clang/Basic/SourceManager.h @@ -21,11 +21,11 @@ #include "llvm/ADT/PointerUnion.h" #include "llvm/ADT/IntrusiveRefCntPtr.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/Support/MemoryBuffer.h" #include <vector> #include <cassert> namespace llvm { -class MemoryBuffer; class StringRef; } @@ -111,6 +111,10 @@ namespace SrcMgr { /// this ContentCache. This can be 0 if the MemBuffer was not actually /// instantiated. unsigned getSizeBytesMapped() const; + + /// Returns the kind of memory used to back the memory buffer for + /// this content cache. This is used for performance analysis. + llvm::MemoryBuffer::BufferKind getMemoryBufferKind() const; void setBuffer(const llvm::MemoryBuffer *B) { assert(!Buffer.getPointer() && "MemoryBuffer already set."); @@ -858,6 +862,18 @@ public: size_t getContentCacheSize() const { return ContentCacheAlloc.getTotalMemory(); } + + struct MemoryBufferSizes { + const size_t malloc_bytes; + const size_t mmap_bytes; + + MemoryBufferSizes(size_t malloc_bytes, size_t mmap_bytes) + : malloc_bytes(malloc_bytes), mmap_bytes(mmap_bytes) {} + }; + + /// Return the amount of memory used by memory buffers, breaking down + /// by heap-backed versus mmap'ed memory. + MemoryBufferSizes getMemoryBufferSizes() const; //===--------------------------------------------------------------------===// // Other miscellaneous methods. |