remove unused includes, now that Storage.h & Stable.h are included by Rts.h
[ghc-hetmet.git] / rts / Profiling.c
index 028dc5a..a865078 100644 (file)
@@ -13,7 +13,6 @@
 #include "RtsUtils.h"
 #include "RtsFlags.h"
 #include "Profiling.h"
-#include "Storage.h"
 #include "Proftimer.h"
 #include "Timer.h"
 #include "ProfHeap.h"
 
 #include <string.h>
 
+#ifdef DEBUG
+#include "Trace.h"
+#endif
+
 /*
  * Profiling allocation arena.
  */
@@ -277,13 +280,13 @@ initProfilingLogFile(void)
     if (RtsFlags.CcFlags.doCostCentres == COST_CENTRES_XML) {
        /* dump the time, and the profiling interval */
        fprintf(prof_file, "\"%s\"\n", time_str());
-       fprintf(prof_file, "\"%d ms\"\n", TICK_MILLISECS);
+       fprintf(prof_file, "\"%d ms\"\n", RtsFlags.MiscFlags.tickInterval);
        
        /* declare all the cost centres */
        {
            CostCentre *cc;
            for (cc = CC_LIST; cc != NULL; cc = cc->link) {
-               fprintf(prof_file, "%d %d \"%s\" \"%s\"\n",
+               fprintf(prof_file, "%d %ld \"%s\" \"%s\"\n",
                        CC_UQ, cc->ccID, cc->label, cc->module);
            }
        }
@@ -353,11 +356,12 @@ CostCentreStack *
 PushCostCentre ( CostCentreStack *ccs, CostCentre *cc )
 #define PushCostCentre _PushCostCentre
 {
-  IF_DEBUG(prof, 
-          debugBelch("Pushing %s on ", cc->label);
-          debugCCS(ccs);
-          debugBelch("\n"));
-  return PushCostCentre(ccs,cc);
+    IF_DEBUG(prof,
+            traceBegin("pushing %s on ", cc->label);
+            debugCCS(ccs);
+            traceEnd(););
+            
+    return PushCostCentre(ccs,cc);
 }
 #endif
 
@@ -533,10 +537,10 @@ DecCCS(CostCentreStack *ccs)
 {
   if (prof_file && RtsFlags.CcFlags.doCostCentres == COST_CENTRES_XML) {
     if (ccs->prevStack == EMPTY_STACK)
-      fprintf(prof_file, "%d %d 1 %d\n", CCS_UQ, 
+      fprintf(prof_file, "%d %ld 1 %ld\n", CCS_UQ, 
              ccs->ccsID, ccs->cc->ccID);
     else
-      fprintf(prof_file, "%d %d 2 %d %d\n", CCS_UQ, 
+      fprintf(prof_file, "%d %ld 2 %ld %ld\n", CCS_UQ, 
              ccs->ccsID, ccs->cc->ccID, ccs->prevStack->ccsID);
   }
 }
@@ -546,10 +550,10 @@ DecBackEdge( CostCentreStack *ccs, CostCentreStack *oldccs )
 {
   if (prof_file && RtsFlags.CcFlags.doCostCentres == COST_CENTRES_XML) {
     if (ccs->prevStack == EMPTY_STACK)
-      fprintf(prof_file, "%d %d 1 %d\n", CCS_UQ, 
+      fprintf(prof_file, "%d %ld 1 %ld\n", CCS_UQ, 
              ccs->ccsID, ccs->cc->ccID);
     else
-      fprintf(prof_file, "%d %d 2 %d %d\n", CCS_UQ, 
+      fprintf(prof_file, "%d %ld 2 %ld %ld\n", CCS_UQ, 
              ccs->ccsID, ccs->cc->ccID, oldccs->ccsID);
   }
 }
@@ -663,7 +667,8 @@ report_per_cc_costs( void )
          );
       
       if (RtsFlags.CcFlags.doCostCentres >= COST_CENTRES_VERBOSE) {
-       fprintf(prof_file, "  %5llu %9llu", (StgWord64)(cc->time_ticks), cc->mem_alloc);
+       fprintf(prof_file, "  %5" FMT_Word64 " %9" FMT_Word64,
+               (StgWord64)(cc->time_ticks), cc->mem_alloc);
       }
       fprintf(prof_file, "\n");
   }
@@ -730,8 +735,10 @@ reportCCSProfiling( void )
     fprintf(prof_file, "\n\n");
 
     fprintf(prof_file, "\ttotal time  = %11.2f secs   (%lu ticks @ %d ms)\n",
-           total_prof_ticks / (StgFloat) TICK_FREQUENCY, 
-           total_prof_ticks, TICK_MILLISECS);
+           (double) total_prof_ticks *
+        (double) RtsFlags.MiscFlags.tickInterval / 1000,
+           (unsigned long) total_prof_ticks,
+        (int) RtsFlags.MiscFlags.tickInterval);
 
     fprintf(prof_file, "\ttotal alloc = %11s bytes",
            ullong_format_string(total_alloc * sizeof(W_),
@@ -768,7 +775,7 @@ reportCCS(CostCentreStack *ccs, nat indent)
     fprintf(prof_file, "%-*s%-*s %-50s", 
            indent, "", 24-indent, cc->label, cc->module);
 
-    fprintf(prof_file, "%6d %11.0f %5.1f  %5.1f   %5.1f  %5.1f",
+    fprintf(prof_file, "%6ld %11.0f %5.1f  %5.1f   %5.1f  %5.1f",
            ccs->ccsID, (double) ccs->scc_count, 
            total_prof_ticks == 0 ? 0.0 : ((double)ccs->time_ticks / (double)total_prof_ticks * 100.0),
            total_alloc == 0 ? 0.0 : ((double)ccs->mem_alloc / (double)total_alloc * 100.0),
@@ -777,7 +784,8 @@ reportCCS(CostCentreStack *ccs, nat indent)
            );
 
     if (RtsFlags.CcFlags.doCostCentres >= COST_CENTRES_VERBOSE) {
-      fprintf(prof_file, "  %5llu %9llu", (StgWord64)(ccs->time_ticks), ccs->mem_alloc*sizeof(W_));
+      fprintf(prof_file, "  %5" FMT_Word64 " %9" FMT_Word64, 
+             (StgWord64)(ccs->time_ticks), ccs->mem_alloc*sizeof(W_));
 #if defined(PROFILING_DETAIL_COUNTS)
       fprintf(prof_file, "  %8ld %8ld %8ld %8ld %8ld %8ld %8ld",
              ccs->mem_allocs, ccs->thunk_count,
@@ -879,8 +887,6 @@ gen_XML_logfile( void )
   reportCCS_XML(pruneCCSTree(CCS_MAIN));
 
   fprintf(prof_file, " 0\n");
-
-  fclose(prof_file);
 }
 
 static void 
@@ -893,7 +899,7 @@ reportCCS_XML(CostCentreStack *ccs)
 
   cc = ccs->cc;
   
-  fprintf(prof_file, " 1 %d %llu %llu %llu", 
+  fprintf(prof_file, " 1 %ld %" FMT_Word64 " %" FMT_Word64 " %" FMT_Word64, 
          ccs->ccsID, ccs->scc_count, (StgWord64)(ccs->time_ticks), ccs->mem_alloc);
 
   for (i = ccs->indexTable; i != 0; i = i->next) {