public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* optimization/9052: in C code, "if" statement fails to execute if optimized
@ 2002-12-24  5:36 phma
  0 siblings, 0 replies; 12+ messages in thread
From: phma @ 2002-12-24  5:36 UTC (permalink / raw)
  To: gcc-gnats


>Number:         9052
>Category:       optimization
>Synopsis:       in C code, "if" statement fails to execute if optimized
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 24 05:36:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     phma@webjockey.net
>Release:        3.2
>Organization:
>Environment:
Reading specs from /usr/lib/gcc-lib/i386-pc-linux-gnu/3.2/specs
Configured with: /usr/src/gcc-3.2/configure --host=i386-pc-linux-gnu --prefix=/usr --enable-threads=posix --enable-languages=c,c++,objc
Thread model: posix
gcc version 3.2
Processor: AMD Athlon, 1200 MHz.
>Description:
 for (n=1;n<MAXITER;n++)
     {r[n]=r[n-1]*r[n-1]-i[n-1]*i[n-1]+cr;
      i[n]=2*r[n-1]*i[n-1]+ci;
      if (fabs(r[n])>256 || fabs(i[n])>256 || (!(n&1) && r[n/2]==r[n]&& i[n/2]==i[n]))
         break;
      printf("%5d %7.3f %7.3f\n",n,r[n],i[n]);
      }

the if statement never triggers and the loop never breaks.
>How-To-Repeat:
Compile this with "gcc -O2 -o mandeljulia main.c -lm --save-temps" or -O1 and run it and it incorrectly outputs 255. If compiled with -O0 it correctly outputs 12. Move "printf" between "i[n]" and "if" and compile with -O2 and it outputs 12.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-bzip2; name="main.i.bz2"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="main.i.bz2"

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
DXv2P/A=


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute if optimized
@ 2003-02-18 10:41 ebotcazou
  0 siblings, 0 replies; 12+ messages in thread
From: ebotcazou @ 2003-02-18 10:41 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, phma

Synopsis: in C code, "if" statement fails to execute if optimized

State-Changed-From-To: open->closed
State-Changed-By: ebotcazou
State-Changed-When: Tue Feb 18 10:41:09 2003
State-Changed-Why:
    Not a bug. Use -ffloat-store to compile your code.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9052


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute if optimized
@ 2003-02-14 21:16 Toon Moene
  0 siblings, 0 replies; 12+ messages in thread
From: Toon Moene @ 2003-02-14 21:16 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Toon Moene <toon@moene.indiv.nluug.nl>
To: Eric Botcazou <ebotcazou@libertysurf.fr>
Cc: Steven Bosscher <s.bosscher@student.tudelft.nl>, 
 Richard.Earnshaw@arm.com,  gcc-gnats@gcc.gnu.org,  gcc-bugs@gcc.gnu.org, 
 nobody@gcc.gnu.org,  phama@webjockey.net
Subject: Re: optimization/9052: in C code, "if" statement fails to execute
  if optimized
Date: Fri, 14 Feb 2003 22:13:39 +0100

 Eric Botcazou wrote:
 
 > Steven probably checked it too, but I can confirm that PR fortran/8445 
 > vanishes (i.e the ouput is back to 1 line) when compiled with -O1 
 > -ffloat-store instead of -O1 only.
 
 Thanks - I closed PR fortran/8445.
 
 -- 
 Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
 Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
 Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
 GNU Fortran 95: http://gcc-g95.sourceforge.net/ (under construction)
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
@ 2003-02-13 21:56 Eric Botcazou
  0 siblings, 0 replies; 12+ messages in thread
From: Eric Botcazou @ 2003-02-13 21:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Eric Botcazou <ebotcazou@libertysurf.fr>
To: Toon Moene <toon@moene.indiv.nluug.nl>
Cc: Steven Bosscher <s.bosscher@student.tudelft.nl>,
 Richard.Earnshaw@arm.com,
 gcc-gnats@gcc.gnu.org,
 gcc-bugs@gcc.gnu.org,
 nobody@gcc.gnu.org,
 phama@webjockey.net
Subject: Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
Date: Thu, 13 Feb 2003 22:41:43 +0100

 > Exactly - however, I feel I cannot close these reports because I do not
 > have access to x86 hardware anymore, so I cannot easily test whether
 > they indeed *are* -ffloat-store issues ....
 
 Steven probably checked it too, but I can confirm that PR fortran/8445 
 vanishes (i.e the ouput is back to 1 line) when compiled with -O1 
 -ffloat-store instead of -O1 only.
 
 Reading specs from /usr/local/lib/gcc-lib/i586-redhat-linux-gnu/3.2.3/specs
 Configured with: ../configure --host=i586-redhat-linux-gnu 
 --prefix=/usr/local --enable-languages=c,c++,objc,f77 
 --enable-checking=misc,tree --disable-nls
 Thread model: posix
 gcc version 3.2.3 20030210 (prerelease)
 
 -- 
 Eric Botcazou


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute if optimized
@ 2003-02-13 19:46 Toon Moene
  0 siblings, 0 replies; 12+ messages in thread
From: Toon Moene @ 2003-02-13 19:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Toon Moene <toon@moene.indiv.nluug.nl>
To: Eric Botcazou <ebotcazou@libertysurf.fr>
Cc: Steven Bosscher <s.bosscher@student.tudelft.nl>, 
 Richard.Earnshaw@arm.com,  gcc-gnats@gcc.gnu.org,  gcc-bugs@gcc.gnu.org, 
 nobody@gcc.gnu.org,  phama@webjockey.net
Subject: Re: optimization/9052: in C code, "if" statement fails to execute
  if optimized
Date: Thu, 13 Feb 2003 20:02:15 +0100

 Eric Botcazou wrote:
 
 >>How about 8445, 9654?  Those are "bugs" that disappear with
 >>-ffloat-store, too.  Like I said, I don't know enough about floating
 >>point numbers...
 
 > Toon seems to think that PR fortran/8445 is indeed the same problem. But it's 
 > up to him to decide whether to close the bug.
 > 
 > PR optimization/9654 is exactly the same problem: using FP registers on x86 
 > adds extra-precision which can modify comparison results. Nothing can be done 
 > about that, other than using -ffloat-store which is precisely intended to 
 > address the issue.
 
 Exactly - however, I feel I cannot close these reports because I do not 
 have access to x86 hardware anymore, so I cannot easily test whether 
 they indeed *are* -ffloat-store issues ....
 
 -- 
 Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
 Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
 Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
 GNU Fortran 95: http://gcc-g95.sourceforge.net/ (under construction)
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
@ 2003-02-13 11:56 Eric Botcazou
  0 siblings, 0 replies; 12+ messages in thread
From: Eric Botcazou @ 2003-02-13 11:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Eric Botcazou <ebotcazou@libertysurf.fr>
To: Steven Bosscher <s.bosscher@student.tudelft.nl>
Cc: Richard.Earnshaw@arm.com,
 gcc-gnats@gcc.gnu.org,
 gcc-bugs@gcc.gnu.org,
 nobody@gcc.gnu.org,
 phama@webjockey.net
Subject: Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
Date: Thu, 13 Feb 2003 12:49:31 +0100

 > How about 8445, 9654?  Those are "bugs" that disappear with
 > -ffloat-store, too.  Like I said, I don't know enough about floating
 > point numbers...
 
 Toon seems to think that PR fortran/8445 is indeed the same problem. But it's 
 up to him to decide whether to close the bug.
 
 PR optimization/9654 is exactly the same problem: using FP registers on x86 
 adds extra-precision which can modify comparison results. Nothing can be done 
 about that, other than using -ffloat-store which is precisely intended to 
 address the issue.
 
 -- 
 Eric Botcazou


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
@ 2003-02-12 17:06 Steven Bosscher
  0 siblings, 0 replies; 12+ messages in thread
From: Steven Bosscher @ 2003-02-12 17:06 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Steven Bosscher <s.bosscher@student.tudelft.nl>
To: Eric Botcazou <ebotcazou@libertysurf.fr>
Cc: Richard.Earnshaw@arm.com, gcc-gnats@gcc.gnu.org,
	gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org, phama@webjockey.net
Subject: Re: optimization/9052: in C code, "if" statement fails to execute 
	if optimized
Date: 12 Feb 2003 18:01:20 +0100

 Op wo 12-02-2003, om 17:55 schreef Eric Botcazou:
 > > Adding -ffloat-store will probably also make the "misbehaviour" go away.
 > 
 > It does.
 > 
 > > GCC is almost certainly using the register result from the current
 > > iteration to compare with the memory result from an earlier iteration.
 > > Since the register result has excess precision the compare for equality
 > > fails.  That's not a bug, it's just the FP works on the X86.
 > >
 > > So in summary, almost certainly "not a bug".
 > 
 > I fully concur. I think the PR can be closed.
 > 
 
 Nice, one more PR gone (still too many to go :-/).
 
 How about 8445, 9654?  Those are "bugs" that disappear with
 -ffloat-store, too.  Like I said, I don't know enough about floating
 point numbers...
 
 Greetz
 Steven
 
 
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
@ 2003-02-12 16:56 Eric Botcazou
  0 siblings, 0 replies; 12+ messages in thread
From: Eric Botcazou @ 2003-02-12 16:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Eric Botcazou <ebotcazou@libertysurf.fr>
To: Richard.Earnshaw@arm.com
Cc: Steven Bosscher <s.bosscher@student.tudelft.nl>,
 gcc-gnats@gcc.gnu.org,
 gcc-bugs@gcc.gnu.org,
 nobody@gcc.gnu.org,
 phama@webjockey.net
Subject: Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
Date: Wed, 12 Feb 2003 17:55:22 +0100

 > Adding -ffloat-store will probably also make the "misbehaviour" go away.
 
 It does.
 
 > GCC is almost certainly using the register result from the current
 > iteration to compare with the memory result from an earlier iteration.
 > Since the register result has excess precision the compare for equality
 > fails.  That's not a bug, it's just the FP works on the X86.
 >
 > So in summary, almost certainly "not a bug".
 
 I fully concur. I think the PR can be closed.
 
 -- 
 Eric Botcazou


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
@ 2003-02-12 16:46 Richard Earnshaw
  0 siblings, 0 replies; 12+ messages in thread
From: Richard Earnshaw @ 2003-02-12 16:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Richard Earnshaw <rearnsha@arm.com>
To: Steven Bosscher <s.bosscher@student.tudelft.nl>
Cc: Richard.Earnshaw@arm.com, gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org,
        nobody@gcc.gnu.org, phama@webjockey.net,
        Eric Botcazou <ebotcazou@libertysurf.fr>
Subject: Re: optimization/9052: in C code, "if" statement fails to execute 
 if optimized
Date: Wed, 12 Feb 2003 16:36:37 +0000

 > > So in summary, almost certainly "not a bug".
 > 
 > Pfewww, good.
 > 
 > Still it is a change in behavior of the generated code.  Should it be
 > documented?
 
 What would you document? 
 
 "Our optimizations are better than they used to be, so if your code is 
 broken, we're more likely to catch you out"?
 
 In reality this is not much different from a expression like
 
 	x[i++] = y[i++] + 1;
 
 It's ill-defined code, so anything can happen.
 
 R.
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute if optimized
@ 2003-02-12 16:36 Steven Bosscher
  0 siblings, 0 replies; 12+ messages in thread
From: Steven Bosscher @ 2003-02-12 16:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Steven Bosscher <s.bosscher@student.tudelft.nl>
To: Richard.Earnshaw@arm.com
Cc: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org,
	gcc-prs@gcc.gnu.org, phama@webjockey.net,
	Eric Botcazou <ebotcazou@libertysurf.fr>
Subject: Re: optimization/9052: in C code, "if" statement fails to execute
	if optimized
Date: 12 Feb 2003 17:30:01 +0100

 Op wo 12-02-2003, om 17:24 schreef Richard Earnshaw:
 > 
 > > Reading specs from
 > > /opt/experimental/lib/gcc-lib/i586-pc-linux-gnu/3.4/specs
 > > Configured with: ../gcc-trunk/configure --disable-nls --with-gnu-as
 > > --with-gnu-ld --prefix=/opt/experimental --program-suffix=-3.4
 > > --enable-languages=c
 > > Thread model: posix
 > > gcc version 3.4 20030211 (experimental)
 > > 
 > > Output from this testcase:
 > > gcc version:	at -O0		at -O1		at -O2
 > > 2.95.3		 22		 22		 22
 > > 3.4 exp.	 22		256		256
 > > 
 > > After uncommenting the printf, gcc 3.4 also prints 22 at -O1 and -O2.
 > > 
 > > I have looked for documentation about this change in behavior but it
 > > doesn't seem to exist. I'm not a floating point specialist, but
 > > generally, comparing floats for equality doesn't seem like the best
 > > thing to do.  However, since it apparently worked with older gcc
 > > versions, I suppose one could qualify this as a regression...
 > > 
 > > Eric, I CC'ed you as the Great C Bug Squasher.  Do you think this is a
 > > regression, and if so, change the status in GNATS?
 > 
 > Adding -ffloat-store will probably also make the "misbehaviour" go away.
 > 
 > GCC is almost certainly using the register result from the current 
 > iteration to compare with the memory result from an earlier iteration.  
 > Since the register result has excess precision the compare for equality 
 > fails.  That's not a bug, it's just the FP works on the X86.
 > 
 > So in summary, almost certainly "not a bug".
 
 Pfewww, good.
 
 Still it is a change in behavior of the generated code.  Should it be
 documented?
 Greetz
 Steven
 
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute  if optimized
@ 2003-02-12 16:26 Richard Earnshaw
  0 siblings, 0 replies; 12+ messages in thread
From: Richard Earnshaw @ 2003-02-12 16:26 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Richard Earnshaw <rearnsha@arm.com>
To: Steven Bosscher <s.bosscher@student.tudelft.nl>
Cc: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org,
        gcc-prs@gcc.gnu.org, phama@webjockey.net,
        Eric Botcazou <ebotcazou@libertysurf.fr>, Richard.Earnshaw@arm.com
Subject: Re: optimization/9052: in C code, "if" statement fails to execute 
 if optimized
Date: Wed, 12 Feb 2003 16:24:09 +0000

 > Reading specs from
 > /opt/experimental/lib/gcc-lib/i586-pc-linux-gnu/3.4/specs
 > Configured with: ../gcc-trunk/configure --disable-nls --with-gnu-as
 > --with-gnu-ld --prefix=/opt/experimental --program-suffix=-3.4
 > --enable-languages=c
 > Thread model: posix
 > gcc version 3.4 20030211 (experimental)
 > 
 > Output from this testcase:
 > gcc version:	at -O0		at -O1		at -O2
 > 2.95.3		 22		 22		 22
 > 3.4 exp.	 22		256		256
 > 
 > After uncommenting the printf, gcc 3.4 also prints 22 at -O1 and -O2.
 > 
 > I have looked for documentation about this change in behavior but it
 > doesn't seem to exist. I'm not a floating point specialist, but
 > generally, comparing floats for equality doesn't seem like the best
 > thing to do.  However, since it apparently worked with older gcc
 > versions, I suppose one could qualify this as a regression...
 > 
 > Eric, I CC'ed you as the Great C Bug Squasher.  Do you think this is a
 > regression, and if so, change the status in GNATS?
 
 Adding -ffloat-store will probably also make the "misbehaviour" go away.
 
 GCC is almost certainly using the register result from the current 
 iteration to compare with the memory result from an earlier iteration.  
 Since the register result has excess precision the compare for equality 
 fails.  That's not a bug, it's just the FP works on the X86.
 
 So in summary, almost certainly "not a bug".
 
 R.
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: optimization/9052: in C code, "if" statement fails to execute if optimized
@ 2003-02-12 15:26 Steven Bosscher
  0 siblings, 0 replies; 12+ messages in thread
From: Steven Bosscher @ 2003-02-12 15:26 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/9052; it has been noted by GNATS.

From: Steven Bosscher <s.bosscher@student.tudelft.nl>
To: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org,
	gcc-prs@gcc.gnu.org, phama@webjockey.net
Cc: Eric Botcazou <ebotcazou@libertysurf.fr>
Subject: Re: optimization/9052: in C code, "if" statement fails to execute
	if optimized
Date: 12 Feb 2003 16:25:49 +0100

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9052
 
 A small test case for this PR is the following:
 
 #define N 256
 
 int
 main (void)
 {
   float r[N];
   int n;
 
   r[0] = 0;
   for (n = 1; n < N; n++)
     {
       r[n] = r[n - 1] * r[n - 1] - .125;
 
 //    printf("%f\n",r[n]-r[n/2]);
 
       if (r[n / 2] == r[n])
 	break;
     }
 
   printf ("%d\n", n);
   return 0;
 }
 
 I have tested this with two different GCC versions:
 
 Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.3/specs
 gcc version 2.95.3 20010315 (SuSE
 
 Reading specs from
 /opt/experimental/lib/gcc-lib/i586-pc-linux-gnu/3.4/specs
 Configured with: ../gcc-trunk/configure --disable-nls --with-gnu-as
 --with-gnu-ld --prefix=/opt/experimental --program-suffix=-3.4
 --enable-languages=c
 Thread model: posix
 gcc version 3.4 20030211 (experimental)
 
 Output from this testcase:
 gcc version:	at -O0		at -O1		at -O2
 2.95.3		 22		 22		 22
 3.4 exp.	 22		256		256
 
 After uncommenting the printf, gcc 3.4 also prints 22 at -O1 and -O2.
 
 I have looked for documentation about this change in behavior but it
 doesn't seem to exist. I'm not a floating point specialist, but
 generally, comparing floats for equality doesn't seem like the best
 thing to do.  However, since it apparently worked with older gcc
 versions, I suppose one could qualify this as a regression...
 
 Eric, I CC'ed you as the Great C Bug Squasher.  Do you think this is a
 regression, and if so, change the status in GNATS?
 
 Greetz
 Steven
 
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2003-02-18 10:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-24  5:36 optimization/9052: in C code, "if" statement fails to execute if optimized phma
2003-02-12 15:26 Steven Bosscher
2003-02-12 16:26 Richard Earnshaw
2003-02-12 16:36 Steven Bosscher
2003-02-12 16:46 Richard Earnshaw
2003-02-12 16:56 Eric Botcazou
2003-02-12 17:06 Steven Bosscher
2003-02-13 11:56 Eric Botcazou
2003-02-13 19:46 Toon Moene
2003-02-13 21:56 Eric Botcazou
2003-02-14 21:16 Toon Moene
2003-02-18 10:41 ebotcazou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).