Yeap, I was right, using gcc 3.0.2 you can see the difference: Without my patch:
linux# ./test_prog examples/assembly/mops.pbc Iterations: 100000000 Estimated ops: 300000000 Elapsed time: 20.972973 M op/s: 14.304124 With the patch: linux# ./test_prog examples/assembly/mops.pbc Iterations: 100000000 Estimated ops: 300000000 Elapsed time: 8.983514 M op/s: 33.394505 Now I'm really happy :) So, you can say that we can't ask everyone to have gcc 3.0.2, right? but we can let them download the binaries. Daniel Grunblatt. On Sun, 4 Nov 2001, Daniel Grunblatt wrote: > Yes, you are right on that, but that is only on linux, not on *BSD (where > I tried it). I still don't know why is these, Can you try using gcc 3.0.2? > > For the compiled version, please read both mops.c you will see there is no > difference except for the definition of the array which if no missing > something doesn't have anything to with the _benchmark_. > > Daniel Grunblatt. > > On Sun, 4 Nov 2001, Tom Hughes wrote: > > > In message <[EMAIL PROTECTED]> > > Daniel Grunblatt <[EMAIL PROTECTED]> wrote: > > > > > All: > > > Here's a list of the things I've been doing: > > > > > > * Added ops2cgc.pl which generates core_cg_ops.c and core_cg_ops.h from > > > core.ops, and modified Makefile.in to use it. In core_cg_ops.c resides > > > cg_core which has an array with the addresses of the label of each opcode > > > and starts the execution "jumping" to the address in array[*cur_opcode]. > > > > > > * Modified interpreter.c to include core_cg_ops.h > > > > > > * Modified runcore_ops.c to discard the actual dispatching method and call > > > cg_core, but left everything else untouched so that -b,-p and -t keep > > > working. > > > > > > * Modified pbc2c.pl to use computed goto when handling jump or ret, may be > > > I can modified this once again not to define the array with the addresses > > > if it's not going to be used but I don't think that in real life a program > > > won't use jump or ret, am I right? > > > > > > Hope some one find this usefull. > > > > I just tried it but I don't seem to be seeing anything like the speedups > > you are. All the times which follow are for a K6-200 running RedHat 7.2 and > > compiled -O6 with gcc 2.96. > > > > Without patch: > > > > gosford [~/src/parrot] % ./test_prog examples/assembly/mops.pbc > > Iterations: 100000000 > > Estimated ops: 300000000 > > Elapsed time: 37.387179 > > M op/s: 8.024141 > > > > gosford [~/src/parrot] % ./examples/assembly/mops > > Iterations: 100000000 > > Estimated ops: 300000000 > > Elapsed time: 3.503482 > > M op/s: 85.629098 > > > > With patch: > > > > gosford [~/src/parrot-cg] % ./test_prog examples/assembly/mops.pbc > > Iterations: 100000000 > > Estimated ops: 300000000 > > Elapsed time: 29.850361 > > M op/s: 10.050130 > > > > gosford [~/src/parrot-cg] % ./examples/assembly/mops > > Iterations: 100000000 > > Estimated ops: 300000000 > > Elapsed time: 4.515596 > > M op/s: 66.436413 > > > > So there is a small speed up for the interpreted version, but nothing > > like the three times speedup you had. The compiled version has actually > > managed to get slower... > > > > Tom > > > > -- > > Tom Hughes ([EMAIL PROTECTED]) > > http://www.compton.nu/ > > > > > >