summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2006-09-07 09:30:05 +0000
committerSimon Marlow <simonmar@microsoft.com>2006-09-07 09:30:05 +0000
commita0be7e7ccd602efd9b7d35b3e0747a2c4f155ce9 (patch)
tree0dc30e8ddb227854de83fc9bc395cbc3285f34f2 /rts
parentddf8b805caafdfb5e3bbc3356aaed66af6f0b5e9 (diff)
downloadhaskell-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.c5
-rw-r--r--rts/GC.c2
-rw-r--r--rts/Interpreter.c2
-rw-r--r--rts/LdvProfile.c2
-rw-r--r--rts/Printer.c4
-rw-r--r--rts/ProfHeap.c4
-rw-r--r--rts/RetainerProfile.c16
-rw-r--r--rts/Sanity.c2
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
-
diff --git a/rts/GC.c b/rts/GC.c
index 967f48d817..66bb5dc487 100644
--- a/rts/GC.c
+++ b/rts/GC.c
@@ -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: