[Vm-dev] VM Maker: VMMaker.oscog-eem.2054.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Dec 27 21:03:30 UTC 2016
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2054.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2054
Author: eem
Time: 27 December 2016, 1:02:47.238029 pm
UUID: 43b2e0a0-dfbf-4e89-9372-0611324eb20f
Ancestors: VMMaker.oscog-eem.2053
SpurPlanningCompactor:
Move the initial scan for firstFreeObject and firstMobileObject to the earliest point and hence bail out when the heap is already compacted.
=============== Diff against VMMaker.oscog-eem.2053 ===============
Item was changed:
----- Method: SpurPlanningCompactor>>compact (in category 'compaction - api') -----
compact
"Sweep all of old space, sliding unpinned marked objects down over free and unmarked objects.
Let the segmentManager mark which segments contain pinned objects via notePinned:."
| onePass |
<inline: #never> "for profiling"
+ self initializeScanCheckingForFullyCompactedHeap ifTrue:
+ [^self unmarkObjectsInFullyCompactedHeap].
+ self initializeCompaction.
- self initializeCompaction;
- initializeScan.
[onePass := self planCompactSavingForwarders.
self updatePointers.
self copyAndUnmark.
manager checkFreeSpace: GCModeFull.
onePass or: [biasForGC]] whileFalse:
[self reinitializeScan;
updateSavedFirstFieldsSpaceIfNecessary].
self endCompaction!
Item was changed:
----- Method: SpurPlanningCompactor>>initializeCompaction (in category 'compaction') -----
initializeCompaction
manager checkFreeSpace: GCModeFull.
self selectSavedFirstFieldsSpace.
self unpinRememberedSet.
manager
resetFreeListHeads;
totalFreeOldSpace: 0;
+ beginSlidingCompaction.
+ savedFirstFieldsSpace top: savedFirstFieldsSpace start - manager bytesPerOop!
- beginSlidingCompaction!
Item was removed:
- ----- Method: SpurPlanningCompactor>>initializeScan (in category 'compaction') -----
- initializeScan
- savedFirstFieldsSpace top: savedFirstFieldsSpace start - manager bytesPerOop.
- firstFreeObject := manager hiddenRootsObject.
- self reinitializeScan!
Item was added:
+ ----- Method: SpurPlanningCompactor>>initializeScanCheckingForFullyCompactedHeap (in category 'compaction') -----
+ initializeScanCheckingForFullyCompactedHeap
+ "Scan for firstFreeObject and firstMobileObject from the start of memory.
+ Answer if the heap is already fully compacted."
+ firstFreeObject := manager hiddenRootsObject.
+ self reinitializeScan.
+ ^firstMobileObject >= manager endOfMemory!
Item was added:
+ ----- Method: SpurPlanningCompactor>>unmarkObjectsInFullyCompactedHeap (in category 'compaction') -----
+ unmarkObjectsInFullyCompactedHeap
+ self unmarkInitialImmobileObjects.
+ manager unmarkSurvivingObjectsForCompact!
More information about the Vm-dev
mailing list