summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorDaniel Gröber <dxld@darkboxed.org>2019-07-16 13:39:57 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-02-17 11:21:10 -0500
commiteecdb0531d98d59d5734828356e65f0d4b9b2977 (patch)
tree553f70bfe8e102143f62e1aa246792a0d147bcfc /includes
parent7bca0e545998f737c6f6eff08b2c2c38d7558976 (diff)
downloadhaskell-eecdb0531d98d59d5734828356e65f0d4b9b2977.tar.gz
rts: TraverseHeap: Simplify profiling header
Having a union in the closure profiling header really just complicates things so get back to basics, we just have a single StgWord there for now.
Diffstat (limited to 'includes')
-rw-r--r--includes/rts/storage/Closures.h19
1 files changed, 5 insertions, 14 deletions
diff --git a/includes/rts/storage/Closures.h b/includes/rts/storage/Closures.h
index 0fff039cc6..ebb836bca2 100644
--- a/includes/rts/storage/Closures.h
+++ b/includes/rts/storage/Closures.h
@@ -20,22 +20,13 @@
typedef struct {
CostCentreStack *ccs;
union {
-
- union {
- /* Accessor for the least significant bit of the entire union. Invariant:
- * This must be at least as large as the largest field in this union for
- * this to work. If you add more fields make sure you maintain this.
- *
- * See Note [Profiling heap traversal visited bit].
- */
- StgWord lsb;
-
- /* Retainer Set */
- struct _RetainerSet *rs;
- } trav;
-
+ StgWord trav; /* Heap traversal */
StgWord ldvw; /* Lag/Drag/Void Word */
} hp;
+ // Heap profiling header. This field is shared among the various heap
+ // profiling modes. Currently it is used by ProfHeap.c for Lag/Drag/Void
+ // profiling and by the heap traversal modes using TraverseHeap.c such as
+ // the retainer profiler.
} StgProfHeader;
/* -----------------------------------------------------------------------------