summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/ClosureTypes.h58
-rw-r--r--includes/Regs.h6
-rw-r--r--includes/RtsConfig.h18
-rw-r--r--includes/StgMiscClosures.h10
-rw-r--r--includes/mkDerivedConstants.c1
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));