diff options
author | Simon Marlow <simonmar@microsoft.com> | 2006-09-07 09:30:05 +0000 |
---|---|---|
committer | Simon Marlow <simonmar@microsoft.com> | 2006-09-07 09:30:05 +0000 |
commit | a0be7e7ccd602efd9b7d35b3e0747a2c4f155ce9 (patch) | |
tree | 0dc30e8ddb227854de83fc9bc395cbc3285f34f2 /rts | |
parent | ddf8b805caafdfb5e3bbc3356aaed66af6f0b5e9 (diff) | |
download | haskell-a0be7e7ccd602efd9b7d35b3e0747a2c4f155ce9.tar.gz |
Remove CONSTR_CHARLIKE and CONSTR_INTLIKE closure types
These closure types aren't used/needed, as far as I can tell. The
commoning up of Chars/Ints happens by comparing info pointers, and
the info table for a dynamic C#/I# is CONSTR_0_1. The RTS seemed
a little confused about whether CONSTR_CHARLIKE/CONSTR_INTLIKE were
supposed to be static or dynamic closures, too.
Diffstat (limited to 'rts')
-rw-r--r-- | rts/ClosureFlags.c | 5 | ||||
-rw-r--r-- | rts/GC.c | 2 | ||||
-rw-r--r-- | rts/Interpreter.c | 2 | ||||
-rw-r--r-- | rts/LdvProfile.c | 2 | ||||
-rw-r--r-- | rts/Printer.c | 4 | ||||
-rw-r--r-- | rts/ProfHeap.c | 4 | ||||
-rw-r--r-- | rts/RetainerProfile.c | 16 | ||||
-rw-r--r-- | rts/Sanity.c | 2 |
8 files changed, 2 insertions, 35 deletions
diff --git a/rts/ClosureFlags.c b/rts/ClosureFlags.c index 5545693362..260bf390d0 100644 --- a/rts/ClosureFlags.c +++ b/rts/ClosureFlags.c @@ -33,8 +33,6 @@ StgWord16 closure_flags[] = { /* CONSTR_2_0 = */ (_HNF| _NS ), /* CONSTR_1_1 = */ (_HNF| _NS ), /* CONSTR_0_2 = */ (_HNF| _NS ), -/* CONSTR_INTLIKE = */ (_HNF| _NS|_STA ), -/* CONSTR_CHARLIKE = */ (_HNF| _NS|_STA ), /* CONSTR_STATIC = */ (_HNF| _NS|_STA ), /* CONSTR_NOCAF_STATIC = */ (_HNF| _NS|_STA ), /* FUN = */ (_HNF| _NS| _SRT ), @@ -101,7 +99,6 @@ StgWord16 closure_flags[] = { /* CATCH_STM_FRAME = */ ( _BTM ) }; -#if N_CLOSURE_TYPES != 73 +#if N_CLOSURE_TYPES != 71 #error Closure types changed: update ClosureFlags.c! #endif - @@ -1898,8 +1898,6 @@ loop: } return q; - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: /* no need to put these on the static linked list, they don't need * to be scavenged. diff --git a/rts/Interpreter.c b/rts/Interpreter.c index 56e9bb67ce..81d4e38d93 100644 --- a/rts/Interpreter.c +++ b/rts/Interpreter.c @@ -261,8 +261,6 @@ eval_obj: case CONSTR_2_0: case CONSTR_1_1: case CONSTR_0_2: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_STATIC: case CONSTR_NOCAF_STATIC: case FUN: diff --git a/rts/LdvProfile.c b/rts/LdvProfile.c index 19ebe426d3..5d96811ed7 100644 --- a/rts/LdvProfile.c +++ b/rts/LdvProfile.c @@ -168,8 +168,6 @@ processHeapClosureForDead( StgClosure *c ) case CONSTR_STATIC: case FUN_STATIC: case THUNK_STATIC: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: // stack objects case UPDATE_FRAME: diff --git a/rts/Printer.c b/rts/Printer.c index 36fdf7bda4..83afd48a50 100644 --- a/rts/Printer.c +++ b/rts/Printer.c @@ -133,8 +133,6 @@ printClosure( StgClosure *obj ) case CONSTR: case CONSTR_1_0: case CONSTR_0_1: case CONSTR_1_1: case CONSTR_0_2: case CONSTR_2_0: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_STATIC: case CONSTR_NOCAF_STATIC: { @@ -657,8 +655,6 @@ static char *closure_type_names[] = { "CONSTR_2", "CONSTR_1", "CONSTR_0", - "CONSTR_INTLIKE", - "CONSTR_CHARLIKE", "CONSTR_STATIC", "CONSTR_NOCAF_STATIC", "FUN", diff --git a/rts/ProfHeap.c b/rts/ProfHeap.c index 312bee735c..8f4c8baa2f 100644 --- a/rts/ProfHeap.c +++ b/rts/ProfHeap.c @@ -114,8 +114,6 @@ static void dumpCensus( Census *census ); static char *type_names[] = { "INVALID_OBJECT" , "CONSTR" - , "CONSTR_INTLIKE" - , "CONSTR_CHARLIKE" , "CONSTR_STATIC" , "CONSTR_NOCAF_STATIC" @@ -905,8 +903,6 @@ heapCensusChain( Census *census, bdescr *bd ) case SE_CAF_BLACKHOLE: case SE_BLACKHOLE: case BLACKHOLE: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case FUN_1_0: case FUN_0_1: case FUN_1_1: diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c index c5c3de5314..a18a194c02 100644 --- a/rts/RetainerProfile.c +++ b/rts/RetainerProfile.c @@ -612,8 +612,6 @@ push( StgClosure *c, retainer c_child_r, StgClosure **first_child ) case AP_STACK: case TSO: case IND_STATIC: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: // stack objects case UPDATE_FRAME: @@ -974,8 +972,6 @@ pop( StgClosure **c, StgClosure **cp, retainer *r ) case AP_STACK: case TSO: case IND_STATIC: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: // stack objects case RET_DYN: @@ -1139,10 +1135,8 @@ isRetainer( StgClosure *c ) // // IND_STATIC cannot be *c, *cp, *r in the retainer profiling loop. case IND_STATIC: - // CONSTR_INTLIKE, CONSTR_CHARLIKE, and CONSTR_NOCAF_STATIC + // CONSTR_NOCAF_STATIC // cannot be *c, *cp, *r in the retainer profiling loop. - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: // Stack objects are invalid because they are never treated as // legal objects during retainer profiling. @@ -1609,8 +1603,6 @@ inner_loop: #ifdef DEBUG_RETAINER switch (typeOfc) { case IND_STATIC: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: case CONSTR_STATIC: case THUNK_STATIC: @@ -1648,8 +1640,6 @@ inner_loop: // We just skip IND_STATIC, so its retainer set is never computed. c = ((StgIndStatic *)c)->indirectee; goto inner_loop; - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: // static objects with no pointers out, so goto loop. case CONSTR_NOCAF_STATIC: // It is not just enough not to compute the retainer set for *c; it is @@ -1880,8 +1870,6 @@ computeRetainerSet( void ) case IND_STATIC: // no cost involved break; - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: case CONSTR_STATIC: case THUNK_STATIC: @@ -2012,8 +2000,6 @@ retainerProfile(void) pcostArrayLinear(FUN_STATIC); pcostArrayLinear(CONSTR_STATIC); pcostArrayLinear(CONSTR_NOCAF_STATIC); - pcostArrayLinear(CONSTR_INTLIKE); - pcostArrayLinear(CONSTR_CHARLIKE); */ #endif diff --git a/rts/Sanity.c b/rts/Sanity.c index 0e68a86ba7..33ec988106 100644 --- a/rts/Sanity.c +++ b/rts/Sanity.c @@ -307,8 +307,6 @@ checkClosure( StgClosure* p ) case STABLE_NAME: case MUT_VAR_CLEAN: case MUT_VAR_DIRTY: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_STATIC: case CONSTR_NOCAF_STATIC: case THUNK_STATIC: |