Changes in directory llvm/lib/System/Unix:
Process.inc updated: 1.11 -> 1.11.4.1 --- Log message: Merged mainline into Vector LLVM branch --- Diffs of the changes: (+16 -10) Process.inc | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 deletions(-) Index: llvm/lib/System/Unix/Process.inc diff -u llvm/lib/System/Unix/Process.inc:1.11 llvm/lib/System/Unix/Process.inc:1.11.4.1 --- llvm/lib/System/Unix/Process.inc:1.11 Thu May 5 17:33:06 2005 +++ llvm/lib/System/Unix/Process.inc Wed Nov 16 12:32:28 2005 @@ -21,6 +21,9 @@ #ifdef HAVE_MALLOC_H #include <malloc.h> #endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif //===----------------------------------------------------------------------===// //=== WARNING: Implementation here must contain only generic UNIX code that @@ -43,23 +46,22 @@ return static_cast<unsigned>(page_size); } -#if defined(HAVE_SBRK) -static char* som = reinterpret_cast<char*>(::sbrk(0)); -#endif - -size_t -Process::GetMallocUsage() -{ +size_t Process::GetMallocUsage() { #if defined(HAVE_MALLINFO) struct mallinfo mi; mi = ::mallinfo(); return mi.uordblks; +#elif defined(HAVE_MALLOC_ZONE_STATISTICS) && defined(HAVE_MALLOC_MALLOC_H) + malloc_statistics_t Stats; + malloc_zone_statistics(malloc_default_zone(), &Stats); + return Stats.size_in_use; // darwin #elif defined(HAVE_SBRK) // Note this is only an approximation and more closely resembles // the value returned by mallinfo in the arena field. - char * eom = (char*) sbrk(0); - if (eom != ((char*)-1) && som != ((char*)-1)) - return eom - som; + static char *StartOfMemory = reinterpret_cast<char*>(::sbrk(0)); + char *EndOfMemory = (char*)sbrk(0); + if (EndOfMemory != ((char*)-1) && StartOfMemory != ((char*)-1)) + return EndOfMemory - StartOfMemory; else return 0; #else @@ -74,6 +76,10 @@ #if defined(HAVE_MALLINFO) struct mallinfo mi = ::mallinfo(); return mi.uordblks + mi.hblkhd; +#elif defined(HAVE_MALLOC_ZONE_STATISTICS) && defined(HAVE_MALLOC_MALLOC_H) + malloc_statistics_t Stats; + malloc_zone_statistics(malloc_default_zone(), &Stats); + return Stats.size_allocated; // darwin #elif defined(HAVE_GETRUSAGE) struct rusage usage; ::getrusage(RUSAGE_SELF, &usage); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits