------- Comment #24 from dominiq at lps dot ens dot fr 2009-08-31 13:06 ------- (In reply to comment #23) > Aren't these compile lines identical? Apparently no, -funsafe-math-optimizations turns on optimization(s) that cannot be undone by
-fno-signed-zeros -fno-trapping-math -fno-associative-math -fno-reciprocal-math > I meant that you should use... > > -fno-signed-zeros -fno-trapping-math -fassociative-math -freciprocal-math > with commented write: ibook-dhum] lin/test% gfc -m64 -O2 -fno-signed-zeros -fno-trapping-math -fassociative-math -freciprocal-math air_db.f90 [ibook-dhum] lin/test% time a.out > /dev/null 6.194u 0.017s 0:06.21 99.8% 0+0k 0+1io 0pf+0w with write: [ibook-dhum] lin/test% gfc -m64 -O2 -fsigned-zeros -ftrapping-math -fassociative-math -freciprocal-math air_db.f90 f951: warning: -fassociative-math disabled; other options take precedence [ibook-dhum] lin/test% time a.out > /dev/null 6.306u 0.018s 0:06.33 99.6% 0+0k 0+2io 0pf+0w > instead and work through all of the possible combinations with the inverse > forms -fsigned-zeros, -ftrapping-math, -fno-associative-math and > -fno-reciprocal-math which is 16 combinations. I had no intention to try the 16 combinations as they are ineffective, the key optimization being hidden behind funsafe-math-optimization with all the explicit optimization disabled. As said in comment #21 the other key option is -fstrict-overflow. I know that all these facts do not make sense, but if you have doubts you can redo the tests yourself. As a side comment it would be nice for debugging purpose that the options combinations of sub-options do not have hidden optimizations (yes I know there a sentence about that in the manual). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40106