This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]