diff options
author | Daniel Gröber <dxld@darkboxed.org> | 2019-07-16 13:39:57 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-02-17 11:21:10 -0500 |
commit | eecdb0531d98d59d5734828356e65f0d4b9b2977 (patch) | |
tree | 553f70bfe8e102143f62e1aa246792a0d147bcfc /includes | |
parent | 7bca0e545998f737c6f6eff08b2c2c38d7558976 (diff) | |
download | haskell-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.h | 19 |
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; /* ----------------------------------------------------------------------------- |