From 0a8134cacea8b18b0e241cc492546cbb69ae598a Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 17 Feb 2011 22:51:57 +0000 Subject: [PATCH] common.opt (optimize_fast): New Variable. * common.opt (optimize_fast): New Variable. * opts.c (default_options_optimization): Use opts->x_optimize_fast instead of local variable ofast. From-SVN: r170259 --- gcc/ChangeLog | 6 ++++++ gcc/common.opt | 5 +++++ gcc/opts.c | 13 ++++++------- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26a0c96f366..8382f5091de 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-02-17 Joseph Myers + + * common.opt (optimize_fast): New Variable. + * opts.c (default_options_optimization): Use opts->x_optimize_fast + instead of local variable ofast. + 2011-02-17 Nicola Pero * doc/invoke.texi (fobjc-abi-version): Documented. diff --git a/gcc/common.opt b/gcc/common.opt index 1f24a3a67a0..f95805c7f1e 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -32,6 +32,11 @@ int optimize Variable int optimize_size +; Not used directly to control optimizations, only to save -Ofast +; setting for "optimize" attributes. +Variable +int optimize_fast + ; 0 means straightforward implementation of complex divide acceptable. ; 1 means wide ranges of inputs must work for complex divide. ; 2 means C99-like requirements for complex multiply and divide. diff --git a/gcc/opts.c b/gcc/opts.c index 8ca9c67bb8e..9f93356539f 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -524,7 +524,6 @@ default_options_optimization (struct gcc_options *opts, { unsigned int i; int opt2; - int ofast = 0; /* Scan to see what optimization level has been specified. That will determine the default value of many flags. */ @@ -538,7 +537,7 @@ default_options_optimization (struct gcc_options *opts, { opts->x_optimize = 1; opts->x_optimize_size = 0; - ofast = 0; + opts->x_optimize_fast = 0; } else { @@ -553,7 +552,7 @@ default_options_optimization (struct gcc_options *opts, if ((unsigned int) opts->x_optimize > 255) opts->x_optimize = 255; opts->x_optimize_size = 0; - ofast = 0; + opts->x_optimize_fast = 0; } } break; @@ -563,14 +562,14 @@ default_options_optimization (struct gcc_options *opts, /* Optimizing for size forces optimize to be 2. */ opts->x_optimize = 2; - ofast = 0; + opts->x_optimize_fast = 0; break; case OPT_Ofast: /* -Ofast only adds flags to -O3. */ opts->x_optimize_size = 0; opts->x_optimize = 3; - ofast = 1; + opts->x_optimize_fast = 1; break; default: @@ -581,7 +580,7 @@ default_options_optimization (struct gcc_options *opts, maybe_default_options (opts, opts_set, default_options_table, opts->x_optimize, opts->x_optimize_size, - ofast, lang_mask, handlers, loc, dc); + opts->x_optimize_fast, lang_mask, handlers, loc, dc); /* -O2 param settings. */ opt2 = (opts->x_optimize >= 2); @@ -611,7 +610,7 @@ default_options_optimization (struct gcc_options *opts, maybe_default_options (opts, opts_set, targetm.target_option.optimization_table, opts->x_optimize, opts->x_optimize_size, - ofast, lang_mask, handlers, loc, dc); + opts->x_optimize_fast, lang_mask, handlers, loc, dc); } /* After all options at LOC have been read into OPTS and OPTS_SET, -- 2.30.2