Re: -fno-strength-reduce

Arvind Sankar (arvinds@mit.edu)
Fri, 22 Jan 1999 10:12:49 -0500


On Fri, Jan 22, 1999 at 12:30:25PM +0100, Florian Weimer wrote:
> On Fri 1999-01-22 (02:18), Arvind Sankar wrote:
>
> > Why is this option given to the compiler?
>
> Older gcc versions produce incorrect code without it. In the 2.7.x
> series, the option was disabled by default at some point
> (strength-reduce is always off), so the option is a no-op with those
> compilers (and no different code is generated). I don't know for sure
> whether the strength-reduction bug has really been fixed in gcc-2.8.x
> or egcs (not simply by disabling the option).

>From egcs-1.1.1/gcc/toplev.c:
if (optimize >= 2)
{
...
flag_strength_reduce = 1;
...

So it has certainly been turned back on. I'm currently running 2.2.0pre9
compiled with some dangerous flags:
-march=i686 -mcpu=i686 (dangerous because there are some known bugs in
egcs with the pentiumpro stuff)
and I also have -fstrength-reduce (implicitly)

Haven't frozen up yet, but then maybe I'm not doing the right (wrong?)
stuff :-)

btw, another question along these lines: how much should the alignment
specs be? The defaults are bigger than what are currently specified
(currently they are 32 bit alignment for loops, jumps and functions).
The default is 64-bit on i486 and up, and if gas >= 2.8 is used (likely)
then it is either 64-bit or 128-bit if you are less than 64 bits from
a 128-bit boundary. Wouldn't 64-bit alignment be faster for Ppros?

-- arvind

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/