From 7a99464652b2b96dfc1bc02cbd4e7c960dc0fb7b Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Wed, 4 May 2011 19:10:15 +0200 Subject: [PATCH] re PR fortran/48864 (-Ofast should imply -fno-protect-parens) gcc/ 2011-05-04 Tobias Burnus PR fortran/48864 * doc/invoke.texi (Ofast): Document that it enables Fortran's -fno-protect-parens. gcc/fortran 2011-05-04 Tobias Burnus PR fortran/48864 * invoke.texi (fno-protect-parens): Document that -Ofast implies -fno-protect-parens. * options.c (gfc_init_options, gfc_post_options): Make -Ofast imply -fno-protect-parens. From-SVN: r173385 --- gcc/ChangeLog | 6 ++++++ gcc/doc/invoke.texi | 3 ++- gcc/fortran/ChangeLog | 8 ++++++++ gcc/fortran/invoke.texi | 3 ++- gcc/fortran/options.c | 5 ++++- 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca856167adc..00d84974ca3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-05-04 Tobias Burnus + + PR fortran/48864 + * doc/invoke.texi (Ofast): Document that it + enables Fortran's -fno-protect-parens. + 2011-05-04 Uros Bizjak * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 8602923e85f..9e276532643 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -5999,7 +5999,8 @@ optimizations designed to reduce code size. 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}. +It turns on @option{-ffast-math} and the Fortran-specific +@option{-fno-protect-parens}. If you use multiple @option{-O} options, with or without level numbers, the last such option is the one that is effective. diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9544af2ed0f..5ab6e334cc1 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,11 @@ +2011-05-04 Tobias Burnus + + PR fortran/48864 + * invoke.texi (fno-protect-parens): Document + that -Ofast implies -fno-protect-parens. + * options.c (gfc_init_options, gfc_post_options): + Make -Ofast imply -fno-protect-parens. + 2011-05-04 Nathan Froyd * trans-decl.c (build_library_function_decl_1): Call diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index 0874e5c4bec..d24c2f28fba 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -1488,7 +1488,8 @@ levels such that the compiler does not do any re-association. Using @option{-fno-protect-parens} allows the compiler to reorder @code{REAL} and @code{COMPLEX} expressions to produce faster code. Note that for the re-association optimization @option{-fno-signed-zeros} and @option{-fno-trapping-math} -need to be in effect. +need to be in effect. The parentheses protection is enabled by default, unless +@option{-Ofast} is given. @item -frealloc-lhs @opindex @code{frealloc-lhs} diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index f56fad7fce4..e27457233e5 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -151,7 +151,7 @@ gfc_init_options (unsigned int decoded_options_count, gfc_option.flag_init_character = GFC_INIT_CHARACTER_OFF; gfc_option.flag_init_character_value = (char)0; gfc_option.flag_align_commons = 1; - gfc_option.flag_protect_parens = 1; + gfc_option.flag_protect_parens = -1; gfc_option.flag_realloc_lhs = -1; gfc_option.flag_aggressive_function_elimination = 0; gfc_option.flag_frontend_optimize = -1; @@ -272,6 +272,9 @@ gfc_post_options (const char **pfilename) if (flag_associative_math == -1) flag_associative_math = (!flag_trapping_math && !flag_signed_zeros); + if (gfc_option.flag_protect_parens == -1) + gfc_option.flag_protect_parens = !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) -- 2.30.2