Route ampif77 and ampif90 through ampiCC, factoring out duplicated code
[charm.git] / src / conv-core / memory-verbose.c
blob4224a6d1af9edd66e2989657d909145d92b9acd7
1 /******************************************************************************
3 A caching memory allocator-- #included whole by memory.C
5 Orion Sky Lawlor, olawlor@acm.org, 6/22/2001
7 *****************************************************************************/
9 #if ! CMK_MEMORY_BUILD_OS
10 /* Use Gnumalloc as meta-meta malloc fallbacks (mm_*) */
11 #include "memory-gnu.c"
12 #endif
14 static int memInit=0;
15 static int inMemVerbose=0;
17 static void meta_init(char **argv)
19 if (CmiMyRank()==0) memInit=1;
20 CmiNodeAllBarrier();
21 if (memInit) CmiPrintf("CMI_MEMORY(%d)> Called meta_init\n", CmiMyPe());
24 static void *meta_malloc(size_t size)
26 void *ret=mm_malloc(size);
27 if (memInit) CmiPrintf("CMI_MEMORY(%d)> malloc(%d) => %p\n",
28 CmiMyPe(),size,ret);
29 if (memInit>1) {int memBack=memInit; memInit=0; CmiPrintStackTrace(0); memInit=memBack;}
30 return ret;
33 static void meta_free(void *mem)
35 if (memInit && !inMemVerbose) {
36 inMemVerbose = 1;
37 CmiPrintf("CMI_MEMORY(%d)> free(%p)\n", CmiMyPe(),mem);
38 inMemVerbose = 0;
40 if (memInit>1) {int memBack=memInit; memInit=0; CmiPrintStackTrace(0); memInit=memBack;}
41 mm_free(mem);
44 static void *meta_calloc(size_t nelem, size_t size)
46 void *ret=mm_calloc(nelem,size);
47 if (memInit) CmiPrintf("CMI_MEMORY(%d)> calloc(%d,%d) => %p\n",
48 CmiMyPe(),nelem,size,ret);
49 return ret;
52 static void meta_cfree(void *mem)
54 if (memInit) CmiPrintf("CMI_MEMORY(%d)> free(%p)\n",
55 CmiMyPe(),mem);
56 mm_cfree(mem);
59 static void *meta_realloc(void *mem, size_t size)
61 void *ret=mm_realloc(mem,size);
62 if (memInit) CmiPrintf("CMI_MEMORY(%d)> realloc(%p,%d) => %p\n",
63 CmiMyPe(),mem,size,ret);
64 return ret;
67 static void *meta_memalign(size_t align, size_t size)
69 void *ret=mm_memalign(align,size);
70 if (memInit) CmiPrintf("CMI_MEMORY(%d)> memalign(%p,%d) => %p\n",
71 CmiMyPe(),align,size,ret);
72 return ret;
75 static int meta_posix_memalign(void **outptr, size_t align, size_t size)
77 void *origptr = *outptr;
78 int ret=mm_posix_memalign(outptr,align,size);
79 if (memInit) CmiPrintf("CMI_MEMORY(%d)> posix_memalign(%p,%p,%d), %p => %d, %p\n",
80 CmiMyPe(),outptr,align,size,origptr,ret,*outptr);
81 return ret;
84 static void *meta_aligned_alloc(size_t align, size_t size)
86 void *ret=mm_aligned_alloc(align,size);
87 if (memInit) CmiPrintf("CMI_MEMORY(%d)> aligned_alloc(%p,%d) => %p\n",
88 CmiMyPe(),align,size,ret);
89 return ret;
92 static void *meta_valloc(size_t size)
94 void *ret=mm_valloc(size);
95 if (memInit) CmiPrintf("CMI_MEMORY(%d)> valloc(%d) => %p\n",
96 CmiMyPe(),size,ret);
97 return ret;
100 static void *meta_pvalloc(size_t size)
102 void *ret=mm_pvalloc(size);
103 if (memInit) CmiPrintf("CMI_MEMORY(%d)> pvalloc(%d) => %p\n",
104 CmiMyPe(),size,ret);
105 return ret;