[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