[Win32] VM update (3.2 release candidate)
Andreas Raab
Andreas.Raab at gmx.de
Mon May 6 22:57:57 UTC 2002
John,
> Note my benchmarks used a hand coded sqGnu.h and tampering with
> interp.c so I could really what was happening.
>
> So without any changes your assemble should look like so.
Okay, this is clearly a problem with currentBytecode not being in a
register. It seems that by default it's not in a register (which it
_really_ should since it makes a heck of a difference; I can only assume
that Ian's sqGnu.h doesn't define CB_REG for some reason) and somehow
your changes must have caused GCC to "get it right" by assigning it a
global register.
> >The only difference to the current code is that rather than using
> >"fum+80" it's using _receiver explicitly. No big difference
> >(although I would expect the immediate global access to be faster).
>
> Well that gets into what happens when you bench the VM.
>
> The real way to find out is to build a new interp.c, or I'll send you
> one with global structures on?
Na, thanks. Not enough interest at this point. BTW, I would guess that
any difference in speed is more likely to be due to a different layout
of the variables (e.g., certain heavily used globals falling into the
same cache lines etc). I thought about this issue before - unfortunately
it's hard to measure the "average rate" of accessing the globals in
interp.c.
Cheers,
- Andreas
More information about the Squeak-dev
mailing list
|