=?ISO-8859-1?Q?Jorge_Acereda_Maci=E1?= wrote:
> > The benchmarks you refer to are not for 0.6.1, but for 0.5.0.  This new
> > version does not have near as much (if any) penalty for using gcc 3.1.
> 
> Why? Superinstructions? Do you have benchmark results?

We have managed to work around or eliminate the bad code generation of
gcc >=2.96 by using -fno-gcse and by reorganizing the code somewhat.

However, with gcc-3.2 (and probably also 3.1) a new problem arose:
this version performs the cross-jumping optimization, which inhibits
Gforth's dynamic superinstructions.  You can see this in the following
way:

gforth-fast --debug -e bye 2>&1 |grep non_reloc|wc -l

which produces the number of primitives that cannot be integrated into
dynamic superinstructions.  On the i386 architecture, this produces 68
for gforth-fast built with gcc-2.95.1, and 120 for gforth-fast built
with gcc-3.2 (out of 327).

On PPC-Darwin, this produces 101 for gforth-fast built with
gcc-2.95.2.

Anyway, my feeling is that, for best results, use gcc-2.95 on i386.
On PPC, also use gcc-2.95.  If you care about double speed, try
gcc-3.0.x and configure with ac_cv_sizeof_long_long=8 (gcc-2.95 has at
least one bug in the long long implementation on PPC, so I disabled
using long longs on PPC).

- anton

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to