summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/Unix/Process.inc
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2015-02-19 07:27:14 +0000
committerDavide Italiano <davide@freebsd.org>2015-02-19 07:27:14 +0000
commitfaafae33fa5dc6d9dd767383b4b84bbe0472a717 (patch)
tree9c3d8990a1b9f9d323fa4556e6af1239a20aa095 /llvm/lib/Support/Unix/Process.inc
parent8f2085ed164015cace93f0de0c76d5c089ea4ef5 (diff)
downloadbcm5719-llvm-faafae33fa5dc6d9dd767383b4b84bbe0472a717.tar.gz
bcm5719-llvm-faafae33fa5dc6d9dd767383b4b84bbe0472a717.zip
[Support/Timer] Make GetMallocUsage() aware of jemalloc.
Differential Revision: D7657 Reviewed by: shankarke, majnemer llvm-svn: 229824
Diffstat (limited to 'llvm/lib/Support/Unix/Process.inc')
-rw-r--r--llvm/lib/Support/Unix/Process.inc10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Support/Unix/Process.inc b/llvm/lib/Support/Unix/Process.inc
index 6e143f0795e..f52ba191ac0 100644
--- a/llvm/lib/Support/Unix/Process.inc
+++ b/llvm/lib/Support/Unix/Process.inc
@@ -39,6 +39,9 @@
!defined(__OpenBSD__) && !defined(__Bitrig__)
#include <malloc.h>
#endif
+#if defined(HAVE_MALLCTL)
+#include <malloc_np.h>
+#endif
#ifdef HAVE_MALLOC_MALLOC_H
#include <malloc/malloc.h>
#endif
@@ -98,6 +101,13 @@ size_t Process::GetMallocUsage() {
malloc_statistics_t Stats;
malloc_zone_statistics(malloc_default_zone(), &Stats);
return Stats.size_in_use; // darwin
+#elif defined(HAVE_MALLCTL)
+ size_t alloc, sz;
+ sz = sizeof(size_t);
+ if (mallctl("stats.allocated", &alloc, &sz, NULL, 0) == 0)
+ return alloc;
+ else
+ return 0;
#elif defined(HAVE_SBRK)
// Note this is only an approximation and more closely resembles
// the value returned by mallinfo in the arena field.
OpenPOWER on IntegriCloud