[Win32] VM Update for 2.7/2.8
Raab, Andreas
Andreas.Raab at disney.com
Wed May 24 19:18:15 UTC 2000
Bert,
> > Well, the "1 tinyBenchmarks" numbers are quite impressive. I get
> > about 12% speedup in message sends and 70% in bytecodes.
>
> Andreas: do these speedups only come from Ian's label-goto-hack in the
> interpreter loop?
Mainly two things: Explicit register assignment for interpret() (wins BIG on
Intel) as well as the labeled gotos. I've not (yet) come around to
automatically generate inlined versions of #sendLiteralSelectorBytecode (on
MSVC that gave another 10% in boost) since unfortunately EGCS' CSE pass is
sometimes too clever. It eliminates common expressions that would be faster
if not eliminated, such as
movl _method, %eax
movl 4(%eax), %eax
movl %eax, _messageSelector
jmp L1234
...
L1234:
movl $0, _argumentCount
jmp commonSend
Anyone out there knowing how to instruct EGCS to make a tradeoff in speed
vs. space in CSE?! I'm also trying to look into a couple of other issues
that might be important - if anyone knows how to make EGCS forget about the
explicit register assignment in a couple of places (such as #commonSend) let
me know.
- A.
More information about the Squeak-dev
mailing list
|