VM Maker: VMMaker-oscog.47.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.47.mcz

squeak-dev-noreply
 
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.