[project @ 2000-04-03 15:54:49 by simonmar]
[ghc-hetmet.git] / ghc / rts / ProfHeap.c
index 9bb10ae..cefdc42 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: ProfHeap.c,v 1.4 2000/03/07 11:53:12 simonmar Exp $
+ * $Id: ProfHeap.c,v 1.10 2000/04/03 15:54:49 simonmar Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
 #include "Rts.h"
 #include "RtsUtils.h"
 #include "RtsFlags.h"
-#include "ProfRts.h"
+#include "Profiling.h"
 #include "Storage.h"
 #include "ProfHeap.h"
 #include "Stats.h"
-#include "ProfRts.h"
 #ifdef DEBUG_HEAP_PROF
 #include "Printer.h"
 static void initSymbolHash(void);
@@ -33,7 +32,13 @@ static void fprint_data(FILE *fp);
 char prof_filename[128];       /* urk */
 
 #ifdef DEBUG_HEAP_PROF
-void initProfiling( void )
+FILE *prof_file;
+
+void initProfiling1( void )
+{
+}
+
+void initProfiling2( void )
 {
   initHeapProfiling();
 }
@@ -264,7 +269,9 @@ clearCCSResid(CostCentreStack *ccs)
   ccs->mem_resid = 0;
 
   for (i = ccs->indexTable; i != 0; i = i->next) {
-    clearCCSResid(i->ccs);
+    if (!i->back_edge) {
+      clearCCSResid(i->ccs);
+    }
   }
 }
 
@@ -278,7 +285,7 @@ fprint_ccs(FILE *fp, CostCentreStack *ccs, nat components)
   prev = ccs->prevStack;
 
   if (prev == NULL
-      || prev->cc->is_subsumed != CC_IS_BORING
+      || prev->cc->is_caf != CC_IS_BORING
       || components == 1) { 
     fprintf(fp,"%s",cc->label);
     return; 
@@ -301,7 +308,9 @@ reportCCSResid(FILE *fp, CostCentreStack *ccs)
   }
 
   for (i = ccs->indexTable; i != 0; i = i->next) {
-    reportCCSResid(fp,i->ccs);
+    if (!i->back_edge) {
+      reportCCSResid(fp,i->ccs);
+    }
   }
 }
 #endif
@@ -321,7 +330,10 @@ heapCensus(void)
     clear_table_data();
     break;
   case HEAP_BY_CLOSURE_TYPE:
+#if 0
+#   error fix me      
     memset(closure_types, 0, N_CLOSURE_TYPES * sizeof(nat));
+#endif
     break;
   default:
     return;
@@ -386,8 +398,6 @@ heapCensus(void)
       case FUN_1_1:
       case FUN_0_2:
       case FUN_2_0:
-      case THUNK_1_0:
-      case THUNK_0_1:
       case THUNK_1_1:
       case THUNK_0_2:
       case THUNK_2_0:
@@ -399,6 +409,8 @@ heapCensus(void)
        size = sizeW_fromITBL(info);
        break;
        
+      case THUNK_1_0:          /* ToDo - shouldn't be here */
+      case THUNK_0_1:          /* "  ditto  " */
       case THUNK_SELECTOR:
        size = sizeofW(StgHeader) + MIN_UPD_SIZE;
        break;