On Fri, Feb 10, 2017 at 2:02 AM, commits@source.squeak.org wrote:
Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscogSPC-eem.2126.mcz
==================== Summary ====================
Name: VMMaker.oscogSPC-eem.2126 Author: eem Time: 9 February 2017, 10:01:28.598009 am UUID: 25551143-fc0d-478f-a483-6df83405e90a Ancestors: VMMaker.oscogSPC-eem.2125
Cogit: Refactor fixupAt: & initializeFixupAt: to take bytecode PCs not indexes. Add fixupAtIndex: as the method that takes an index.
=============== Diff against VMMaker.oscogSPC-eem.2125 ===============
- !Cogit commentStamp: 'eem 2/9/2017 10:01' prior: 0!
!Cogit commentStamp: 'eem 4/6/2015 15:56' prior: 0! I am the code generator for the Cog VM. My job is to produce machine code versions of methods for faster execution and to manage inline caches for faster send performance. I can be tested in the current image using my class-side in-image compilation facilities. e.g. try
StackToRegisterMappingCogit genAndDis: (Integer >> #benchFib)
I have concrete subclasses that implement different levels of optimization: SimpleStackBasedCogit is the simplest code generator.
StackToRegisterMappingCogit is the current production code generator It defers pushing operands to the stack until necessary and implements a register-based calling convention for low-arity sends. StackToRegisterMappingCogit is an experimental code generator with support for counting conditional branches, intended to support adaptive optimization
Should StackToRegisterMappingCogit be duplicated twice there?
cheers -ben