[MLton-commit] r4205

Matthew Fluet MLton@mlton.org
Fri, 11 Nov 2005 19:11:52 -0800


Eliminate skipObjects loop in forwardInterGenerationalObjptrs
----------------------------------------------------------------------

U   mlton/branches/on-20050822-x86_64-branch/runtime/gc/done.c
U   mlton/branches/on-20050822-x86_64-branch/runtime/gc/forward.c
U   mlton/branches/on-20050822-x86_64-branch/runtime/gc/init.c
U   mlton/branches/on-20050822-x86_64-branch/runtime/gc/statistics.h

----------------------------------------------------------------------

Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/done.c
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/runtime/gc/done.c	2005-11-12 02:53:20 UTC (rev 4204)
+++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/done.c	2005-11-12 03:11:49 UTC (rev 4205)
@@ -84,8 +84,6 @@
              uintmaxToCommaString (s->cumulativeStatistics.markedCards));
     fprintf (out, "minor scanned: %s bytes\n",
              uintmaxToCommaString (s->cumulativeStatistics.minorBytesScanned));
-    fprintf (out, "minor skipped: %s bytes\n", 
-             uintmaxToCommaString (s->cumulativeStatistics.minorBytesSkipped));
   }
   releaseHeap (s, &s->heap);
   releaseHeap (s, &s->secondaryHeap);

Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/forward.c
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/runtime/gc/forward.c	2005-11-12 02:53:20 UTC (rev 4204)
+++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/forward.c	2005-11-12 03:11:49 UTC (rev 4205)
@@ -194,21 +194,12 @@
   assert (objectStart < oldGenStart + cardMapIndexToSize (cardIndex + 1));
   if (cardMap[cardIndex]) {
     pointer lastObject;
-    size_t size;
     
     s->cumulativeStatistics.markedCards++;
     if (DEBUG_GENERATIONAL)
       fprintf (stderr, "card %zu is marked  objectStart = "FMTPTR"\n", 
                cardIndex, (uintptr_t)objectStart);
-    lastObject = objectStart;
-skipObjects:
     assert (isFrontierAligned (s, objectStart));
-    size = sizeofObject (s, advanceToObjectData (s, objectStart));
-    if (objectStart + size < cardStart) {
-      objectStart += size;
-      goto skipObjects;
-    }
-    s->cumulativeStatistics.minorBytesSkipped += objectStart - lastObject;
     cardEnd = cardStart + CARD_SIZE;
     if (oldGenEnd < cardEnd) 
       cardEnd = oldGenEnd;

Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/init.c
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/runtime/gc/init.c	2005-11-12 02:53:20 UTC (rev 4204)
+++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/init.c	2005-11-12 03:11:49 UTC (rev 4205)
@@ -249,7 +249,6 @@
   s->cumulativeStatistics.maxHeapSizeSeen = 0;
   s->cumulativeStatistics.maxStackSizeSeen = 0;
   s->cumulativeStatistics.minorBytesScanned = 0;
-  s->cumulativeStatistics.minorBytesSkipped = 0;
   s->cumulativeStatistics.numLimitChecks = 0;
   s->cumulativeStatistics.numCopyingGCs = 0;
   s->cumulativeStatistics.numHashConsGCs = 0;

Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/statistics.h
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/runtime/gc/statistics.h	2005-11-12 02:53:20 UTC (rev 4204)
+++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/statistics.h	2005-11-12 03:11:49 UTC (rev 4205)
@@ -19,7 +19,6 @@
   size_t maxStackSizeSeen;
 
   uintmax_t minorBytesScanned;
-  uintmax_t minorBytesSkipped;
 
   uintmax_t numLimitChecks;