[Vm-dev] Interpreter>>isContextHeader: optimization

David T. Lewis lewis at mail.msen.com
Mon Feb 23 12:39:23 UTC 2009


On Mon, Feb 23, 2009 at 07:05:39AM +0200, Igor Stasenko wrote:
> 
> i never took a look how method inliner works in code generator. But
> some of its discrepancies is a pain.
> Like unable to inline a method which having cCode, or c variables
> declarations/definitions.

I think I forgot to put this on Mantis (sorry), but look at VMMaker-dtl.103
on SqueakSource for the changes that allow inlining methods with embedded C
code:

   Name: VMMaker-dtl.103
   Author: dtl
   Time: 24 September 2008, 11:23:59 pm
   UUID: b4f365aa-e032-49eb-83ca-11526fd5101e
   Ancestors: VMMaker-dtl.97
   
   VMMaker 3.9.1
   Supports #inline: directive for methods containing embedded C code (#cCode:).
   This includes fixes for Slang generation, case statement translation to C in
   the interp() loop, and various type declaration cleanups.
   
   Low level methods with embedded C may now be inlined and translated, permitting
   functions that previously required external support code and C macros to be
   directly implemented in Slang.
   
   A remaining caveat is that methods with #cCode: strings with references to
   method parameters must not request inlining, as the inliner may rename method
   parameters such that they no longer match variable names in the embedded C.

Dave



More information about the Vm-dev mailing list