diff options
Diffstat (limited to 'includes')
-rw-r--r-- | includes/ClosureTypes.h | 58 | ||||
-rw-r--r-- | includes/Regs.h | 6 | ||||
-rw-r--r-- | includes/RtsConfig.h | 18 | ||||
-rw-r--r-- | includes/StgMiscClosures.h | 10 | ||||
-rw-r--r-- | includes/mkDerivedConstants.c | 1 |
5 files changed, 35 insertions, 58 deletions
diff --git a/includes/ClosureTypes.h b/includes/ClosureTypes.h index 4876931d1c..99bd3060ff 100644 --- a/includes/ClosureTypes.h +++ b/includes/ClosureTypes.h @@ -64,35 +64,33 @@ #define STOP_FRAME 40 #define CAF_BLACKHOLE 41 #define BLACKHOLE 42 -#define SE_BLACKHOLE 43 -#define SE_CAF_BLACKHOLE 44 -#define MVAR_CLEAN 45 -#define MVAR_DIRTY 46 -#define ARR_WORDS 47 -#define MUT_ARR_PTRS_CLEAN 48 -#define MUT_ARR_PTRS_DIRTY 49 -#define MUT_ARR_PTRS_FROZEN0 50 -#define MUT_ARR_PTRS_FROZEN 51 -#define MUT_VAR_CLEAN 52 -#define MUT_VAR_DIRTY 53 -#define WEAK 54 -#define STABLE_NAME 55 -#define TSO 56 -#define BLOCKED_FETCH 57 -#define FETCH_ME 58 -#define FETCH_ME_BQ 59 -#define RBH 60 -#define REMOTE_REF 62 -#define TVAR_WATCH_QUEUE 63 -#define INVARIANT_CHECK_QUEUE 64 -#define ATOMIC_INVARIANT 65 -#define TVAR 66 -#define TREC_CHUNK 67 -#define TREC_HEADER 68 -#define ATOMICALLY_FRAME 69 -#define CATCH_RETRY_FRAME 70 -#define CATCH_STM_FRAME 71 -#define WHITEHOLE 72 -#define N_CLOSURE_TYPES 73 +#define MVAR_CLEAN 43 +#define MVAR_DIRTY 44 +#define ARR_WORDS 45 +#define MUT_ARR_PTRS_CLEAN 46 +#define MUT_ARR_PTRS_DIRTY 47 +#define MUT_ARR_PTRS_FROZEN0 48 +#define MUT_ARR_PTRS_FROZEN 49 +#define MUT_VAR_CLEAN 50 +#define MUT_VAR_DIRTY 51 +#define WEAK 52 +#define STABLE_NAME 53 +#define TSO 54 +#define BLOCKED_FETCH 55 +#define FETCH_ME 56 +#define FETCH_ME_BQ 57 +#define RBH 58 +#define REMOTE_REF 59 +#define TVAR_WATCH_QUEUE 60 +#define INVARIANT_CHECK_QUEUE 61 +#define ATOMIC_INVARIANT 62 +#define TVAR 63 +#define TREC_CHUNK 64 +#define TREC_HEADER 65 +#define ATOMICALLY_FRAME 66 +#define CATCH_RETRY_FRAME 67 +#define CATCH_STM_FRAME 68 +#define WHITEHOLE 69 +#define N_CLOSURE_TYPES 70 #endif /* CLOSURETYPES_H */ diff --git a/includes/Regs.h b/includes/Regs.h index cf083c957d..49366ed342 100644 --- a/includes/Regs.h +++ b/includes/Regs.h @@ -23,6 +23,7 @@ #define REGS_H typedef struct { + StgWord stgEagerBlackholeInfo; StgFunPtr stgGCEnter1; StgFunPtr stgGCFun; } StgFunTable; @@ -399,8 +400,9 @@ GLOBAL_REG_DECL(bdescr *,HpAlloc,REG_HpAlloc) #define FunReg ((StgFunTable *)((void *)BaseReg - sizeof(StgFunTable))) -#define stg_gc_enter_1 (FunReg->stgGCEnter1) -#define stg_gc_fun (FunReg->stgGCFun) +#define stg_EAGER_BLACKHOLE_info (FunReg->stgEagerBlackholeInfo) +#define stg_gc_enter_1 (FunReg->stgGCEnter1) +#define stg_gc_fun (FunReg->stgGCFun) /* ----------------------------------------------------------------------------- For any registers which are denoted "caller-saves" by the C calling diff --git a/includes/RtsConfig.h b/includes/RtsConfig.h index caf76b32f8..2f683cb00f 100644 --- a/includes/RtsConfig.h +++ b/includes/RtsConfig.h @@ -28,24 +28,6 @@ #define USING_LIBBFD 1 #endif -/* Turn lazy blackholing and eager blackholing on/off. - * - * Using eager blackholing makes things easier to debug because - * the blackholes are more predictable - but it's slower and less sexy. - * - * For now, do lazy and not eager. - */ - -/* TICKY_TICKY needs EAGER_BLACKHOLING to verify no double-entries of - * single-entry thunks. - */ -/* #if defined(TICKY_TICKY) || defined(THREADED_RTS) */ -#if defined(TICKY_TICKY) -# define EAGER_BLACKHOLING -#else -# define LAZY_BLACKHOLING -#endif - /* ----------------------------------------------------------------------------- Labels - entry labels & info labels point to the same place in TABLES_NEXT_TO_CODE, so we only generate the _info label. Jumps diff --git a/includes/StgMiscClosures.h b/includes/StgMiscClosures.h index 9158682047..8911cf3a09 100644 --- a/includes/StgMiscClosures.h +++ b/includes/StgMiscClosures.h @@ -89,11 +89,8 @@ RTS_INFO(stg_CAF_UNENTERED_info); RTS_INFO(stg_CAF_ENTERED_info); RTS_INFO(stg_WHITEHOLE_info); RTS_INFO(stg_BLACKHOLE_info); +RTS_INFO(__stg_EAGER_BLACKHOLE_info); RTS_INFO(stg_CAF_BLACKHOLE_info); -#ifdef TICKY_TICKY -RTS_INFO(stg_SE_BLACKHOLE_info); -RTS_INFO(stg_SE_CAF_BLACKHOLE_info); -#endif #if defined(PAR) || defined(GRAN) RTS_INFO(stg_RBH_info); @@ -148,11 +145,8 @@ RTS_ENTRY(stg_CAF_UNENTERED_entry); RTS_ENTRY(stg_CAF_ENTERED_entry); RTS_ENTRY(stg_WHITEHOLE_entry); RTS_ENTRY(stg_BLACKHOLE_entry); +RTS_ENTRY(__stg_EAGER_BLACKHOLE_entry); RTS_ENTRY(stg_CAF_BLACKHOLE_entry); -#ifdef TICKY_TICKY -RTS_ENTRY(stg_SE_BLACKHOLE_entry); -RTS_ENTRY(stg_SE_CAF_BLACKHOLE_entry); -#endif #if defined(PAR) || defined(GRAN) RTS_ENTRY(stg_RBH_entry); #endif diff --git a/includes/mkDerivedConstants.c b/includes/mkDerivedConstants.c index 3aa7625db2..798c6e6ab0 100644 --- a/includes/mkDerivedConstants.c +++ b/includes/mkDerivedConstants.c @@ -226,6 +226,7 @@ main(int argc, char *argv[]) field_offset(StgRegTable, rmp_result1); field_offset(StgRegTable, rmp_result2); + def_offset("stgEagerBlackholeInfo", FUN_OFFSET(stgEagerBlackholeInfo)); def_offset("stgGCEnter1", FUN_OFFSET(stgGCEnter1)); def_offset("stgGCFun", FUN_OFFSET(stgGCFun)); |