RE: Inconsistent floating point result when using G++ 3.3.6 with option -O0 or -O1 separately

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tprince,
We do build on IA-32 system and running on the same system, but we still get the inconsistent result as I described in the previous mail.  We have added the control function to remove the excess precision in main faction like 

     fpu_control_t cw = (_FPU_DEFAULT & ~_FPU_EXTENDED) | _FPU_DOUBLE;
    _FPU_SETCW(cw);

Can you help to give some suggestions about which possibility may cause the inconsistent result within -O0 or -O1 optimization separately?

I will try the -ffloat-store option.

Best regards!
Deng

-----Original Message-----
From: Tim Prince [mailto:timothyprince@xxxxxxxxxxxxx] 
Sent: 2006年7月14日 20:28
To: Deng Shi
Cc: gcc-help@xxxxxxxxxxx
Subject: Re: Inconsistent floating point result when using G++ 3.3.6 with option -O0 or -O1 separately

Deng Shi wrote:
>  
> 
> -----Original Message-----
> From: Deng Shi
> Sent: 2006年7月13日 10:37
> To: 'gnu-help@xxxxxxx'
> Subject: Inconsistent floating point result when using G++ 3.3.6 with 
> option -O0 or -O1 separately
> 
> hi expert,
> I found our application tool gave the inconsistent floating point result when using different optimization level -O0 or -O1.
> Even if I used -O1 plus all the disabling options which includes in -O1, like -O1 -fno-merge-all-constants -fno-zero-initialized-in-bss -fno-function-cse -fno-keep-static-consts -fno-omit-frame-pointer -fno-merge-constants -fno-loop-optimize -fno-cprop-registers -fno-if-conversion -fno-if-conversion2 -fno-delayed-branch -fno-guess-branch-probability -fno-defer-pop -fno-crossjumping -fno-thread-jumps " which command line setting should be equal to -O0, but I still didn't get the consistent result. 
> I wonder whether there is any additional optimization enabled by -O1 for C++ language which is not documented in GCC manual?
> 
If you're generating x87 code (the default for ia32), -ffloat-store would be among the first options normally tried to remove extra precision.  How are we to know what target you have, and which options you used?


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux