[Vm-dev] VM Maker: VMMaker-dtl.344.mcz

David T. Lewis lewis at mail.msen.com
Wed Mar 12 18:19:32 UTC 2014


On Wed, Mar 12, 2014 at 10:39:51AM -0700, Eliot Miranda wrote:
> Hi David,
> 
> On Wed, Mar 12, 2014 at 10:09 AM, <commits at source.squeak.org> wrote:
> 
> > David T. Lewis uploaded a new version of VMMaker to project VM Maker:
> > http://source.squeak.org/VMMaker/VMMaker-dtl.344.mcz
> >
> > ==================== Summary ====================
> >
> > Name: VMMaker-dtl.344
> > Author: dtl
> > Time: 12 March 2014, 12:57:02.35 pm
> > UUID: d27f9db0-776a-4a76-aa71-2fc4aaa4885a
> > Ancestors: VMMaker-dtl.343
> >
> > VMMaker 4.13.4
> >
> > Fix slang inlining regression introduced in VMMaker-dtl.339 caused by
> > TMethod>>tryToInlineMethodsIn: that excluded nodes with selector
> > #cCode:inSmalltalk: which must remain inlineable to support various methods
> > for 32/64 bit image format from common code base, as well as for low level
> > MemoryAccess in slang that must be fully inlined for performance.
> >
> 
> I don't think that's the way to fix this.  Look at
> Cog's MessageNode>>#asTranslatorNodeIn: and you'll see the phrase:
> 
> ((sel == #cCode:inSmalltalk: "extracting here rather than in translation
> allows inlining in the block."
>   or: [sel == #cCode:])
>  and: [arguments first isBlockNode]) ifTrue:
> [| block |
>  ^(block := arguments first asTranslatorNodeIn: aTMethod) statements size =
> 1
> ifTrue: [block statements first]
> ifFalse: [block]].
> 
> This inlines early and always (before CCodeGenerator inlines), which neatly
> arranges that the rest of CCodeGenerator has less work to do.
> 
> 

Thanks Eliot, I will look into this as soon as I can.

Dave



More information about the Vm-dev mailing list