X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FRtsFlags.h;h=db196a975b028b618904e578d3f60236defb0d38;hb=960a5edb6ac87c7d85e36f4b70be8da0175819f7;hp=6c4b23020932ca1ea284b4c7d0c94a6ee287b0ce;hpb=16871485a44ba8a6e93e40f30af7ea46839e0c4c;p=ghc-hetmet.git diff --git a/includes/RtsFlags.h b/includes/RtsFlags.h index 6c4b230..db196a9 100644 --- a/includes/RtsFlags.h +++ b/includes/RtsFlags.h @@ -39,10 +39,14 @@ struct GC_FLAGS { rtsBool compact; /* True <=> "compact all the time" */ double compactThreshold; + rtsBool sweep; /* use "mostly mark-sweep" instead of copying + * for the oldest generation */ rtsBool ringBell; rtsBool frontpanel; int idleGCDelayTime; /* in milliseconds */ + + StgWord heapBase; /* address to ask the OS for memory */ }; struct DEBUG_FLAGS { @@ -62,6 +66,7 @@ struct DEBUG_FLAGS { rtsBool apply; /* 'a' */ rtsBool stm; /* 'm' */ rtsBool squeeze; /* 'z' stack squeezing & lazy blackholing */ + rtsBool hpc; /* 'c' coverage */ }; struct COST_CENTRE_FLAGS { @@ -85,8 +90,7 @@ struct PROFILING_FLAGS { # define HEAP_BY_RETAINER 6 # define HEAP_BY_LDV 7 -# define HEAP_BY_INFOPTR 1 /* DEBUG only */ -# define HEAP_BY_CLOSURE_TYPE 2 /* DEBUG only */ +# define HEAP_BY_CLOSURE_TYPE 8 nat profileInterval; /* delta between samples (in ms) */ nat profileIntervalTicks; /* delta between samples (in 'ticks') */ @@ -116,6 +120,10 @@ struct CONCURRENT_FLAGS { struct MISC_FLAGS { int tickInterval; /* in milliseconds */ + rtsBool install_signal_handlers; + rtsBool machineReadable; + StgWord linkerMemBase; /* address to ask the OS for memory + * for the linker, NULL ==> off */ }; #ifdef PAR @@ -172,6 +180,9 @@ struct PAR_FLAGS { rtsBool migrate; /* migrate threads between capabilities */ rtsBool wakeupMigrate; /* migrate a thread on wakeup */ unsigned int maxLocalSparks; + rtsBool parGcEnabled; /* enable parallel GC */ + rtsBool parGcGen; /* do parallel GC in this generation + * and higher only */ }; #endif /* THREADED_RTS */ @@ -297,9 +308,28 @@ struct TICKY_FLAGS { struct TRACE_FLAGS { rtsBool sched; /* trace scheduler events for profiling */ + rtsBool gc; /* trace GC events */ rtsBool timestamp; /* add timestamps to traces */ }; +#ifdef USE_PAPI +#define MAX_PAPI_USER_EVENTS 8 + +struct PAPI_FLAGS { + nat eventType; /* The type of events to count */ + nat numUserEvents; + char * userEvents[MAX_PAPI_USER_EVENTS]; +}; + +#define PAPI_FLAG_CACHE_L1 1 +#define PAPI_FLAG_CACHE_L2 2 +#define PAPI_FLAG_BRANCH 3 +#define PAPI_FLAG_STALLS 4 +#define PAPI_FLAG_CB_EVENTS 5 +#define PAPI_USER_EVENTS 6 + +#endif + /* Put them together: */ typedef struct _RTS_FLAGS { @@ -319,6 +349,9 @@ typedef struct _RTS_FLAGS { #ifdef GRAN struct GRAN_FLAGS GranFlags; #endif +#ifdef USE_PAPI + struct PAPI_FLAGS PapiFlags; +#endif } RTS_FLAGS; #ifdef COMPILING_RTS_MAIN