diff options
| author | Simon Marlow <marlowsd@gmail.com> | 2016-11-09 09:20:02 +0000 |
|---|---|---|
| committer | Simon Marlow <marlowsd@gmail.com> | 2016-11-14 14:43:35 +0000 |
| commit | 55d535da10dd63bbaf03fb176ced7179087cd0d4 (patch) | |
| tree | 57bdbf04381fe08d90c384f5b10e77c3384227d9 /rts/sm/CNF.c | |
| parent | 6c0f10fac767c49b65ed71e8eb8e78ca4f9062d5 (diff) | |
| download | haskell-55d535da10dd63bbaf03fb176ced7179087cd0d4.tar.gz | |
Remove CONSTR_STATIC
Summary:
We currently have two info tables for a constructor
* XXX_con_info: the info table for a heap-resident instance of the
constructor, It has type CONSTR, or one of the specialised types like
CONSTR_1_0
* XXX_static_info: the info table for a static instance of this
constructor, which has type CONSTR_STATIC or CONSTR_STATIC_NOCAF.
I'm getting rid of the latter, and using the `con_info` info table for
both static and dynamic constructors. For rationale and more details
see Note [static constructors] in SMRep.hs.
I also removed these macros: `isSTATIC()`, `ip_STATIC()`,
`closure_STATIC()`, since they relied on the CONSTR/CONSTR_STATIC
distinction, and anyway HEAP_ALLOCED() does the same job.
Test Plan: validate
Reviewers: bgamari, simonpj, austin, gcampax, hvr, niteria, erikd
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2690
GHC Trac Issues: #12455
Diffstat (limited to 'rts/sm/CNF.c')
| -rw-r--r-- | rts/sm/CNF.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/rts/sm/CNF.c b/rts/sm/CNF.c index f8e706aaf4..5fa148d426 100644 --- a/rts/sm/CNF.c +++ b/rts/sm/CNF.c @@ -621,8 +621,7 @@ simple_scavenge_block (Capability *cap, case CONSTR: case PRIM: - case CONSTR_NOCAF_STATIC: - case CONSTR_STATIC: + case CONSTR_NOCAF: { StgPtr end; @@ -705,8 +704,7 @@ objectIsWHNFData (StgClosure *what) case CONSTR_2_0: case CONSTR_1_1: case CONSTR_0_2: - case CONSTR_STATIC: - case CONSTR_NOCAF_STATIC: + case CONSTR_NOCAF: case ARR_WORDS: case MUT_ARR_PTRS_FROZEN: case MUT_ARR_PTRS_FROZEN0: @@ -776,8 +774,7 @@ verify_consistency_block (StgCompactNFData *str, StgCompactNFDataBlock *block) case CONSTR: case PRIM: - case CONSTR_STATIC: - case CONSTR_NOCAF_STATIC: + case CONSTR_NOCAF: { uint32_t i; @@ -1108,8 +1105,7 @@ fixup_block(StgCompactNFDataBlock *block, StgWord *fixup_table, uint32_t count) case CONSTR: case PRIM: - case CONSTR_STATIC: - case CONSTR_NOCAF_STATIC: + case CONSTR_NOCAF: { StgPtr end; |
