diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-04-18 22:44:46 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-04-18 22:44:46 +0000 |
commit | 1da29dd3f85f5e3f50365d8e75efb8cbfba84381 (patch) | |
tree | 1ea13ae21f45a3ec45459fbb54ae8d58b6a9fa51 | |
parent | 1fc7a24c25ff26046555f1527ea828374f128c17 (diff) | |
download | external_llvm-1da29dd3f85f5e3f50365d8e75efb8cbfba84381.zip external_llvm-1da29dd3f85f5e3f50365d8e75efb8cbfba84381.tar.gz external_llvm-1da29dd3f85f5e3f50365d8e75efb8cbfba84381.tar.bz2 |
Add BumpPtrAllocator::getTotalMemory() to allow clients to query how much memory a BumpPtrAllocator allocated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129727 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Support/Allocator.h | 3 | ||||
-rw-r--r-- | lib/Support/Allocator.cpp | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/llvm/Support/Allocator.h b/include/llvm/Support/Allocator.h index c680709..a2ad24f 100644 --- a/include/llvm/Support/Allocator.h +++ b/include/llvm/Support/Allocator.h @@ -177,6 +177,9 @@ public: unsigned GetNumSlabs() const; void PrintStats() const; + + /// Compute the total physical memory allocated by this allocator. + size_t getTotalMemory() const; }; /// SpecificBumpPtrAllocator - Same as BumpPtrAllocator but allows only diff --git a/lib/Support/Allocator.cpp b/lib/Support/Allocator.cpp index 5e27df6..215b0f2 100644 --- a/lib/Support/Allocator.cpp +++ b/lib/Support/Allocator.cpp @@ -136,6 +136,14 @@ unsigned BumpPtrAllocator::GetNumSlabs() const { return NumSlabs; } +size_t BumpPtrAllocator::getTotalMemory() const { + size_t TotalMemory = 0; + for (MemSlab *Slab = CurSlab; Slab != 0; Slab = Slab->NextPtr) { + TotalMemory += Slab->Size; + } + return TotalMemory; +} + void BumpPtrAllocator::PrintStats() const { unsigned NumSlabs = 0; size_t TotalMemory = 0; |