[Vm-dev] VM Maker: VMMaker-oscog.47.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Sun Feb 6 18:53:40 UTC 2011


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://www.squeaksource.com/VMMaker/VMMaker-oscog.47.mcz

==================== Summary ====================

Name: VMMaker-oscog.47
Author: eem
Time: 6 February 2011, 9:43:10 am
UUID: a4053f20-cb87-415d-aad3-3bb29b03724c
Ancestors: VMMaker-eem.718, VMMaker-oscog.46

Move the genExternalizePointersForPrimitiveCall and
genLoadCStackPointersForPrimCall to the front of
compileInterpreterPrimitive so that
a) reg args are pushed before any calls, and
b) ceCheckProfileTick is run on the C stack.
The first fixes the StackToRegisterBasedCogit's crash when profiling.
The second is safer than running it on a Smalltalk stack page.

Fix simulation of the profling machinery (to debug the above).

Fix mapping for backward branches which must of course map to
themselves, otherwise the VM can break out of loops prematurely.

Bring StackInterpreter generation up to date (less labelling, vmCallback).

zero instuctions on recompiling block after numInitialNils mis-estimation.

More methods for the in-image facade for compiling quick prims.

Both Cogits
	Fix pc mapping once and for all.  Tests allow compiling all
	methods in current image and testing all mapped bcpcs and
	mcpcs map and map ack correctly.

	Fix bad bug with jump fixups that caused some fixups to be
	missed (error in the index used to define the range of valid
	fixup adresses).

StackToRegisterMappingCogit
	Fix bug in addBlockStartAt:numArgs:numCopied:span: that
	caused one block entry to be omitted when some block was
	recompiled due to initialNil misestimation.

	As part of pc mapping fixing add an annotateUse flag to
	sim stack entries so that the eliminated send in a folded
	constant still gets a pc map entry.

CoInterpreter
	Fix bug in checkLogIntegrity for an empty log.
	Safety in activation printing (for backtraces etc).
	
SImulator
	Run quitBlock on closing simulator window.

StackToRegisterMappingCogit:
	Fix bug in repeated block compilation for initial nil handling.
	Repeated attempts to insert the same block start are filtered out
	instead of repeating all block inserts (which doesn't work).

	Fix bad bug in frameless block entry.  Don't use
	initSimStackForFramelessMethod:!

	Add a target fixup for a conditional jump even if it is a jump on
	true or false since the simStack must still be valid for merges.

	Nuke as-yet-unused merge state in CogSSBytecodeFixup.

	Add a subclass using image facilities to compute numnitialNils
	correctly to compare against repeated block compilation.

CoInterpreter:
	comment an apparently unsent method to stop me from deleting it.


Fix StackToRegisterMappingCogit being confused by initial pushNils
in blocks that provide parameters rather than initialize temps by
tracking stack depth and recompiling if the depth is wrong at the end
of the block.  Do this by refactoring compileMethodBody into
compileEntireMethod et al.

Fix atCache leakage for super sends in machine code by assigning
to lkupClass (since commonAt:[put:] use lkupClass to filter-out
super sends).

Simulator fixes and tidyups.



More information about the Vm-dev mailing list