X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FRtsFlags.h;h=01f631d5ce1efd92bfdaa31aeaa17ced3db43bdf;hb=abf2d89bfe6bcf075791000f7a54901f9f1f37be;hp=301743aae777786c032fa29a1abf6caae483e194;hpb=a412def3679e76a01e99a8a04d6ee893f140a470;p=ghc-hetmet.git diff --git a/ghc/includes/RtsFlags.h b/ghc/includes/RtsFlags.h index 301743a..01f631d 100644 --- a/ghc/includes/RtsFlags.h +++ b/ghc/includes/RtsFlags.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: RtsFlags.h,v 1.39 2001/11/25 16:57:38 sof Exp $ + * $Id: RtsFlags.h,v 1.45 2003/01/23 12:13:10 simonmar Exp $ * * (c) The GHC Team, 1998-1999 * @@ -10,6 +10,8 @@ #ifndef RTSFLAGS_H #define RTSFLAGS_H +#include + /* For defaults, see the @initRtsFlagsDefaults@ routine. */ struct GC_FLAGS { @@ -42,37 +44,24 @@ struct GC_FLAGS { rtsBool frontpanel; }; -/* Hack: this struct uses bitfields so that we can use a binary arg - * with the -D flag. - * Remember to update the corresponding bit of RtsFlags.c if you - * change/extend this struct. - */ struct DEBUG_FLAGS { - /* flags to control debugging output in various subsystems */ - rtsBool scheduler : 1; /* 1 */ - rtsBool evaluator : 1; /* 2 */ - rtsBool codegen : 1; /* 4 */ - rtsBool weak : 1; /* 8 */ - rtsBool gccafs : 1; /* 16 */ - rtsBool gc : 1; /* 32 */ - rtsBool block_alloc : 1; /* 64 */ - - /* flags to control consistency checking (often very expensive!) */ - rtsBool sanity : 1; /* 128 */ - - rtsBool stable : 1; /* 256 */ - rtsBool prof : 1; /* 512 */ - rtsBool gran : 1; /* 1024 */ - rtsBool par : 1; /* 2048 */ - - /* The object linker */ - rtsBool linker : 1; /* 4096 */ + // flags to control debugging output & extra checking in various subsystems + rtsBool scheduler; // 's' + rtsBool interpreter; // 'i' + rtsBool codegen; // 'c' + rtsBool weak; // 'w' + rtsBool gccafs; // 'G' + rtsBool gc; // 'g' + rtsBool block_alloc; // 'b' + rtsBool sanity; // 'S' warning: might be expensive! + rtsBool stable; // 't' + rtsBool prof; // 'p' + rtsBool gran; // 'r' + rtsBool par; // 'P' + rtsBool linker; // 'l' the object linker + rtsBool apply; // 'a' }; -#define MAX_DEBUG_OPTION 13 -#define DEBUG_MASK(n) ((nat)(ldexp(1,n))) -#define MAX_DEBUG_MASK ((nat)(ldexp(1,(MAX_DEBUG_OPTION+1))-1)) - struct COST_CENTRE_FLAGS { unsigned int doCostCentres; # define COST_CENTRES_SUMMARY 1 @@ -90,6 +79,7 @@ struct PROFILING_FLAGS { nat profileInterval; /* delta between samples (in ms) */ nat profileIntervalTicks; /* delta between samples (in 'ticks') */ + rtsBool includeTSOs; # define NO_HEAP_PROFILING 0 /* N.B. Used as indexes into arrays */ @@ -97,22 +87,20 @@ struct PROFILING_FLAGS { # define HEAP_BY_MOD 2 # define HEAP_BY_DESCR 4 # define HEAP_BY_TYPE 5 -/* Flags for retainer and lag-drag-void profiling */ # define HEAP_BY_RETAINER 6 # define HEAP_BY_LDV 7 rtsBool showCCSOnException; - -# define CCchar 'C' -# define MODchar 'M' -# define DESCRchar 'D' -# define TYPEchar 'Y' + + nat maxRetainerSetSize; char* modSelector; char* descrSelector; char* typeSelector; char* ccSelector; - + char* ccsSelector; + char* retainerSelector; + char* bioSelector; }; #elif defined(DEBUG) @@ -312,9 +300,11 @@ struct TICKY_FLAGS { struct RTS_FLAGS { struct GC_FLAGS GcFlags; - struct DEBUG_FLAGS DebugFlags; struct CONCURRENT_FLAGS ConcFlags; +#ifdef DEBUG + struct DEBUG_FLAGS DebugFlags; +#endif #if defined(PROFILING) || defined(PAR) struct COST_CENTRE_FLAGS CcFlags; #endif