RtsFlags.DebugFlags.par = rtsFalse;
RtsFlags.DebugFlags.linker = rtsFalse;
RtsFlags.DebugFlags.squeeze = rtsFalse;
+ RtsFlags.DebugFlags.hpc = rtsFalse;
#endif
#if defined(PROFILING) || defined(PAR)
RtsFlags.TraceFlags.sched = rtsFalse;
#ifdef USE_PAPI
- RtsFlags.PapiFlags.eventType = PAPI_FLAG_BRANCH;
+ /* By default no special measurements taken */
+ RtsFlags.PapiFlags.eventType = 0;
#endif
}
" -Dl DEBUG: linker",
" -Dm DEBUG: stm",
" -Dz DEBUG: stack squezing",
+" -Dc DEBUG: program coverage",
"",
#endif /* DEBUG */
#if defined(THREADED_RTS) && !defined(NOSMP)
" 2 - level 2 cache misses",
" b - branch mispredictions",
" s - stalled cycles",
+" e - cache miss and branch misprediction events",
#endif
"",
"RTS options may also be specified using the GHCRTS environment variable.",
case 's':
RtsFlags.PapiFlags.eventType = PAPI_FLAG_STALLS;
break;
+ case 'e':
+ RtsFlags.PapiFlags.eventType = PAPI_FLAG_CB_EVENTS;
+ break;
default:
bad_option( rts_argv[arg] );
}
case 'z':
RtsFlags.DebugFlags.squeeze = rtsTrue;
break;
+ case 'c':
+ RtsFlags.DebugFlags.hpc = rtsTrue;
+ break;
default:
bad_option( rts_argv[arg] );
}