[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