X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FRtsFlags.h;h=11133efe1f0b7fa6868a507baf11aa0e91a2dc4e;hb=bb7ffa1642e2110e26e1243c42a8a24adafa985d;hp=f7f79b6980328e78d6e7737fa5b12da3e158ca1e;hpb=4cc37e5758909aaec9ede20604ec4f01c04b54ea;p=ghc-hetmet.git diff --git a/includes/RtsFlags.h b/includes/RtsFlags.h index f7f79b6..11133ef 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 { @@ -86,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') */ @@ -174,6 +177,7 @@ struct PAR_FLAGS { rtsBool migrate; /* migrate threads between capabilities */ rtsBool wakeupMigrate; /* migrate a thread on wakeup */ unsigned int maxLocalSparks; + nat gcThreads; /* number of threads for parallel GC */ }; #endif /* THREADED_RTS */ @@ -299,14 +303,17 @@ struct TICKY_FLAGS { struct TRACE_FLAGS { rtsBool sched; /* trace scheduler events for profiling */ + rtsBool gc; /* trace GC events */ rtsBool timestamp; /* add timestamps to traces */ }; -/* Put them together: */ - #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 @@ -314,9 +321,12 @@ struct PAPI_FLAGS { #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 { /* The first portion of RTS_FLAGS is invariant. */ struct GC_FLAGS GcFlags;