[Vm-dev] [Cog] Strange inliner behavior
David T. Lewis
lewis at mail.msen.com
Sun Jul 31 13:07:41 UTC 2011
On Sun, Jul 31, 2011 at 05:49:40AM +0200, Igor Stasenko wrote:
>
> Here the slang code:
>
> size := self sizeBitsOf: op1.
> size = (self sizeBitsOf: op2) ifFalse: [
> ^ false ].
>
> And here translated code:
>
> /* begin sizeBitsOf: */
> header = longAt(op1);
> size = ((header & TypeMask) == HeaderTypeSizeAndClass
> ? (longAt(op1 - (BytesPerWord * 2))) & LongSizeMask
> : header & SizeMask);
> if (!(size == (sizeBitsOf(op2)))) {
> return 0;
> }
>
> as you can see it inlining first, but refuses to inline second one.
>
It looks like a bug, but it is not related to Cog. I get the same
results using VMMaker trunk.
Dave
More information about the Vm-dev
mailing list