Difference between two optimization settings

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

 



Hi

What is the difference between

-O0

and

-O1 -fno-defer-pop -fno-merge-constants -fno-thread-jumps -fno-loop-optimize
    -fno-if-conversion -fno-if-conversion2 -fno-delayed-branch
    -fno-guess-branch-probability -fno-cprop-registers -fno-omit-frame-pointer


My gcc 3.4.6 man page says:

-O
-O1 Optimize.  Optimizing compilation takes somewhat more time, and a lot
               more memory for a large function.

               With -O, the compiler tries to reduce code size and
               execution time, without performing any optimizations that
               take a great deal of compilation time.

              -O turns on the following optimization flags: -fdefer-pop
              -fmerge-constants -fthread-jumps -floop-optimize
              -fif-conversion -fif-conversion2 -fdelayed-branch
              -fguess-branch-probability -fcprop-registers

              -O also turns on -fomit-frame-pointer on machines where doing
              so does not interfere with debugging.


One thing I noticed is that the second optimization setting performs 
constant propagation and constant folding.

If the answer to my question depends upon the gcc version (assuming gcc >= 
3.4), then I'd be most interested in 3.4 or more specific 3.4.5.
The source language is C.

Thanks a lot for your support.


Cheers,

Thomas

[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