[Vm-dev] CogVM performance

Eliot Miranda eliot.miranda at gmail.com
Wed May 20 14:55:35 UTC 2015


Hi Henry,

On Wed, May 20, 2015 at 5:41 AM, Henrik Johansen <
henrik.s.johansen at veloxit.no> wrote:

>
> Could it be related to the change in 1166 to use XCHG between register/mem
> locations instead of a MOV to a (now unavailable) temp register in
> genPushRegisterArgsForNumArgs:?
> According to http://www.agner.org/optimize/instruction_tables.pdf , XCHG
> with m/r operands has major penalties on most platforms compared to m/r
> MOV, which would be a problem if it's used for a large percent of sends...
>

I think you're right, but I'll check.  The XCHG is only needed on certain
two-argument sends, where we're short a register (I can't remember the
details right now).  I'll see if I can use XCHG less.


> Cheers,
> Henry
>
> On 20 May 2015, at 3:07 , David T. Lewis <lewis at mail.msen.com> wrote:
>
>
> The generated source files have a comment block that indicate the VMMaker
> sources from which they were generated. The SVN 3306 src files came from
> VMMaker.oscog-eem.1155, and the SVN 3308 src files were generated from
> VMMaker.oscog-eem.1178. The changes that produce the performances
> difference
> will be found somewhere in the VMMaker commits it that range.
>
> Dave
>
>
> On Tue, May 19, 2015 at 10:40:15PM +0200, Levente Uzonyi wrote:
>
>
> And after that I checked out 3308 of src, and rebuilt the VM again:
>
> '934306569 bytecodes/sec; 46368169 sends/sec'
>
> The files which were changed from 3306 to 3308 are:
>
> U    src/vm/cointerp.c
> U    src/vm/cointerpmt.c
> U    src/vm/cogit.c
> U    src/vm/cointerp.h
> U    src/vm/gcc3x-cointerp.c
> U    src/vm/cointerpmt.h
> U    src/vm/gcc3x-cointerpmt.c
> U    src/vm/cogit.h
> U    src/plugins/QuicktimePlugin/QuicktimePlugin.c
>
> Levente
>
> On Tue, 19 May 2015, Levente Uzonyi wrote:
>
>
> The difference is somewhere in the sources. I just checked out revision
> 3306 of the src directory, and rebuilt a CogVM (ht one, and kept the
> platform files at 3345. I used some extra CFLAGS which are responsible for
> the higher bytecodes/sec, ignore that.). It gives the following:
>
> '941176470 bytecodes/sec; 122927085 sends/sec'
>
> While 3343 gives:
>
> '896672504 bytecodes/sec; 46102703 sends/sec'
>
> Levente
>
>
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20150520/1dbcc683/attachment.htm


More information about the Vm-dev mailing list