[Vm-dev] [Cog] Strange inliner behavior
Igor Stasenko
siguctua at gmail.com
Sun Jul 31 03:49:40 UTC 2011
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.
--
Best regards,
Igor Stasenko AKA sig.
More information about the Vm-dev
mailing list