From d7bbaf5d45fd7b88ce331659abe29d16d086684b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Tue, 16 Jul 2019 13:49:16 +0200 Subject: rts: TraverseHeap: Make trav. data macros into functions This allows the global 'flip' variable not to be exported. This allows a future commit to also make it part of the traversalState struct. --- rts/TraverseHeap.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'rts/TraverseHeap.h') diff --git a/rts/TraverseHeap.h b/rts/TraverseHeap.h index cc217a8858..3855123323 100644 --- a/rts/TraverseHeap.h +++ b/rts/TraverseHeap.h @@ -18,12 +18,6 @@ void resetStaticObjectForProfiling(StgClosure *static_objects); -/* See Note [Profiling heap traversal visited bit]. */ -extern StgWord flip; - -#define isTravDataValid(c) \ - ((((StgWord)(c)->header.prof.hp.trav & 1) ^ flip) == 0) - typedef struct traverseState_ traverseState; typedef union stackData_ { @@ -128,6 +122,10 @@ typedef bool (*visitClosure_cb) ( stackAccum *accum, stackData *child_data); +StgWord getTravData(const StgClosure *c); +void setTravData(StgClosure *c, StgWord w); +bool isTravDataValid(const StgClosure *c); + void traverseWorkStack(traverseState *ts, visitClosure_cb visit_cb); void traversePushRoot(traverseState *ts, StgClosure *c, StgClosure *cp, stackData data); bool traverseMaybeInitClosureData(StgClosure *c); -- cgit v1.2.1