At both O0 and O3 conserve-stack is enabled. "The compiler will attempt to use less stack space, even if that makes the program slower."
Doesn't that contradict with -O2 and -O3? gcc_inst/bin/gcc -O0 -Q foo.c --help=optimizers |grep conserve-stack -fconserve-stack [enabled] gcc_inst/bin/gcc -O3 -Q foo.c --help=optimizers |grep conserve-stack -fconserve-stack [enabled] gcc_inst/bin/gcc -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../gcc/configure --disable-multilib --disable-static --prefix=/home/edwin/gcc_inst/ --enable-languages=c,c++ --enable-checking=assert,df,fold,gc,misc,rtl,rtlflag,runtime,tree Thread model: posix gcc version 4.4.0 20081116 (experimental) [trunk revision 141912] (GCC) -- Summary: -fconserve-stack enabled by default Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: edwintorok at gmail dot com GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38157