X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2Fstg%2FTicky.h;h=a811aec4ebfb94385da4d44dafaa581aab02bbae;hb=2d4d636af091b8da27466b5cf90011395a9c2f66;hp=fd7edf85c5bb27342d4db10f71b7856048b296b8;hpb=a2a67cd520b9841114d69a87a423dabcb3b4368e;p=ghc-hetmet.git diff --git a/includes/stg/Ticky.h b/includes/stg/Ticky.h index fd7edf8..a811aec 100644 --- a/includes/stg/Ticky.h +++ b/includes/stg/Ticky.h @@ -1,9 +1,14 @@ /* ----------------------------------------------------------------------------- * - * (c) The GHC Team, 2007 + * (c) The GHC Team, 2009 * * Declarations for counters used by ticky-ticky profiling. * + * Do not #include this file directly: #include "Rts.h" instead. + * + * To understand the structure of the RTS headers, see the wiki: + * http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes + * * -------------------------------------------------------------------------- */ @@ -12,12 +17,26 @@ /* These should probably be automatically generated in order to keep them consistent with the macros that use them (which are - defined in Cmm.h. */ + defined in Cmm.h) */ + +/* Here are all the counter declarations: */ +/* If you change this list, make the corresponding change + in RTS_TICKY_SYMBOLS in rts/Linker.c */ + +/* These two are explicitly declared in rts/Ticky.c, and + hence should not be extern'd except when using this header + file from STG code; hence IN_STG_CODE */ -#ifdef TICKY_TICKY -/* same trick as in the former StgTicky.h: recycle the same declarations - for both extern decls (which are included everywhere) - and initializations (which only happen once) */ +#if IN_STG_CODE +extern W_ ticky_entry_ctrs[]; +extern W_ top_ct[]; +#endif + +/* The rest are not explicity declared in rts/Ticky.c. Instead + we use the same trick as in the former StgTicky.h: recycle the + same declarations for both extern decls (which are included everywhere) + and initializations (which only happen once) + TICKY_C is defined only in rts/Ticky.c */ #ifdef TICKY_C #define INIT(ializer) = ializer #define EXTERN @@ -26,8 +45,6 @@ #define EXTERN extern #endif -/* Here are all the counter declarations: */ - EXTERN StgInt ENT_VIA_NODE_ctr INIT(0); EXTERN StgInt ENT_STATIC_THK_ctr INIT(0); EXTERN StgInt ENT_DYN_THK_ctr INIT(0); @@ -113,8 +130,6 @@ EXTERN StgInt GC_SEL_MAJOR_ctr INIT(0); EXTERN StgInt GC_FAILED_PROMOTION_ctr INIT(0); -EXTERN StgInt GC_WORDS_COPIED_ctr INIT(0); - EXTERN StgInt ALLOC_UP_THK_ctr INIT(0); EXTERN StgInt ALLOC_SE_THK_ctr INIT(0); EXTERN StgInt ALLOC_THK_adm INIT(0); @@ -159,8 +174,6 @@ EXTERN StgInt RET_SEMI_loads_avoided INIT(0); /* End of counter declarations. */ -#endif /* TICKY_TICKY */ - /* This is ugly, but the story is: We got rid of StgTicky.h, which was previously defining these macros for the benefit of C code @@ -176,9 +189,9 @@ EXTERN StgInt RET_SEMI_loads_avoided INIT(0); #define TICK_UPD_NEW_IND() #define TICK_UPD_SQUEEZED() #define TICK_ALLOC_HEAP_NOCTR(x) -#define TICK_GC_WORDS_COPIED(x) #define TICK_GC_FAILED_PROMOTION() -#define TICK_ALLOC_TSO(g,s) +#define TICK_ALLOC_TSO() +#define TICK_ALLOC_STACK(g) #define TICK_ALLOC_UP_THK(g,s) #define TICK_ALLOC_SE_THK(g,s)