[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