diff options
author | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
---|---|---|
committer | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
commit | 84c2ad99582391005b5e873198b15e9e9eb4f78d (patch) | |
tree | caa8c2f2ec7e97fbb4977263c6817c9af5025cf4 /rts/RetainerSet.h | |
parent | 8ddb47cfcf5776e9a3c55fd37947c8a95e00fa12 (diff) | |
parent | e68b439fe5de61b9a2ca51af472185c62ccb8b46 (diff) | |
download | haskell-wip/T13904.tar.gz |
update to current master againwip/T13904
Diffstat (limited to 'rts/RetainerSet.h')
-rw-r--r-- | rts/RetainerSet.h | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/rts/RetainerSet.h b/rts/RetainerSet.h index 52f12dc155..2f9aeea644 100644 --- a/rts/RetainerSet.h +++ b/rts/RetainerSet.h @@ -25,34 +25,13 @@ its retainer identity because its location may change during garbage collections. 2. Type 'retainer' must come with comparison operations as well as - an equality operation. That it, <, >, and == must be supported - + an equality operation. That is, <, >, and == must be supported - this is necessary to store retainers in a sorted order in retainer sets. Therefore, you cannot use a huge structure type as 'retainer', for instance. - - We illustrate three possibilities of defining 'retainer identity'. - Choose one of the following three compiler directives: - - Retainer scheme 1 (RETAINER_SCHEME_INFO) : retainer = info table - Retainer scheme 2 (RETAINER_SCHEME_CCS) : retainer = cost centre stack - Retainer scheme 3 (RETAINER_SCHEME_CC) : retainer = cost centre */ -// #define RETAINER_SCHEME_INFO -#define RETAINER_SCHEME_CCS -// #define RETAINER_SCHEME_CC - -#if defined(RETAINER_SCHEME_INFO) -struct _StgInfoTable; -typedef struct _StgInfoTable *retainer; -#endif -#if defined(RETAINER_SCHEME_CCS) typedef CostCentreStack *retainer; -#endif - -#if defined(RETAINER_SCHEME_CC) -typedef CostCentre *retainer; -#endif /* Type 'retainerSet' defines an abstract datatype for sets of retainers. @@ -67,7 +46,7 @@ typedef struct _RetainerSet { struct _RetainerSet *link; // link to the next retainer set in the bucket int id; // unique id of this retainer set (used when printing) // Its absolute value is interpreted as its true id; if id is - // negative, it indicates that this retainer set has had a postive + // negative, it indicates that this retainer set has had a positive // cost after some retainer profiling. retainer element[0]; // elements of this retainer set // do not put anything below here! |