=?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]
