This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
RE: -O2 problem / GCC 3.3.x
- From: Beschorner Daniel <Daniel dot Beschorner at facton dot com>
- To: "'Bossom, John'" <John dot Bossom at Cognos dot COM>, gcc-help at gcc dot gnu dot org
- Date: Mon, 15 Nov 2004 22:50:37 +0100
- Subject: RE: -O2 problem / GCC 3.3.x
Thank you!
I tested on your advice (i386 hardware)...
-O2 -fno-strict-aliasing, still wrong result
but
-O2 -fno-gcse, correct result
Daniel
-----Ursprüngliche Nachricht-----
Von: Bossom, John [mailto:John.Bossom@Cognos.COM]
Gesendet: Montag, 15. November 2004 21:53
An: Beschorner Daniel; gcc-help@gcc.gnu.org
Betreff: RE: -O2 problem / GCC 3.3.x
Read up on -fstrict-aliasing (which is on with -O2).
Try building again with -O2 -fno-strict-aliasing
(Not saying this is the problem, however, if it goes away with the
-fno-strict-aliasing
then you'll know)
-----Original Message-----
From: gcc-help-owner@gcc.gnu.org [mailto:gcc-help-owner@gcc.gnu.org]On
Behalf Of Beschorner Daniel
Sent: Monday, November 15, 2004 3:42 PM
To: 'gcc-help@gcc.gnu.org'
Subject: -O2 problem / GCC 3.3.x
Any idea why results differ between -O and -O2 with GCC 3.3.x/Linux??? GCC
2.95 works fine.
results:
-O 500000
-O2 300000
Thanks
Daniel
#include <stdio.h>
int A,B,C;
int i;
int Q[1];
int H(int X, int Y)
{
return X^Y^100000;
}
int main()
{
A=B=C=100000;
A+=H(B,C);
C+=H(A,B);
A+=H(B,C);
C+=H(A,B);
for (i=0;i<1;i++)
Q[i] = 0;
printf("%i\n",A);
return 0;
}
This message may contain privileged and/or confidential information.
If you have received this e-mail in error or are not the intended recipient,
you may not use, copy, disseminate or distribute it; do not open any
attachments, delete it immediately from your system and notify the sender
promptly by e-mail that you have done so. Thank you.