2011-05-14 Tobias Burnus <burnus@net-b.de>
* doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
2011-05-14 Tobias Burnus <burnus@net-b.de>
* options.c (gfc_init_options, gfc_post_options): Enable
-fstack-arrays by default if -Ofast is used.
* invoke.texi (-fstack-arrays): Document this.
@@ -6000,7 +6000,7 @@ Disregard strict standards compliance. @option{-Ofast} enables all
@option{-O3} optimizations. It also enables optimizations that are not
valid for all standard compliant programs.
It turns on @option{-ffast-math} and the Fortran-specific
-@option{-fno-protect-parens}.
+@option{-fno-protect-parens} and @option{-fstack-arrays}.
If you use multiple @option{-O} options, with or without level numbers,
the last such option is the one that is effective.
@@ -1385,7 +1385,9 @@ The default value for @var{n} is 32768.
Adding this option will make the fortran compiler put all local arrays,
even those of unknown size onto stack memory. If your program uses very
large local arrays it's possible that you'll have to extend your runtime
-limits for stack memory on some operating systems.
+limits for stack memory on some operating systems. This flag is enabled
+by default at optimization level @option{-Ofast}.
+
@item -fpack-derived
@opindex @code{fpack-derived}
@@ -125,7 +125,7 @@ gfc_init_options (unsigned int decoded_options_count,
/* Default value of flag_max_stack_var_size is set in gfc_post_options. */
gfc_option.flag_max_stack_var_size = -2;
- gfc_option.flag_stack_arrays = 0;
+ gfc_option.flag_stack_arrays = -1;
gfc_option.flag_range_check = 1;
gfc_option.flag_pack_derived = 0;
@@ -275,6 +275,9 @@ gfc_post_options (const char **pfilename)
if (gfc_option.flag_protect_parens == -1)
gfc_option.flag_protect_parens = !optimize_fast;
+ if (gfc_option.flag_stack_arrays == -1)
+ gfc_option.flag_stack_arrays = optimize_fast;
+
/* By default, disable (re)allocation during assignment for -std=f95,
and enable it for F2003/F2008/GNU/Legacy. */
if (gfc_option.flag_realloc_lhs == -1)