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

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Thu Dec 30 22:04:13 UTC 2010


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

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

Name: VMMaker-oscog.40
Author: eem
Time: 30 December 2010, 12:37:41 pm
UUID: 637db40c-33c6-4263-816e-1b8cc19e3c99
Ancestors: VMMaker-eem.685, VMMaker-oscog.37

New StackToRegisterMappingCogit that produces significantly more efficient and more compact code.
Benefits vary widely based on work-load.
e.g on 2.66 GHz Core i7 MacBook Pro

SimpleStackBasedCogit: [1 to: 100000000 do: [:i|]] timeToRun 691
StackToRegisterMappingCogit: [1 to: 100000000 do: [:i|]] timeToRun 192
192 - 691 / 6.91 -72%

SimpleStackBasedCogit: 0 tinyBenchmarks '753495217 bytecodes/sec; 64769127 sends/sec'
StackToRegisterMappingCogit: 0 tinyBenchmarks '931756141 bytecodes/sec; 128157989 sends/sec'
931756141 - 753495217 / 7534952.17 -24%
128157989 - 64769127 / 647691.27 -98%

SimpleStackBasedCogit: [Compiler recompileAll] timeToRun 47013 (no transcript
StackToRegisterMappingCogit: [Compiler recompileAll] timeToRun 43406 (no transcript)
43406 - 47013 / 470.13 -7.67234594686576

Fix bug in pc mapping in blocks.  An ^-return in a block has both
 a pc map entry and a CallRT map entry because of the call to
ceNonLocalReturn.  Hence the bytecode descriptors need to
reflect this.  The old code didn't know this and hence pc mapping
was wrong for pcs following an ^-return in a block. 

Non-threaded callbacks.
Implement legacy sendInvokeCallback:Stack:Registers:Jmpbuf: style.
Provide a more general new style that avoids 64-bit limitations.
VMCallbackContext includes all the necessary state for a
callback, so the new arg count can be 1 (and is in interp.h).
New sendInvokeCallbackContext will work with either old
Alien class>invokeCallback:stack:registers:jmpbuf: entry-point
or new Alien class>invokeCallbackContext:.

Other fixes described in the history.



More information about the Vm-dev mailing list