This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Re: What is the future of gcc-2.95.3-prerelease ?
----- Original Message -----
From: "Zack Weinberg" <zackw@Stanford.EDU>
To: <tprinceusa@mindspring.com>
Cc: <gcc@gcc.gnu.org>
Sent: Thursday, February 15, 2001 4:15 PM
Subject: Re: Re: What is the future of gcc-2.95.3-prerelease ?
> Your message came through on one long line. Please fix your mail client.
I'm sorry, I must have been fooled by that mailer's autowrap into not
inserting hard returns.
>
> None of what you said gives me any idea of what the bug actually is,
> beyond some sort of problem with -march=pentiumpro -ffast-math and
> Cygwin. I see several reports in the gcc-bugs archive which seem to
> be related to that combination of options, but I do not know which is
> yours, or whether they've been fixed. I'm going to assume that gcc
> 2.9[67] either crashes or generates incorrect code for some input or
> other, with those options, and gcc 2.95.x doesn't. If that is true,
> then the bug is important never mind how rare it is.
>
> But you have to tell us what the bug is, before we can fix it.
>
> zw
It's still a problem on linux as well as cygwin. I know that cygwin is not
a supported target, and I'm grateful to the extent that people have helped
make it work. The problem is the same old one which started early in
gcc-2.96 with the g77 sequence (all typed double precision). It has always
worked correctly in the 2.95 series.
if(x /= y)then
if( x * y >=0)then
a=abs(x)
b=abs(y)
c=max(a,b)
d=min(a,b)
w=1-d/c
else
w=1
endif
else
w=0
endif
which, when compiled with g77-2.97 -O, -Os, or -O2, along with the
combination -march=pentiumpro -ffast-math, sets w to 0., regardless of the
values of x and y. Definitely not an optimum way to do that. I'll try to
see if I can make a case demonstrating this in C as well, as well as looking
for a work-around.
No, I didn't invent that, it's from US Dept of Energy source code. I do
recognize that there is some redundancy there which might throw an optimizer
off. I've been staring at the code generated with the various options.