Enables basic block level optimizations.
This level usually gives the smallest code size. (See also -xspace.)
-O3 is preferred over -O2 unless -O3 results in unreasonably long compilation time, exceeds swap space, or generates excessively large executable files.