VM Maker: VMMaker.oscog-eem.2054.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2054.mcz

commits-2
 
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!