summaryrefslogtreecommitdiff
path: root/rts/RetainerProfile.c
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/RetainerProfile.c
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/RetainerProfile.c')
-rw-r--r--rts/RetainerProfile.c16
1 files changed, 1 insertions, 15 deletions
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