/* OptEdgeProfAtExitHandler - When the program exits, just write out the * profiling data. */ static void OptEdgeProfAtExitHandler() { /* Note that, although the array has a counter for each edge, not all * counters are updated, the ones that are not used are initialised with -1. * When loading this information the counters with value -1 have to be * recalculated, it is guaranteed that this is possible. */ write_profiling_data(OptEdgeInfo, ArrayStart, NumElements); }
/* EdgeProfAtExitHandler - When the program exits, just write out the profiling * data. */ static void EdgeProfAtExitHandler(void) { /* Note that if this were doing something more intelligent with the * instrumentation, we could do some computation here to expand what we * collected into simple edge profiles. Since we directly count each edge, we * just write out all of the counters directly. */ write_profiling_data(EdgeInfo, ArrayStart, NumElements); }
/* EdgeProfAtExitHandler - When the program exits, just write out the profiling * data. */ static void MPIProfAtExitHandler(void) { /* Note that if this were doing something more intelligent with the * instrumentation, we could do some computation here to expand what we * collected into simple edge profiles. Since we directly count each edge, we * just write out all of the counters directly. */ unsigned* MapTable = ArrayStart + NumElements; unsigned* VisitTable = MapTable + FORTRAN_DATATYPE_MAP_SIZE; unsigned i; for(i=0;i<FORTRAN_DATATYPE_MAP_SIZE;++i){ if(*VisitTable++ == 1 && *MapTable++ == 0) fprintf(stderr, "WARNNING: doesn't consider MPI Fortran Type %d\n", i); } write_profiling_data(MPIFullInfo, ArrayStart, NumElements); }
/* FuncProfAtExitHandler - When the program exits, just write out the profiling * data. */ static void FuncProfAtExitHandler() { /* Just write out the data we collected. */ write_profiling_data(FunctionInfo, ArrayStart, NumElements); }
/* WriteAndFlushBBTraceData - write out the currently accumulated trace data * and reset the cursor to point to the beginning of the buffer. */ static void WriteAndFlushBBTraceData () { write_profiling_data(BBTraceInfo, ArrayStart, (ArrayCursor - ArrayStart)); ArrayCursor = ArrayStart; }