static int mpiPi_callsite_stats_op_comparator (const void *p1, const void *p2) { callsite_stats_t *csp_1 = (callsite_stats_t *) p1; callsite_stats_t *csp_2 = (callsite_stats_t *) p2; MPIP_CALLSITE_STATS_COOKIE_ASSERT (csp_1); MPIP_CALLSITE_STATS_COOKIE_ASSERT (csp_2); #define express(f) {if ((csp_1->f) > (csp_2->f)) {return 1;} if ((csp_1->f) < (csp_2->f)) {return -1;}} express (op); #undef express return 0; }
static int mpiPi_callsite_stats_MPI_id_hashkey (const void *p) { callsite_stats_t *csp = (callsite_stats_t *) p; MPIP_CALLSITE_STATS_COOKIE_ASSERT (csp); return 52271 ^ csp->op; }
static int mpiPi_callsite_stats_src_id_hashkey (const void *p) { int res = 0; callsite_stats_t *csp = (callsite_stats_t *) p; MPIP_CALLSITE_STATS_COOKIE_ASSERT (csp); return 52271 ^ csp->op ^ res ^ csp->csid; }
static int mpiPi_callsite_stats_pc_comparator (const void *p1, const void *p2) { int i; callsite_stats_t *csp_1 = (callsite_stats_t *) p1; callsite_stats_t *csp_2 = (callsite_stats_t *) p2; MPIP_CALLSITE_STATS_COOKIE_ASSERT (csp_1); MPIP_CALLSITE_STATS_COOKIE_ASSERT (csp_2); #define express(f) {if ((csp_1->f) > (csp_2->f)) {return 1;} if ((csp_1->f) < (csp_2->f)) {return -1;}} express (op); express (rank); for (i = 0; i < MPIP_CALLSITE_STACK_DEPTH; i++) { express (pc[i]); } #undef express return 0; }
static int mpiPi_callsite_stats_pc_hashkey (const void *p) { int res = 0; int i; callsite_stats_t *csp = (callsite_stats_t *) p; MPIP_CALLSITE_STATS_COOKIE_ASSERT (csp); for (i = 0; i < MPIP_CALLSITE_STACK_DEPTH; i++) { res ^= (unsigned) csp->pc[i]; } return 52271 ^ csp->op ^ res ^ csp->rank; }